diff --git a/notebooks/model_wz.ipynb b/notebooks/model_wz.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..76fc9a889bb13f55640a53397d673f043c7db0e1 --- /dev/null +++ b/notebooks/model_wz.ipynb @@ -0,0 +1,5712 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "aae7ed22-70fd-40c9-96b3-ab95128778ed", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import csv\n", + "import pathlib\n", + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "import nltk\n", + "import re\n", + "import statistics\n", + "import string\n", + "from collections import Counter\n", + "from collections import defaultdict\n", + "from sklearn.model_selection import train_test_split\n", + "import octis\n", + "import gensim\n", + "import spacy\n", + "import sklearn\n", + "import torch\n", + "import libsvm\n", + "import flask\n", + "import sentence_transformers\n", + "import requests\n", + "import tomotopy" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "44cdbc43-3210-44e1-aae2-3df85cd58804", + "metadata": {}, + "outputs": [], + "source": [ + "import warnings\n", + "warnings.filterwarnings(\"ignore\")" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "e5279737-393b-4780-b4e3-4cb6fe300f98", + "metadata": {}, + "outputs": [], + "source": [ + "os.chdir(r\"C:\\Users\\onb1202\\OneDrive - Österreichische Nationalbibliothek\\Praktikum TK\\daten\")" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "ba20b025-7c11-4b1e-bfd5-f3b180740a6e", + "metadata": {}, + "outputs": [], + "source": [ + "wz_clean = pd.read_csv('wz_clean5.tsv', sep = '\\t', encoding='utf-8')" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "48b406dc-8d9b-454c-98ed-ceed68d3be5f", + "metadata": {}, + "outputs": [], + "source": [ + "wz_clean = wz_clean.iloc[: , 1:]" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "c4d03ec1-c2a6-4e7c-9c47-d1b6276fe214", + "metadata": {}, + "outputs": [], + "source": [ + "wz_clean = wz_clean.drop(columns=['year'])" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "2405f8c4-7457-4872-8bd1-bc0fe53f304c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ocrsplitmanifest_id
0sonnabend iäner inländische begebenheiten bens...testwrz17890103
1mittewoche ianer inländische begebenheit wien ...trainwrz17890107
2dtii inländische begebenheiten vorthei zugleic...testwrz17890110
3mittewoche begebenheiten sonntag hofe gottesdi...trainwrz17890114
4sonnabend inländische begebenheit horch kret r...trainwrz17890117
............
1090sonnabend december inländische majestät habew ...trainwrz17991214
1091sranj unft ober unftre gehn tlgen stieg turd m...validwrz17991218
1092sonnabend december inländische begebenheiten w...validwrz17991221
1093zmar mittewoche december inländische vegebenhe...testwrz17991225
1094sonnabend december inländische bege hell chris...testwrz17991228
\n", + "

1095 rows × 3 columns

\n", + "
" + ], + "text/plain": [ + " ocr split manifest_id\n", + "0 sonnabend iäner inländische begebenheiten bens... test wrz17890103\n", + "1 mittewoche ianer inländische begebenheit wien ... train wrz17890107\n", + "2 dtii inländische begebenheiten vorthei zugleic... test wrz17890110\n", + "3 mittewoche begebenheiten sonntag hofe gottesdi... train wrz17890114\n", + "4 sonnabend inländische begebenheit horch kret r... train wrz17890117\n", + "... ... ... ...\n", + "1090 sonnabend december inländische majestät habew ... train wrz17991214\n", + "1091 sranj unft ober unftre gehn tlgen stieg turd m... valid wrz17991218\n", + "1092 sonnabend december inländische begebenheiten w... valid wrz17991221\n", + "1093 zmar mittewoche december inländische vegebenhe... test wrz17991225\n", + "1094 sonnabend december inländische bege hell chris... test wrz17991228\n", + "\n", + "[1095 rows x 3 columns]" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "wz_clean" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "3b31742f-7ee4-4bee-97e8-0325980c605c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "train 652\n", + "test 222\n", + "valid 221\n", + "Name: split, dtype: int64" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "wz_clean['split'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "id": "0271ae15-71f5-4465-ac28-5d69320944b4", + "metadata": {}, + "outputs": [], + "source": [ + "wz_clean.to_csv('corpus_wz_clean5.tsv', sep='\\t', index=False, header=False)" + ] + }, + { + "cell_type": "markdown", + "id": "4e2208c9-f8d6-4ea2-a746-b52df8a030f5", + "metadata": {}, + "source": [ + "

vocabulary creation

" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "552e66ef-def5-407b-9de8-d4ee89fb1039", + "metadata": {}, + "outputs": [], + "source": [ + "wz_clean = pd.read_csv('wz_clean5.tsv', sep = '\\t', encoding='utf-8')" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "id": "bc4bba2a-8c43-4f1a-946c-34c3fda4c0f3", + "metadata": {}, + "outputs": [], + "source": [ + "texts_wz = wz_clean['ocr'].sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "id": "fdf64a4c-a1eb-4c7e-92b5-53743d766d47", + "metadata": {}, + "outputs": [], + "source": [ + "texts_wz = texts_wz.split(\" \")" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "id": "7c98bb56-c77a-4fd1-b593-0a1f4d3b468b", + "metadata": {}, + "outputs": [], + "source": [ + "vocabulary_wz = set(texts_wz)" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "id": "45bb9dc8-8595-470a-bbcd-4139cf583ece", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "118936" + ] + }, + "execution_count": 57, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(vocabulary_wz)" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "id": "fc674043-e3a6-4df2-bd32-5f7d82d8ee44", + "metadata": {}, + "outputs": [], + "source": [ + "textfile = open(\"vocabulary_wz_enc5.txt\", \"w\", encoding='cp1252')\n", + "for element in vocabulary_wz:\n", + " textfile.write(element + \"\\n\")\n", + "textfile.close()" + ] + }, + { + "cell_type": "markdown", + "id": "591b33ac-3660-49a3-9a80-5a6a1ec16e57", + "metadata": {}, + "source": [ + "

default model

" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "25625a43-6351-4aec-b651-6a738229e899", + "metadata": {}, + "outputs": [], + "source": [ + "from octis.models.ETM import ETM\n", + "from octis.dataset.dataset import Dataset" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "d209323b-9993-485d-9f45-f624dcda96ce", + "metadata": {}, + "outputs": [], + "source": [ + "dataset = Dataset()\n", + "dataset.load_custom_dataset_from_folder(r\"C:\\Users\\onb1202\\OneDrive - Österreichische Nationalbibliothek\\Praktikum TK\\daten\\corpus_wz_5\")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "df1890b9-2f23-4c36-ad66-06065546b360", + "metadata": {}, + "outputs": [], + "source": [ + "model = ETM(num_topics=100, num_epochs=150, t_hidden_size=1000, rho_size=600,\n", + "embedding_size=800, activation='relu', dropout=0.1, lr=0.005,\n", + "optimizer='adam', batch_size=128, clip=0.0, wdecay=1.2e-06, bow_norm=1,\n", + "device='cpu', top_word=25, train_embeddings=True, embeddings_path=None,\n", + "embeddings_type='pickle', binary_embeddings=True,\n", + "headerless_embeddings=False, use_partitions=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "80234356-807b-4de0-a76b-80f9ad404928", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=600, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=600, out_features=100, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=1000, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=1000, out_features=1000, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=1000, out_features=100, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=1000, out_features=100, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 1.28 .. Rec_loss: 88905.47 .. NELBO: 88906.75\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n" + ] + } + ], + "source": [ + "model_output = model.train_model(dataset)" + ] + }, + { + "cell_type": "code", + "execution_count": 263, + "id": "b54d6245-9776-4fef-9088-96fba86028fa", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "hinaus nachher befanden unfehlbar entschieden mauern gleich widrigenfalls königl rden\n", + "bevollmächtig oktober gebe groß scho fortgesetzt nahm zinn bücher herr\n", + "gränze sagten befanden adler stellte hinaus wenigstens flotte herrschaft eiche\n", + "tten oktober nung wenigstens mauern herr adler vorsicht könn nehme\n", + "oktober herr freyherrn mauern eiche wieden zimmer schein keller tages\n", + "alda ters dortigen ischen hinaus wage scho eigenschaft verdienste grossen\n", + "adler barometerstand gleich widrigenfalls such anzumelden falls bestehend theil ersteren\n", + "bevollmächtig traf hinaus tages general oktober that priester ansprü schein\n", + "herr wenzel eigene erhielt bevollmächtig mber dürfen sieben golde gegeben\n", + "schön rben bestehend anzumelden jahr gebe gebliebenen lehen keller versichern\n", + "eiche gleich hinaus tages termins scho königl walter nahe oktober\n", + "such richtig dienstbare hinaus melde gattung ledige gelegen ferd eiche\n", + "mauern bevollmächtig jahren eiche dürfen wenigstens such anführer ausfindig unsern\n", + "mauern königl dukaten geschickte gebrauch reiche gesandt wenigstens tüch stellte\n", + "gesetzt mauern gemäß scho melde sprach gibt hiesige sieben befanden\n", + "verlasse unfehlbar pfen voraus gleich wesen such ledige berliner bothen\n", + "bevollmächtig termins fragen oktober wieden gebe such bedacht gerichtet gethan\n", + "dortigen stellte gränze gesandt bedacht dritte abtheilung bewegung traf rden\n", + "volle herr dienstbare sagten ranz erworben anzumelden königl niger bücher\n", + "büchern cher indessen mauern herr scho hinaus gemäß bedacht beding\n", + "starten blieb befanden diejenigen gebührte französisch alda mauern wenigstens rden\n", + "dienstbare anzumelden mauern dritte eigene schweden rußische vorzuladen theil scho\n", + "such hinaus wäscher könn vergleich befindlich bücher volle erweisen gedenke\n", + "eder mühle adler rechr hinaus erweisen anmelden tzen sebast mauern\n", + "gleich oktober sieben schweden wind beding theil hundert dukaten ulrich\n", + "drey herr dortigen hinaus nachher scho bücher kaiser niemand ranz\n", + "scho eigene stellte erscheinen ferd wahrscheinlich darunter königl schönes tages\n", + "hinaus ranz theil ledige befanden kleinen cher traf keller kleider\n", + "dahin gläubiger widrigenfalls anzumelden schweden dienstbare schein zahlung eiche dieft\n", + "bevollmächtig grossen volle befanden mittels oktober erweisen gränze erhielt gesetzt\n", + "herr eigene bevollmächtig oktober gränze rden verlangte schweden setzen rechr\n", + "staaten gegenwärtig herr mittels nachricht befanden adler wenigstens scho gesandt\n", + "schweden gesamm rung fragen mauern zeitung eigene beding lande kaiser\n", + "hinaus weniger schweden scho gattung gleich größten herr stellte schein\n", + "königl jahren mauern bevollmächtig unfehlbar rung gegenwärtig gnade stellte vorzu\n", + "mauern hinaus eder befanden unserer zimmer widrigenfalls einzelne oktober wenigstens\n", + "abends grossen weichen fragen vergleich aeckern einzelne mittels adler untersuchung\n", + "sieben scho dienstbare arbeit dritte dortigen schweden bevollmächtig waaren herrschaft\n", + "hinaus mauern verdienste oktober adler kleinen rußische enthalten theils zimmer\n", + "scho nachher stellte anzumelden reiche gebührte cher weniger gebe okto\n", + "unfehlbar herr ischen anzumelden eigene wenigstens wind unternehmung dürften fragen\n", + "kleider mauern deutsch grösse such eder sachen herr anzumelden diensten\n", + "wenigstens schweden theil oktober rische gleich dortigen vermögen bier zeit\n", + "niemand hinaus walter dienstbare zimmer verdienste general nahm bücher dritte\n", + "königl scho gesetzt mauern ersteren theil hinaus fragen drey nahm\n", + "nöthig ferd bevollmächtig keller hende schein generale rung strenge hergestellt\n", + "offizieren rechr schweden mente that wohlfahrt weniger mauern königl gleich\n", + "königl widrigenfalls schweden bevollmächtig hell oktober walter anführer eigene grossen\n", + "wenigstens todt groß erklärung dukaten niger niemand termins fortgesetzt nämlich\n", + "mauern eiche kurzem begebenheiten höher nutzen zimmer anzumelden erweisen gruber\n", + "ters ferd eifer weiss hinaus gegenwärtig scho rück gebührte ausfindig\n", + "oktober gränze schein bevollmächtig rechr adler erweisen verkaufe bisher bücher\n", + "herr höchste hinaus gattung befanden vorschrift bevollmächtig voraus erklärung walter\n", + "angriffe stellte leere oktober schuldig anführer erweisen ffen niemand darunter\n", + "wenigstens gleich anzumelden mittels kaiser schweren bevollmächtig ferd gattung hinaus\n", + "darf rechr mauern befanden raab verlauf stellte wenigstens gegeben zeit\n", + "such scho tages erklärung deutsch hinaus jahren königl anzumelden wenigstens\n", + "verdienste oktober bevollmächtig letzten silber ehre verlangte betrag hinaus mittels\n", + "angriffe adler dürfen mittels könn erweisen wiesen traf hauptstadt zimmer\n", + "hinaus könn vier theil rechr grossen erstgedacht kaiser heuboden mauern\n", + "hinaus verlangte liget niger kaiser widrigenfalls unfehlbar eigene weiss kund\n", + "mauern hinaus jahr verkaufe befindliche gruber lande general bevollmächtig adler\n", + "wenigstens oktober nutzen wich dürfen bücher geschieht mauern dung beweisen\n", + "wenigstens anzumelden hinaus grossen adler rden fragen letzten abtheilung starken\n", + "masse dortigen gegenden unternehmung cheln scho anfragen grossen gebe herr\n", + "meister gedenke oktober letzt schweden befanden widrigenfalls schuldig wenigstens aeckern\n", + "mauern kleinen scho wenigstens rische deutsch schuldig bäume standes termins\n", + "hinaus ferd mauern doktor zimmer anzumelden blatt oktober habm eiche\n", + "eigene höchste herr beweg kleinere hundert weniger darf bücher sagten\n", + "aeckern hinaus mauern traf julius vermögen adler gemäß such königl\n", + "befindlich stellte mauern theil adler gränze unfehlbar dienstbare bestehend näher\n", + "gemeldet rden hinaus dritte ferd nahm woche sagten ider gränze\n", + "königl oktober hinaus sagten rechr enthalten vorder stände nahm eiche\n", + "hinaus magistrat termins lande keller ferd widrigenfalls gebirg übrig eigene\n", + "meistens hinaus nutzen wech mauern zimmer erde setzen ende ofen\n", + "gebe jahren letzten dritte dortigen unfehlbar heit keller vollkommen zimmer\n", + "such bevollmächtig hinaus schein staaten scho meistens jahren theil braunen\n", + "adler hinaus wenigstens letzten schweren neuesten rück schuldig wahrend mangel\n", + "nutzen gebührte groß hinaus mittels königl gattung kleider tische widrigenfalls\n", + "niemand mauern walter adler sagten wäscher hauptstadt unterhaltung vergleich nahe\n", + "starken unterm stellte aeckern sagten mauern barometerstand anzumelden verkaufe gränze\n", + "gebührte erweisen ofen bevollmächtig mauern anzumelden grossen gebrauch magistrat stände\n", + "hinaus unterm förmliche bevor hofe nutzen hicmit befindliche hiesige traf\n", + "such schweden kaiser zimmer sagten eiche hinaus beding nutzen letzt\n", + "ferd freyherrn wahrend kurzem weiss anzumelden illum beweg sagten letzt\n", + "rechr königl mauern versichern bevollmächtig richten hinaus unternehmung kaiser wert\n", + "nachher termins gebrauch bevollmächtig unterhaltung hinaus ulrich wenigstens unfehlbar bewegung\n", + "strenge adler interessen mauern begebenheiten gebührte fund erweisen vorgeladen oktober\n", + "sachen schweden ischen stellte bevollmächtig nachrichten nachricht beding rosina gebliebenen\n", + "gebirg könn wenigstens hauptstadt gebührte adler erweisen unbekannt bevollmächtig berliner\n", + "herr gemeldet eigene hinaus unternehmung groß königl barb mannschaft oktober\n", + "scho keller unfehlbar königl ferd kleider gebe dritte kart dürften\n", + "richten walter bücher bevollmächtig stande ters erweisen gerichtet fchen beding\n", + "grossen bücher bevollmächtig gebührte meistens lande schuldig geschrieben dritte nachrichten\n", + "gleich mittels höher befanden mauern angriffe unternehmung ischen tages unterhalt\n", + "vermögen ferd eröffnen kleinen hinaus dritte traf niemand ranz raab\n", + "befanden mauern oktober richtig kammer hinaus zugeben rechr diensten rden\n", + "widrigenfalls darunter anzumelden bevollmächtig gemeldet gebe eigene traf mauern betreffend\n", + "deutsch unfehlbar hinaus erschienen schweden angehörigen wenigstens weicher verdienste abends\n", + "zimmer gleich münchen ranz starken oktober rosina kirchen vermeinen mauern\n" + ] + } + ], + "source": [ + "for t in model_output['topics']:\n", + " print(\" \".join(t))" + ] + }, + { + "cell_type": "markdown", + "id": "be195592-c0a9-400d-b816-cd11d47100c4", + "metadata": {}, + "source": [ + "

check topic distribution

" + ] + }, + { + "cell_type": "code", + "execution_count": 264, + "id": "7cd3af7a-d01f-4fee-b509-da028801bb0e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.0059787964725444105\n", + "0.00769818471487543\n", + "0.007845006928139258\n", + "0.01287745649103601\n", + "0.007882614055808429\n", + "0.021140513627395673\n", + "0.0063803652158589816\n", + "0.003840347867676177\n", + "0.004482069944797164\n", + "0.009222705558548035\n", + "0.020719753923980188\n", + "0.012815042394584765\n", + "0.0036802868079536945\n", + "0.0038627161897227535\n", + "0.003942424188613709\n", + "0.010904119111471837\n", + "0.02083862852305174\n", + "0.0039198275136281425\n", + "0.003930344608429523\n", + "0.019912233673310353\n", + "0.009020648005367057\n", + "0.018197241619206463\n", + "0.007845113325315567\n", + "0.020443208261387298\n", + "0.007630307515911712\n", + "0.0038729453722923493\n", + "0.003944417128576526\n", + "0.019241918109791593\n", + "0.006635155320236105\n", + "0.005551625108146366\n", + "0.021718534940933707\n", + "0.007321812053199606\n", + "0.005683674732011749\n", + "0.013743482955782874\n", + "0.015188533702773824\n", + "0.0058729551401149275\n", + "0.003977611751661299\n", + "0.0051438200910307146\n", + "0.0046773377700246\n", + "0.005799026364900537\n", + "0.017189493779938645\n", + "0.021009703523885072\n", + "0.020543984457439074\n", + "0.02112997764652949\n", + "0.015288039062035047\n", + "0.006784754181052187\n", + "0.007869153709202274\n", + "0.00585381303731055\n", + "0.02105999588566415\n", + "0.005403961653484066\n", + "0.012953664470418283\n", + "0.012613967865236973\n", + "0.005746458852063705\n", + "0.005720107985426175\n", + "0.011443835176081836\n", + "0.004239832541042585\n", + "0.0045247736774053585\n", + "0.0140295498418776\n", + "0.005426113865841066\n", + "0.015673086711382664\n", + "0.01046041199120413\n", + "0.0041382441881392725\n", + "0.005948414665395451\n", + "0.012997421380303846\n", + "0.005786573506486059\n", + "0.006074188288552629\n", + "0.006132205834675101\n", + "0.007801057174487576\n", + "0.009358633673846995\n", + "0.017313944270114408\n", + "0.004158880121640267\n", + "0.0039015584286056643\n", + "0.017692697925801658\n", + "0.005685131463359333\n", + "0.006272824476130215\n", + "0.015042053701276063\n", + "0.020335983999210633\n", + "0.01280361829336984\n", + "0.01406441831195647\n", + "0.005614401967596103\n", + "0.005594803066067169\n", + "0.004014016096223077\n", + "0.006813921707116662\n", + "0.02118835557949232\n", + "0.005006143916112605\n", + "0.020362335885732087\n", + "0.01003323871630924\n", + "0.010151861646881134\n", + "0.010257397226966414\n", + "0.003919887495372856\n", + "0.005887601066786407\n", + "0.007057942212216464\n", + "0.006157704665428428\n", + "0.011487390160377772\n", + "0.009505817069574917\n", + "0.016725525834191977\n", + "0.014215720797448985\n", + "0.011327869850182278\n", + "0.0038987879024995663\n", + "0.006923938894278707\n" + ] + } + ], + "source": [ + "for list in model_output['topic-document-matrix']:\n", + " print(((sum(list))/652))" + ] + }, + { + "cell_type": "code", + "execution_count": 265, + "id": "f10410dd-c938-4bc9-948a-88dadc0e2b6f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "100" + ] + }, + "execution_count": 265, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(model_output['topic-document-matrix'])" + ] + }, + { + "cell_type": "code", + "execution_count": 266, + "id": "b0b46352-d952-44b9-86b9-cc6cfb548885", + "metadata": {}, + "outputs": [], + "source": [ + "top_doc_matrix = model_output['topic-document-matrix']" + ] + }, + { + "cell_type": "code", + "execution_count": 267, + "id": "63b6dc49-5441-4ffc-b82a-352014c4dced", + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.DataFrame(top_doc_matrix).T" + ] + }, + { + "cell_type": "code", + "execution_count": 269, + "id": "29085dee-47b8-4360-82f4-93ed12e4da08", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
0123456789...90919293949596979899
00.0059980.0077140.0078600.0128720.0078970.0210790.0063980.0038610.0045030.009234...0.0059060.0070750.0061760.0114900.0095150.0166960.0142050.0113310.0039190.006941
10.0060120.0077260.0078730.0128670.0079090.0210330.0064130.0038760.0045190.009242...0.0059210.0070880.0061900.0114920.0095220.0166720.0141960.0113340.0039350.006956
20.0060100.0077240.0078710.0128680.0079070.0210390.0064110.0038740.0045170.009240...0.0059190.0070860.0061880.0114920.0095210.0166750.0141980.0113340.0039330.006953
30.0060150.0077280.0078740.0128670.0079100.0210250.0064140.0038790.0045210.009244...0.0059230.0070910.0061920.0114920.0095230.0166690.0141940.0113330.0039380.006957
40.0060180.0077310.0078800.0128650.0079140.0210100.0064200.0038840.0045270.009245...0.0059280.0070930.0061970.0114940.0095270.0166620.0141930.0113360.0039430.006963
..................................................................
6470.0059570.0076800.0078290.0128830.0078670.0212070.0063620.0038180.0044600.009209...0.0058670.0070380.0061370.0114870.0094970.0167590.0142290.0113260.0038760.006906
6480.0059600.0076820.0078310.0128820.0078680.0211990.0063640.0038210.0044620.009211...0.0058690.0070400.0061400.0114870.0094980.0167550.0142270.0113260.0038790.006908
6490.0059480.0076720.0078210.0128860.0078590.0212390.0063520.0038070.0044490.009204...0.0058570.0070290.0061280.0114850.0094930.0167750.0142350.0113240.0038650.006896
6500.0059670.0076880.0078360.0128810.0078740.0211780.0063700.0038280.0044690.009215...0.0058760.0070470.0061460.0114870.0095010.0167440.0142230.0113270.0038860.006914
6510.0059550.0076790.0078270.0128840.0078650.0212150.0063590.0038150.0044570.009209...0.0058650.0070360.0061350.0114850.0094950.0167630.0142300.0113250.0038730.006903
\n", + "

652 rows × 100 columns

\n", + "
" + ], + "text/plain": [ + " 0 1 2 3 4 5 6 \\\n", + "0 0.005998 0.007714 0.007860 0.012872 0.007897 0.021079 0.006398 \n", + "1 0.006012 0.007726 0.007873 0.012867 0.007909 0.021033 0.006413 \n", + "2 0.006010 0.007724 0.007871 0.012868 0.007907 0.021039 0.006411 \n", + "3 0.006015 0.007728 0.007874 0.012867 0.007910 0.021025 0.006414 \n", + "4 0.006018 0.007731 0.007880 0.012865 0.007914 0.021010 0.006420 \n", + ".. ... ... ... ... ... ... ... \n", + "647 0.005957 0.007680 0.007829 0.012883 0.007867 0.021207 0.006362 \n", + "648 0.005960 0.007682 0.007831 0.012882 0.007868 0.021199 0.006364 \n", + "649 0.005948 0.007672 0.007821 0.012886 0.007859 0.021239 0.006352 \n", + "650 0.005967 0.007688 0.007836 0.012881 0.007874 0.021178 0.006370 \n", + "651 0.005955 0.007679 0.007827 0.012884 0.007865 0.021215 0.006359 \n", + "\n", + " 7 8 9 ... 90 91 92 \\\n", + "0 0.003861 0.004503 0.009234 ... 0.005906 0.007075 0.006176 \n", + "1 0.003876 0.004519 0.009242 ... 0.005921 0.007088 0.006190 \n", + "2 0.003874 0.004517 0.009240 ... 0.005919 0.007086 0.006188 \n", + "3 0.003879 0.004521 0.009244 ... 0.005923 0.007091 0.006192 \n", + "4 0.003884 0.004527 0.009245 ... 0.005928 0.007093 0.006197 \n", + ".. ... ... ... ... ... ... ... \n", + "647 0.003818 0.004460 0.009209 ... 0.005867 0.007038 0.006137 \n", + "648 0.003821 0.004462 0.009211 ... 0.005869 0.007040 0.006140 \n", + "649 0.003807 0.004449 0.009204 ... 0.005857 0.007029 0.006128 \n", + "650 0.003828 0.004469 0.009215 ... 0.005876 0.007047 0.006146 \n", + "651 0.003815 0.004457 0.009209 ... 0.005865 0.007036 0.006135 \n", + "\n", + " 93 94 95 96 97 98 99 \n", + "0 0.011490 0.009515 0.016696 0.014205 0.011331 0.003919 0.006941 \n", + "1 0.011492 0.009522 0.016672 0.014196 0.011334 0.003935 0.006956 \n", + "2 0.011492 0.009521 0.016675 0.014198 0.011334 0.003933 0.006953 \n", + "3 0.011492 0.009523 0.016669 0.014194 0.011333 0.003938 0.006957 \n", + "4 0.011494 0.009527 0.016662 0.014193 0.011336 0.003943 0.006963 \n", + ".. ... ... ... ... ... ... ... \n", + "647 0.011487 0.009497 0.016759 0.014229 0.011326 0.003876 0.006906 \n", + "648 0.011487 0.009498 0.016755 0.014227 0.011326 0.003879 0.006908 \n", + "649 0.011485 0.009493 0.016775 0.014235 0.011324 0.003865 0.006896 \n", + "650 0.011487 0.009501 0.016744 0.014223 0.011327 0.003886 0.006914 \n", + "651 0.011485 0.009495 0.016763 0.014230 0.011325 0.003873 0.006903 \n", + "\n", + "[652 rows x 100 columns]" + ] + }, + "execution_count": 269, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 270, + "id": "47fb5f79-1bd9-4d7e-92a5-7a7ca0869a79", + "metadata": {}, + "outputs": [], + "source": [ + "wz = pd.read_csv('wz_clean.tsv', sep = '\\t', encoding='utf-8')" + ] + }, + { + "cell_type": "code", + "execution_count": 271, + "id": "deb3780d-eb8b-4961-b094-a8b7138ee687", + "metadata": {}, + "outputs": [], + "source": [ + "wz = wz.iloc[: , 1:]" + ] + }, + { + "cell_type": "code", + "execution_count": 272, + "id": "585642c2-892a-4435-8d73-74234cc3a09c", + "metadata": {}, + "outputs": [], + "source": [ + "wz = wz.iloc[: , 1:]" + ] + }, + { + "cell_type": "code", + "execution_count": 274, + "id": "3989efb9-e7ec-40f8-8170-15497cfbe2b8", + "metadata": {}, + "outputs": [], + "source": [ + "df_split = wz[wz['split'] == 'train']" + ] + }, + { + "cell_type": "code", + "execution_count": 275, + "id": "a62f613d-1a2c-4cff-9395-8123a716ead6", + "metadata": {}, + "outputs": [], + "source": [ + "df_split = df_split.reset_index(drop=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 276, + "id": "5574d790-7cb4-4559-87aa-673fecdb4b5e", + "metadata": {}, + "outputs": [], + "source": [ + "df_top_doc_mat = pd.concat([df_split, df], axis=\"columns\")" + ] + }, + { + "cell_type": "code", + "execution_count": 277, + "id": "a3713d66-4846-4970-aa3e-d53871b2e1db", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
splitmanifest_idyear0123456...90919293949596979899
0trainwrz1789010717890.0059980.0077140.0078600.0128720.0078970.0210790.006398...0.0059060.0070750.0061760.0114900.0095150.0166960.0142050.0113310.0039190.006941
1trainwrz1789011417890.0060120.0077260.0078730.0128670.0079090.0210330.006413...0.0059210.0070880.0061900.0114920.0095220.0166720.0141960.0113340.0039350.006956
2trainwrz1789011717890.0060100.0077240.0078710.0128680.0079070.0210390.006411...0.0059190.0070860.0061880.0114920.0095210.0166750.0141980.0113340.0039330.006953
3trainwrz1789012817890.0060150.0077280.0078740.0128670.0079100.0210250.006414...0.0059230.0070910.0061920.0114920.0095230.0166690.0141940.0113330.0039380.006957
4trainwrz1789020717890.0060180.0077310.0078800.0128650.0079140.0210100.006420...0.0059280.0070930.0061970.0114940.0095270.0166620.0141930.0113360.0039430.006963
..................................................................
647trainwrz1799112717990.0059570.0076800.0078290.0128830.0078670.0212070.006362...0.0058670.0070380.0061370.0114870.0094970.0167590.0142290.0113260.0038760.006906
648trainwrz1799120417990.0059600.0076820.0078310.0128820.0078680.0211990.006364...0.0058690.0070400.0061400.0114870.0094980.0167550.0142270.0113260.0038790.006908
649trainwrz1799120717990.0059480.0076720.0078210.0128860.0078590.0212390.006352...0.0058570.0070290.0061280.0114850.0094930.0167750.0142350.0113240.0038650.006896
650trainwrz1799121117990.0059670.0076880.0078360.0128810.0078740.0211780.006370...0.0058760.0070470.0061460.0114870.0095010.0167440.0142230.0113270.0038860.006914
651trainwrz1799121417990.0059550.0076790.0078270.0128840.0078650.0212150.006359...0.0058650.0070360.0061350.0114850.0094950.0167630.0142300.0113250.0038730.006903
\n", + "

652 rows × 103 columns

\n", + "
" + ], + "text/plain": [ + " split manifest_id year 0 1 2 3 \\\n", + "0 train wrz17890107 1789 0.005998 0.007714 0.007860 0.012872 \n", + "1 train wrz17890114 1789 0.006012 0.007726 0.007873 0.012867 \n", + "2 train wrz17890117 1789 0.006010 0.007724 0.007871 0.012868 \n", + "3 train wrz17890128 1789 0.006015 0.007728 0.007874 0.012867 \n", + "4 train wrz17890207 1789 0.006018 0.007731 0.007880 0.012865 \n", + ".. ... ... ... ... ... ... ... \n", + "647 train wrz17991127 1799 0.005957 0.007680 0.007829 0.012883 \n", + "648 train wrz17991204 1799 0.005960 0.007682 0.007831 0.012882 \n", + "649 train wrz17991207 1799 0.005948 0.007672 0.007821 0.012886 \n", + "650 train wrz17991211 1799 0.005967 0.007688 0.007836 0.012881 \n", + "651 train wrz17991214 1799 0.005955 0.007679 0.007827 0.012884 \n", + "\n", + " 4 5 6 ... 90 91 92 \\\n", + "0 0.007897 0.021079 0.006398 ... 0.005906 0.007075 0.006176 \n", + "1 0.007909 0.021033 0.006413 ... 0.005921 0.007088 0.006190 \n", + "2 0.007907 0.021039 0.006411 ... 0.005919 0.007086 0.006188 \n", + "3 0.007910 0.021025 0.006414 ... 0.005923 0.007091 0.006192 \n", + "4 0.007914 0.021010 0.006420 ... 0.005928 0.007093 0.006197 \n", + ".. ... ... ... ... ... ... ... \n", + "647 0.007867 0.021207 0.006362 ... 0.005867 0.007038 0.006137 \n", + "648 0.007868 0.021199 0.006364 ... 0.005869 0.007040 0.006140 \n", + "649 0.007859 0.021239 0.006352 ... 0.005857 0.007029 0.006128 \n", + "650 0.007874 0.021178 0.006370 ... 0.005876 0.007047 0.006146 \n", + "651 0.007865 0.021215 0.006359 ... 0.005865 0.007036 0.006135 \n", + "\n", + " 93 94 95 96 97 98 99 \n", + "0 0.011490 0.009515 0.016696 0.014205 0.011331 0.003919 0.006941 \n", + "1 0.011492 0.009522 0.016672 0.014196 0.011334 0.003935 0.006956 \n", + "2 0.011492 0.009521 0.016675 0.014198 0.011334 0.003933 0.006953 \n", + "3 0.011492 0.009523 0.016669 0.014194 0.011333 0.003938 0.006957 \n", + "4 0.011494 0.009527 0.016662 0.014193 0.011336 0.003943 0.006963 \n", + ".. ... ... ... ... ... ... ... \n", + "647 0.011487 0.009497 0.016759 0.014229 0.011326 0.003876 0.006906 \n", + "648 0.011487 0.009498 0.016755 0.014227 0.011326 0.003879 0.006908 \n", + "649 0.011485 0.009493 0.016775 0.014235 0.011324 0.003865 0.006896 \n", + "650 0.011487 0.009501 0.016744 0.014223 0.011327 0.003886 0.006914 \n", + "651 0.011485 0.009495 0.016763 0.014230 0.011325 0.003873 0.006903 \n", + "\n", + "[652 rows x 103 columns]" + ] + }, + "execution_count": 277, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_top_doc_mat" + ] + }, + { + "cell_type": "code", + "execution_count": 278, + "id": "3d1161e4-da16-4908-9084-dda1d04f8bb1", + "metadata": {}, + "outputs": [], + "source": [ + "df_top_doc_mat['year'] = df_top_doc_mat['year'].astype(str)" + ] + }, + { + "cell_type": "code", + "execution_count": 279, + "id": "35d3d86b-0e24-4dbc-96c2-27607f62298c", + "metadata": {}, + "outputs": [], + "source": [ + "df_melted = df_top_doc_mat.melt(id_vars = ['split', 'manifest_id', 'year'], var_name = 'topics', value_name = 'values')" + ] + }, + { + "cell_type": "code", + "execution_count": 280, + "id": "e0f85447-7566-4dba-85c6-9254cee185b2", + "metadata": {}, + "outputs": [], + "source": [ + "df_melted['topics'] = df_melted['topics'].astype(str)" + ] + }, + { + "cell_type": "code", + "execution_count": 281, + "id": "421a02af-9bd8-4e79-9671-89fb2b56a917", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1793 7000\n", + "1795 7000\n", + "1791 6500\n", + "1790 6400\n", + "1792 6300\n", + "1794 6100\n", + "1796 6100\n", + "1798 6100\n", + "1797 5500\n", + "1789 5100\n", + "1799 3100\n", + "Name: year, dtype: int64" + ] + }, + "execution_count": 281, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_melted['year'].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 282, + "id": "8c0e699d-6f02-438f-97fe-7f27463fcb83", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
splitmanifest_idyeartopicsvalues
0trainwrz17890107178900.005998
1trainwrz17890114178900.006012
2trainwrz17890117178900.006010
3trainwrz17890128178900.006015
4trainwrz17890207178900.006018
..................
65195trainwrz179911271799990.006906
65196trainwrz179912041799990.006908
65197trainwrz179912071799990.006896
65198trainwrz179912111799990.006914
65199trainwrz179912141799990.006903
\n", + "

65200 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " split manifest_id year topics values\n", + "0 train wrz17890107 1789 0 0.005998\n", + "1 train wrz17890114 1789 0 0.006012\n", + "2 train wrz17890117 1789 0 0.006010\n", + "3 train wrz17890128 1789 0 0.006015\n", + "4 train wrz17890207 1789 0 0.006018\n", + "... ... ... ... ... ...\n", + "65195 train wrz17991127 1799 99 0.006906\n", + "65196 train wrz17991204 1799 99 0.006908\n", + "65197 train wrz17991207 1799 99 0.006896\n", + "65198 train wrz17991211 1799 99 0.006914\n", + "65199 train wrz17991214 1799 99 0.006903\n", + "\n", + "[65200 rows x 5 columns]" + ] + }, + "execution_count": 282, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_melted" + ] + }, + { + "cell_type": "code", + "execution_count": 283, + "id": "6b203d91-1c6f-43b4-b550-323c01b29446", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:436: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " scout, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:514: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " line, = ax.plot([], [], **kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\relational.py:337: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.\n", + " artist = func([], [], label=label, **use_kws)\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 283, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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pzMMDCTBmpCQkJCwm6Jp2zgA+OpXv9pI7xdpKDghISEhIWGISII1ISEhISFhiEiCNSEhISEhYYhIgjUhISEhIWGISII1ISEhISFhiEiCNSEhISEhYYhIy20SEhISEnZLnHzyyWuvvvrqRUuWLCluv/32mwDghBNOeNadd945BgCbN2/OFixYUN566603T6fcJFgTEhISEnZLNG0b97Wvfe0uF37729++36JFi8rplpsEa0JCQkLCnOKm75yz6pkhbxu3x+L9Jw552fS3jXPQWuOKK65Y/M1vfvO26dadvrEmJCQkJCRUcNVVV+2xdOnSzqGHHjo53bzJYk1ISEhImFNMZVnOBf7lX/5l8W/8xm88OUjeJFgTEhISEhIEOp0Ovv71r+/1wx/+cFqTlhzSUHBCQkJCQoLAV7/61YXPetaztu2///6dQfInwZqQkJCQsFvixBNPXHfsscceePfdd48uX778sHPPPXcpAFx88cWLTz755IGGgYE0FJyQkJCQsJui27Zxl1122T0zKTdZrAkJCQkJCUNEEqwJCQkJCQlDRBKsCQkJCQkJQ0QSrAkJCQkJCUNEEqwJCQkJCQlDRBKsCQkJCQkJQ0QSrAkJCQkJuyVOPvnktYsXLz58/fr1hzja9773vfHDDz/8wAMPPPDg5z73uQd9+9vfnvbmAEmwJiQkJCTsljjjjDMev/zyy2+XtD/6oz/a70//9E8fvPXWW2/+wAc+8OB73/veVdMtNzmISEhISEiYU/z0mnNWPbNxyNvG7bX/xGEvnf62cUSEp556KgOATZs2ZcuXL29Pt+4kWBMSEhISEiw++clP3n/CCSes/8AHPrBKa41rr7321umWkQRrQkJCQsKcYirLcnvik5/85LL/+3//7/2nnXbaps985jN7nXbaaWu/973v/WI6ZaRvrAkJCQkJCRaXXXbZkre+9a2bAOCMM87Y+NOf/nT+dMtIgjUhISEhIcFi2bJlnSuvvHIBAFxxxRUL1qxZs226ZaSh4ISEhISE3RInnnjiuuuuu27Bxo0b8+XLlx/2vve978Hzzz//3ve85z2r/uAP/oBGR0f1BRdccO90y02CNSEhISFht0S3beNuuummW2ZSbhoKTkhISEhIGCKSYE1ISEhISBgikmBNSEhISEgYIpJgTUhISEhIGCKSYE1ISEhISBgikmBNSEhISEgY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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "sns.lineplot(data=df_melted, x=\"year\", y=\"values\", hue = 'topics')\n", + "plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)" + ] + }, + { + "cell_type": "code", + "execution_count": 284, + "id": "fdce078c-6deb-4d72-921d-bdc007e98366", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 284, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "sns.violinplot(x=\"topics\", y=\"values\", data=df_melted, scale=\"count\")" + ] + }, + { + "cell_type": "code", + "execution_count": 289, + "id": "34c60c35-05a3-4e5e-b854-e5efebf7f6de", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.02157101" + ] + }, + "execution_count": 289, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "max(map(lambda x: x[50], model_output['topic-document-matrix']))" + ] + }, + { + "cell_type": "code", + "execution_count": 286, + "id": "8f98529c-35fd-4e04-bc96-bbf73c7eb300", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.021952521055936813" + ] + }, + "execution_count": 286, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "max(df_melted['values'])" + ] + }, + { + "cell_type": "code", + "execution_count": 287, + "id": "3b1612e9-6610-4b81-8cda-38abbac3271c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 287, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "sns.boxplot(df_top_doc_mat.iloc[:, 40])" + ] + }, + { + "cell_type": "code", + "execution_count": 288, + "id": "0673ffa7-b81a-4de8-8064-ff366b40eebe", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\axisgrid.py:130: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.\n", + " if LooseVersion(mpl.__version__) < LooseVersion(\"3.0\"):\n", + "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\seaborn\\axisgrid.py:130: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.\n", + " if LooseVersion(mpl.__version__) < LooseVersion(\"3.0\"):\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 288, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "sns.displot(x = df_melted['year'], y = df_melted['values'], hue = df_melted['topics'])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9f4ed94a-93be-448f-b48b-f6f15769869d", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "b2fbeae5-9e38-4365-a20e-6dcf1a30eaed", + "metadata": {}, + "source": [ + "

model optimisation

" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "bffa6694-19c3-4f4a-9167-76dc6dd9f70d", + "metadata": {}, + "outputs": [], + "source": [ + "from skopt.space.space import Real, Categorical, Integer\n", + "from octis.evaluation_metrics.coherence_metrics import Coherence\n", + "from octis.optimization.optimizer import Optimizer\n", + "from octis.evaluation_metrics.diversity_metrics import TopicDiversity" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "a54b82da-f6df-4944-933c-6ad1d082c7e0", + "metadata": {}, + "outputs": [], + "source": [ + "search_space = {\"t_hidden_size\": Categorical({700, 1000, 1300})}#, \n", + " #\"num_epochs\": Categorical({100, 150, 200}),\n", + " #\"dropout\": Real(0.0, 0.95)}" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "b43500c2-92f2-4e99-8d4c-fe3523229e9d", + "metadata": {}, + "outputs": [], + "source": [ + "coherence = Coherence(texts=dataset.get_corpus(), measure = 'c_v')" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "598461a0-9ea3-4502-9f53-7046de154924", + "metadata": {}, + "outputs": [], + "source": [ + "optimization_runs=15" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "216a66e0-ae73-4186-b643-13e7b7479410", + "metadata": {}, + "outputs": [], + "source": [ + "model_runs=5" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "022bc79a-cad6-4d65-9139-9e26901077c0", + "metadata": {}, + "outputs": [], + "source": [ + "optimizer=Optimizer()\n", + "import time\n", + "start = time.time()\n", + "optimization_result = optimizer.optimize(\n", + " model, dataset, coherence, search_space, number_of_call=optimization_runs, \n", + " model_runs=model_runs, save_models=True, \n", + " extra_metrics=None, # to keep track of other metrics\n", + " save_path='results/test_ETMco1_wz//')\n", + "end = time.time()\n", + "duration = end - start\n", + "optimization_result.save_to_csv(\"results_ETMco1_wz.csv\")\n", + "print('Optimizing model took: ' + str(round(duration)) + ' seconds.')" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "4494c763-6801-4146-a2df-aa7b4871bed2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_keys(['dataset_name', 'dataset_path', 'is_cached', 'kernel', 'acq_func', 'surrogate_model', 'optimization_type', 'model_runs', 'save_models', 'save_step', 'save_name', 'save_path', 'early_stop', 'early_step', 'plot_model', 'plot_best_seen', 'plot_name', 'log_scale_plot', 'search_space', 'model_name', 'model_attributes', 'use_partitioning', 'metric_name', 'extra_metric_names', 'metric_attributes', 'extra_metric_attributes', 'current_call', 'number_of_call', 'random_state', 'x0', 'y0', 'n_random_starts', 'initial_point_generator', 'topk', 'time_eval', 'dict_model_runs', 'f_val', 'x_iters'])" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import json\n", + "results = json.load(open('results/test_ETMco1_wz/result.json','r'))\n", + "results.keys()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "54d16953-b086-4ef1-a95d-48da42d336f0", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "plt.xlabel('Iteration')\n", + "plt.ylabel('Coherence score (c_v)')\n", + "plt.title('Median coherence score per iteration')\n", + "plt.plot(results['f_val'])\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "5968ac38-254e-4b27-8397-f3a77f2a370b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results[ 'f_val'].index(max(results[ 'f_val']))" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "4077e429-892f-4f20-9281-c42ae03f2ab3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.25312598515861223" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results[\"f_val\"][2]" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "08daea25-8827-4ed6-aae8-920c1a11d315", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_keys(['t_hidden_size'])" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results['x_iters'].keys()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "e00e8ae9-1a08-40ee-80ff-3a030ffd0f1d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[700]\n" + ] + } + ], + "source": [ + "print([results['x_iters'][parameter][10] for parameter in results['x_iters'].keys()])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "45e18e12-127e-402f-b30a-5871f0b32036", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "c9b45fa3-ba30-4f8f-9a5f-2879c7d42861", + "metadata": {}, + "outputs": [], + "source": [ + "model = ETM(num_topics=100, num_epochs=150, t_hidden_size=700, rho_size=600,\n", + "embedding_size=800, activation='relu', dropout=0.1, lr=0.005,\n", + "optimizer='adam', batch_size=128, clip=0.0, wdecay=1.2e-06, bow_norm=1,\n", + "device='cpu', top_word=25, train_embeddings=True, embeddings_path=None,\n", + "embeddings_type='pickle', binary_embeddings=True,\n", + "headerless_embeddings=False, use_partitions=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "8679676b-5888-48b6-aa88-238ccd5b9ab5", + "metadata": {}, + "outputs": [], + "source": [ + "search_space = {\"rho_size\": Categorical({500, 600, 700, 800})}#, \n", + " #\"num_epochs\": Categorical({100, 150, 200}),\n", + " #\"dropout\": Real(0.0, 0.95)}" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "134f969e-cc0e-4230-a15b-62025b9f6a8b", + "metadata": {}, + "outputs": [], + "source": [ + "optimization_runs=15" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "b219d52f-a511-4958-a725-54dc69e4576f", + "metadata": {}, + "outputs": [], + "source": [ + "model_runs=5" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "1c988bee-6260-4270-a5a8-ed0b6214e841", + "metadata": {}, + "outputs": [], + "source": [ + "optimizer=Optimizer()\n", + "import time\n", + "start = time.time()\n", + "optimization_result = optimizer.optimize(\n", + " model, dataset, coherence, search_space, number_of_call=optimization_runs, \n", + " model_runs=model_runs, save_models=True, \n", + " extra_metrics=None, # to keep track of other metrics\n", + " save_path='results/test_ETMco2_wz//')\n", + "end = time.time()\n", + "duration = end - start\n", + "optimization_result.save_to_csv(\"results_ETMdco2_wz.csv\")\n", + "print('Optimizing model took: ' + str(round(duration)) + ' seconds.')" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "e627582f-8a16-46cb-a99c-b63905bc7a77", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_keys(['dataset_name', 'dataset_path', 'is_cached', 'kernel', 'acq_func', 'surrogate_model', 'optimization_type', 'model_runs', 'save_models', 'save_step', 'save_name', 'save_path', 'early_stop', 'early_step', 'plot_model', 'plot_best_seen', 'plot_name', 'log_scale_plot', 'search_space', 'model_name', 'model_attributes', 'use_partitioning', 'metric_name', 'extra_metric_names', 'metric_attributes', 'extra_metric_attributes', 'current_call', 'number_of_call', 'random_state', 'x0', 'y0', 'n_random_starts', 'initial_point_generator', 'topk', 'time_eval', 'dict_model_runs', 'f_val', 'x_iters'])" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import json\n", + "results = json.load(open('results/test_ETMco2_wz/result.json','r'))\n", + "results.keys()" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "6b6921cd-7dcb-46fc-8561-dd4aa2cf4b8d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[600]\n" + ] + } + ], + "source": [ + "print([results['x_iters'][parameter][10] for parameter in results['x_iters'].keys()])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "78505c00-7a78-45a0-9b2b-f15c18a02200", + "metadata": {}, + "outputs": [], + "source": [ + "model = ETM(num_topics=100, num_epochs=150, t_hidden_size=700, rho_size=500,\n", + "embedding_size=600, activation='relu', dropout=0.1, lr=0.005,\n", + "optimizer='adam', batch_size=128, clip=0.0, wdecay=1.2e-06, bow_norm=1,\n", + "device='cpu', top_word=25, train_embeddings=True, embeddings_path=None,\n", + "embeddings_type='pickle', binary_embeddings=True,\n", + "headerless_embeddings=False, use_partitions=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "b8b9bdba-d331-4918-8315-62df6327c75a", + "metadata": {}, + "outputs": [], + "source": [ + "search_space = {\"embedding_size\": Categorical({700, 800, 900, 1000})}#, \n", + " #\"num_epochs\": Categorical({100, 150, 200}),\n", + " #\"dropout\": Real(0.0, 0.95)}" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "b031e385-199f-4ff5-a546-51b6c195fe2a", + "metadata": {}, + "outputs": [], + "source": [ + "optimization_runs=15" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "25bf9566-1d12-48c5-9e87-f6df819585dc", + "metadata": {}, + "outputs": [], + "source": [ + "model_runs = 5" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "1c574ddd-557d-43f3-b6d9-53f0ed284c41", + "metadata": {}, + "outputs": [], + "source": [ + "optimizer=Optimizer()\n", + "import time\n", + "start = time.time()\n", + "optimization_result = optimizer.optimize(\n", + " model, dataset, topic_diversity, search_space, number_of_call=optimization_runs, \n", + " model_runs=model_runs, save_models=True, \n", + " extra_metrics=None, # to keep track of other metrics\n", + " save_path='results/test_ETMco3_wz//')\n", + "end = time.time()\n", + "duration = end - start\n", + "optimization_result.save_to_csv(\"results_ETMco3_wz.csv\")\n", + "print('Optimizing model took: ' + str(round(duration)) + ' seconds.')" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "ed4fb6a3-49a1-44c2-a3e7-0e03d90daf32", + "metadata": {}, + "outputs": [], + "source": [ + "import json" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "40086dfb-11ae-4680-afcf-19e7fe6a7725", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_keys(['dataset_name', 'dataset_path', 'is_cached', 'kernel', 'acq_func', 'surrogate_model', 'optimization_type', 'model_runs', 'save_models', 'save_step', 'save_name', 'save_path', 'early_stop', 'early_step', 'plot_model', 'plot_best_seen', 'plot_name', 'log_scale_plot', 'search_space', 'model_name', 'model_attributes', 'use_partitioning', 'metric_name', 'extra_metric_names', 'metric_attributes', 'extra_metric_attributes', 'current_call', 'number_of_call', 'random_state', 'x0', 'y0', 'n_random_starts', 'initial_point_generator', 'topk', 'time_eval', 'dict_model_runs', 'f_val', 'x_iters'])" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results = json.load(open('results/test_ETMco3_wz/result.json','r'))\n", + "results.keys()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "25b4f43d-6437-4a1c-bbf6-1b795496505c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[800]\n" + ] + } + ], + "source": [ + "print([results['x_iters'][parameter][10] for parameter in results['x_iters'].keys()])" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "bd504b2f-aaad-480a-8a56-c6099534b2d2", + "metadata": {}, + "outputs": [], + "source": [ + "model = ETM(num_topics=100, num_epochs=150, t_hidden_size=700, rho_size=500,\n", + "embedding_size=800, activation='relu', dropout=0.1, lr=0.005,\n", + "optimizer='adam', batch_size=128, clip=0.0, wdecay=1.2e-06, bow_norm=1,\n", + "device='cpu', top_word=25, train_embeddings=True, embeddings_path=None,\n", + "embeddings_type='pickle', binary_embeddings=True,\n", + "headerless_embeddings=False, use_partitions=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "ac0fe1f8-6b83-4c37-a345-4006ed70716f", + "metadata": {}, + "outputs": [], + "source": [ + "search_space = {\"num_topics\": Integer(80,160)}" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "bc4ed882-ebd5-4276-b99d-549b92f3d68a", + "metadata": {}, + "outputs": [], + "source": [ + "topic_diversity = TopicDiversity(topk=10)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "2931284e-c71f-45c3-806f-bcdaa3f910a4", + "metadata": {}, + "outputs": [], + "source": [ + "optimization_runs=15" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "cadbcee7-5d87-44dd-9b60-bcd0fa23a4d4", + "metadata": {}, + "outputs": [], + "source": [ + "model_runs = 5" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "733a718d-04f9-49c9-a40e-95ee75a6aa4d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Current call: 0\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=119, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=119, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=119, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 3.44 .. Rec_loss: 88997.65 .. NELBO: 89001.09\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=119, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=119, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=119, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 1.14 .. Rec_loss: 88974.47 .. NELBO: 88975.61\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=119, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=119, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=119, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.13 .. Rec_loss: 89034.72 .. NELBO: 89036.85\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=119, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=119, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=119, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.08 .. Rec_loss: 89023.43 .. NELBO: 89025.51\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=119, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=119, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=119, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.67 .. Rec_loss: 88995.5 .. NELBO: 88998.17\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "Current call: 1\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=127, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=127, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=127, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 1.84 .. Rec_loss: 89054.54 .. NELBO: 89056.38\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=127, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=127, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=127, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.32 .. Rec_loss: 89029.5 .. NELBO: 89031.82\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=127, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=127, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=127, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 3.08 .. Rec_loss: 89003.84 .. NELBO: 89006.92\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=127, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=127, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=127, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 3.13 .. Rec_loss: 88993.01 .. NELBO: 88996.14\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=127, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=127, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=127, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.7 .. Rec_loss: 88999.83 .. NELBO: 89002.53\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "Current call: 2\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=99, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=99, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=99, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 4.27 .. Rec_loss: 88988.58 .. NELBO: 88992.85\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=99, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=99, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=99, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.89 .. Rec_loss: 88973.64 .. NELBO: 88976.53\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=99, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=99, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=99, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.01 .. Rec_loss: 89013.17 .. NELBO: 89015.18\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=99, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=99, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=99, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 3.7 .. Rec_loss: 89004.62 .. NELBO: 89008.32\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=99, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=99, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=99, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 1.54 .. Rec_loss: 88993.82 .. NELBO: 88995.36\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "Current call: 3\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=109, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=109, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=109, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.83 .. Rec_loss: 88979.26 .. NELBO: 88982.09\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=109, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=109, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=109, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.13 .. Rec_loss: 89005.84 .. NELBO: 89007.97\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=109, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=109, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=109, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.97 .. Rec_loss: 89006.06 .. NELBO: 89009.03\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=109, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=109, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=109, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.08 .. Rec_loss: 89030.16 .. NELBO: 89032.24\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=109, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=109, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=109, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.26 .. Rec_loss: 89038.32 .. NELBO: 89040.58\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "Current call: 4\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=108, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=108, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=108, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 1.79 .. Rec_loss: 89004.0 .. NELBO: 89005.79\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=108, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=108, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=108, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 1.98 .. Rec_loss: 89015.57 .. NELBO: 89017.55\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=108, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=108, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=108, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 1.83 .. Rec_loss: 88991.01 .. NELBO: 88992.84\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=108, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=108, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=108, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 1.57 .. Rec_loss: 88979.58 .. NELBO: 88981.15\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=108, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=108, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=108, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.43 .. Rec_loss: 88980.47 .. NELBO: 88982.9\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "Current call: 5\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=90, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=90, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=90, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.81 .. Rec_loss: 88983.06 .. NELBO: 88985.87\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=90, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=90, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=90, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 1.66 .. Rec_loss: 89006.57 .. NELBO: 89008.23\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=90, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=90, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=90, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 3.65 .. Rec_loss: 88995.69 .. NELBO: 88999.34\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=90, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=90, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=90, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.8 .. Rec_loss: 88953.95 .. NELBO: 88956.75\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=90, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=90, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=90, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 1.33 .. Rec_loss: 88986.86 .. NELBO: 88988.19\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "Current call: 6\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=99, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=99, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=99, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.78 .. Rec_loss: 88949.98 .. NELBO: 88952.76\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=99, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=99, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=99, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.57 .. Rec_loss: 88974.0 .. NELBO: 88976.57\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=99, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=99, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=99, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.98 .. Rec_loss: 88970.07 .. NELBO: 88973.05\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=99, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=99, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=99, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.5 .. Rec_loss: 88964.56 .. NELBO: 88967.06\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=99, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=99, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=99, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 1.45 .. Rec_loss: 89007.67 .. NELBO: 89009.12\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "Current call: 7\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=90, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=90, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=90, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 3.6 .. Rec_loss: 89012.43 .. NELBO: 89016.03\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=90, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=90, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=90, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 1.19 .. Rec_loss: 88987.99 .. NELBO: 88989.18\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=90, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=90, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=90, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 1.23 .. Rec_loss: 88985.48 .. NELBO: 88986.71\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=90, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=90, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=90, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.28 .. Rec_loss: 88962.42 .. NELBO: 88964.7\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=90, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=90, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=90, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 1.86 .. Rec_loss: 88984.61 .. NELBO: 88986.47\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "Current call: 8\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=82, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=82, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=82, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 1.74 .. Rec_loss: 88987.9 .. NELBO: 88989.64\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=82, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=82, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=82, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 1.34 .. Rec_loss: 88971.59 .. NELBO: 88972.93\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=82, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=82, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=82, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 3.46 .. Rec_loss: 88964.02 .. NELBO: 88967.48\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=82, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=82, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=82, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 4.33 .. Rec_loss: 88984.25 .. NELBO: 88988.58\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=82, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=82, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=82, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 3.5 .. Rec_loss: 88975.72 .. NELBO: 88979.22\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "Current call: 9\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=103, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=103, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=103, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 3.36 .. Rec_loss: 88991.34 .. NELBO: 88994.7\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=103, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=103, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=103, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.03 .. Rec_loss: 89034.76 .. NELBO: 89036.79\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=103, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=103, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=103, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 4.13 .. Rec_loss: 88979.65 .. NELBO: 88983.78\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=103, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=103, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=103, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.25 .. Rec_loss: 89011.82 .. NELBO: 89014.07\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=103, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=103, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=103, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 3.25 .. Rec_loss: 89034.11 .. NELBO: 89037.36\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "Current call: 10\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=102, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=102, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=102, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 3.07 .. Rec_loss: 88982.92 .. NELBO: 88985.99\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=102, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=102, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=102, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 3.02 .. Rec_loss: 88984.46 .. NELBO: 88987.48\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=102, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=102, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=102, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 1.26 .. Rec_loss: 89017.67 .. NELBO: 89018.93\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=102, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=102, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=102, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 3.61 .. Rec_loss: 88957.25 .. NELBO: 88960.86\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=102, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=102, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=102, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 1.86 .. Rec_loss: 88975.86 .. NELBO: 88977.72\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "Current call: 11\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=103, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=103, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=103, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.52 .. Rec_loss: 89025.5 .. NELBO: 89028.02\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=103, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=103, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=103, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 1.84 .. Rec_loss: 88987.69 .. NELBO: 88989.53\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=103, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=103, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=103, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.72 .. Rec_loss: 88987.53 .. NELBO: 88990.25\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=103, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=103, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=103, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 1.62 .. Rec_loss: 88963.97 .. NELBO: 88965.59\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=103, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=103, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=103, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.44 .. Rec_loss: 89019.76 .. NELBO: 89022.2\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "Current call: 12\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=104, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=104, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=104, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 1.75 .. Rec_loss: 88980.13 .. NELBO: 88981.88\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=104, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=104, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=104, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.32 .. Rec_loss: 89002.83 .. NELBO: 89005.15\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=104, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=104, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=104, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.44 .. Rec_loss: 89004.85 .. NELBO: 89007.29\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=104, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=104, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=104, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 3.13 .. Rec_loss: 88975.44 .. NELBO: 88978.57\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=104, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=104, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=104, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 1.79 .. Rec_loss: 89020.73 .. NELBO: 89022.52\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "Current call: 13\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=103, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=103, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=103, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 1.11 .. Rec_loss: 89009.93 .. NELBO: 89011.04\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=103, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=103, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=103, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 3.0 .. Rec_loss: 88963.22 .. NELBO: 88966.22\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=103, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=103, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=103, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.15 .. Rec_loss: 88989.65 .. NELBO: 88991.8\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=103, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=103, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=103, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.13 .. Rec_loss: 88987.96 .. NELBO: 88990.09\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=103, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=103, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=103, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 1.75 .. Rec_loss: 88986.13 .. NELBO: 88987.88\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "Current call: 14\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=101, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=101, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=101, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.17 .. Rec_loss: 89048.06 .. NELBO: 89050.23\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=101, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=101, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=101, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 3.89 .. Rec_loss: 88974.84 .. NELBO: 88978.73\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=101, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=101, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=101, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.58 .. Rec_loss: 88997.39 .. NELBO: 88999.97\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=101, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=101, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=101, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 2.53 .. Rec_loss: 88971.39 .. NELBO: 88973.92\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=101, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=101, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=101, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 3.58 .. Rec_loss: 89000.65 .. NELBO: 89004.23\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n", + "Optimizing model took: 4109 seconds.\n" + ] + } + ], + "source": [ + "optimizer=Optimizer()\n", + "import time\n", + "start = time.time()\n", + "optimization_result = optimizer.optimize(\n", + " model, dataset, topic_diversity, search_space, number_of_call=optimization_runs, \n", + " model_runs=model_runs, save_models=True, \n", + " extra_metrics=None, # to keep track of other metrics\n", + " save_path='results/test_ETMco5_wz//')\n", + "end = time.time()\n", + "duration = end - start\n", + "optimization_result.save_to_csv(\"results_ETMco5_wz.csv\")\n", + "print('Optimizing model took: ' + str(round(duration)) + ' seconds.')" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "012b1e5d-ab2c-4af2-825f-35ec4ba36584", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_keys(['dataset_name', 'dataset_path', 'is_cached', 'kernel', 'acq_func', 'surrogate_model', 'optimization_type', 'model_runs', 'save_models', 'save_step', 'save_name', 'save_path', 'early_stop', 'early_step', 'plot_model', 'plot_best_seen', 'plot_name', 'log_scale_plot', 'search_space', 'model_name', 'model_attributes', 'use_partitioning', 'metric_name', 'extra_metric_names', 'metric_attributes', 'extra_metric_attributes', 'current_call', 'number_of_call', 'random_state', 'x0', 'y0', 'n_random_starts', 'initial_point_generator', 'topk', 'time_eval', 'dict_model_runs', 'f_val', 'x_iters'])" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results = json.load(open('results/test_ETMco5_wz/result.json','r'))\n", + "results.keys()" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "88f05c2d-a055-4d36-840e-5fee027979c1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[119, 127, 99, 109, 108, 90, 99, 90, 82, 103, 102, 103, 104, 103, 101]]\n" + ] + } + ], + "source": [ + "print([results['x_iters'][parameter] for parameter in results['x_iters'].keys()])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f4b0c8d1-c91f-42f8-afd7-0664274daf1d", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "9392cba6-9bd4-44a4-92d2-c047ba4c9b16", + "metadata": {}, + "source": [ + "

final model

" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "dbb3e9ba-4767-4cf1-b626-847483c50650", + "metadata": {}, + "outputs": [], + "source": [ + "model = ETM(num_topics=99, num_epochs=150, t_hidden_size=700, rho_size=500,\n", + "embedding_size=800, activation='relu', dropout=0.1, lr=0.005,\n", + "optimizer='adam', batch_size=128, clip=0.0, wdecay=1.2e-06, bow_norm=1,\n", + "device='cpu', top_word=25, train_embeddings=True, embeddings_path=None,\n", + "embeddings_type='pickle', binary_embeddings=True,\n", + "headerless_embeddings=False, use_partitions=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "98b21d15-25bd-43ae-b359-1b045324b806", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "model: ETM(\n", + " (t_drop): Dropout(p=0.1, inplace=False)\n", + " (theta_act): ReLU()\n", + " (rho): Linear(in_features=500, out_features=118936, bias=False)\n", + " (alphas): Linear(in_features=500, out_features=99, bias=False)\n", + " (q_theta): Sequential(\n", + " (0): Linear(in_features=118936, out_features=700, bias=True)\n", + " (1): ReLU()\n", + " (2): Linear(in_features=700, out_features=700, bias=True)\n", + " (3): ReLU()\n", + " )\n", + " (mu_q_theta): Linear(in_features=700, out_features=99, bias=True)\n", + " (logsigma_q_theta): Linear(in_features=700, out_features=99, bias=True)\n", + ")\n", + "****************************************************************************************************\n", + "Epoch----->1 .. LR: 0.005 .. KL_theta: 3.03 .. Rec_loss: 88965.19 .. NELBO: 88968.22\n", + "****************************************************************************************************\n", + "****************************************************************************************************\n", + "VALIDATION .. LR: 0.005 .. KL_theta: nan .. Rec_loss: nan .. NELBO: nan\n", + "****************************************************************************************************\n" + ] + } + ], + "source": [ + "model_output = model.train_model(dataset)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "c3e1e849-4243-4a21-8a3b-bb4d0fd330fc", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "stadt bestimmte find haus nürnberg nachm bekannt statten bringen besatzung\n", + "königreich gebäude beyden halb wenige besteht bringen bewegungen jahren befindlich\n", + "kung rechr namen königreich bestimmte bevollmächtig endlich pest wisse erlaubniß\n", + "wisse reichs beyden nürnberg haus rechtssache endlich genau bekannt schwere\n", + "gewisse stande hader besteht beyden laden herausgabe hauptstadt verkaufe begab\n", + "leute herrn langte jahren grund preise schmeichelt mauer erfolg lauten\n", + "rechr gewe amortisirung london oktober endlich werner dero bracht fche\n", + "gewisser platze preise wisse leute königreich gläubiger obbe berlin besteht\n", + "gemeldet grund vorbehalt christian besteht zeichen kommen zurück königreich welch\n", + "eingetroffen rich ersten herausgabe list hausmeister daselbst endlich obern melde\n", + "dienste genugsam höchste lass befehlen grund gewisser hader viele schau\n", + "daselbst grund wenige rechr erfahrung königreich begebenheiten mach wasser marquis\n", + "grund korps platze rechr vorge soldat königreich wesentlichen befinden gemeldet\n", + "diel leute schwere preise mehr erhält stand königreich gewe spielen\n", + "bekomme rechtssache macht seite halt last gottes spanien unserm brin\n", + "allerhand einzusehen brücke erlaubniß dörfer schwere rechr rechtssache viele geschehen\n", + "theils wahr gewe bewegungen getheilt wien angemeldet lung gast einzuberufen\n", + "rechr pfandrecht halb klage hader sothane bracht nich befind betreffende\n", + "pfandrecht verbinden hauptstadt beyden rechr bekannt karten haust kanone theils\n", + "rich bekannt derley agram gewe asse rechr inder gewisser nich\n", + "rechr langte kung endlich sagten gemeldet gestorben begebenheiten öffentlichen geständig\n", + "grund platze königreich verkauf wohnhaft endlich kanonen bitten thal wehr\n", + "konkurs rechr nachdem hätte hader besteht viele befehlen wasser frist\n", + "rechr kaum vorzuladen besteht pest mauer mona bringen gewisser erhält\n", + "bringen verstorbenen begebenheiten befehlen geschehen begab kohl befinden macher beyden\n", + "befinden namen geschätzt laden mittel haftet kohl erhebung nachfrage schaden\n", + "konkurs melden platze schicksal hiemtt abends geltend obstgarten bringen selb\n", + "endlich beständig reichs lass schuld london gemeldet wundarzt icit haust\n", + "stroh besteht wien pfandrecht best wann schiff königreich beyden grund\n", + "wann pest oktober nächste befehle schlesien künstler uche wasser gewe\n", + "diel lung mehr legt tags bald bitten eingetroffen befehle rechr\n", + "rechr grund ober wasser sothane spanien beyden theils verbinden kirche\n", + "stand vieles pfer halb hätte gege herausgabe daraus eingetroffen vergnügen\n", + "schau bringen find welch rechr nähern bald ichen derley gewe\n", + "leute pest wünsche rich monats schlesien lauten wasser band papiere\n", + "rechr rich frucht nich bringen melden bestehen obbe nahm verkauf\n", + "zurück rechr ober weiches gemacht königreich kanonen person rechtssache abgehalten\n", + "leute beyden bekannt vorzula stande pest großbritannien begebenheiten hilf bringen\n", + "sammeln dienste verstrichen seite rothen beyden hätte gewisser bedienen nachdem\n", + "grund hausmeister stein rechr daraus bekannt thomas haut gemeldet begebenheiten\n", + "rechr vorbehalt rufen schwarzen preise ergangen erst bereits klasse vergnügen\n", + "ausgenommen königreich besteht leute reichs sothane chre zugleich hiemtt gern\n", + "städte herausgabe lass gewe stande bald schau hauptstadt stunde langte\n", + "hielt gewisser endlich rechr ersten nähern wich erleichtern neubau schneidermeister\n", + "königreich leitung leute herrn kenntnisse eingetroffen letzter hader gemeldet london\n", + "rechr zumelden allgemein liquidiren find anverwandten mehr verkaufe bekannt wohnhaft\n", + "vertheidigung willigen pfandrecht gern ober ersten gemeldet langte erlaubniß daselbst\n", + "beyden rechr hauptstadt wann ausgenommen bringen mannschaft viele seite theils\n", + "haus verkaufe gewisser sieg schuld bezahlet verstorbenen handels zahlreiche bändchen\n", + "gewe ufer rechr leute vorgehen steh nachm aufsatz mündlich reichs\n", + "grund platze befinden rechr welch rechtssache verlangte schuld scher hätte\n", + "bringen beyden begebenheiten haus rechr gewisser erhält gründen betreffende nachm\n", + "ober beyden gewisser befinden sothane halb besteht rechr gewe lung\n", + "bekannt rechr deutsche geschichte schmeichelt sollen vorhandene melden erhält schau\n", + "thig ausgenommen bracht hätte schwere kreis daselbst verlangen rechr ober\n", + "wisse derley befind schaden bereit gläubiger verstrichen leute allgemein gewisser\n", + "rechr oktober hauptstadt pfandrecht leute rden ichen beyden bemerkte macher\n", + "preise rich haus wien verkauf nachm bereit mauer käuflich platze\n", + "nich nähern schlesien nachfrage vergnügen verstärkung kauft karten find ichen\n", + "besteht kohl bestimmte lebe mehr lauten kanonen herrn zimmern thal\n", + "mehr davon schlesien deut legt berichte majors anverwandte händen platze\n", + "beyden nachm bekannt wahr nürnberg wann zweyter oktober liquidiren viele\n", + "beyden wurde gerathen mach geschehen rischen reichs zelt lung gemeldet\n", + "partheyen zweyter pfandrecht stande leute geständig wisse verkauf schaden viele\n", + "gewe eingetroffen besteht geschehen macht königreich fein gewisser mach haus\n", + "wisse rechtssache rothen straffe mach freyherr schaden brücke gewe haust\n", + "wasser grundsätzen handbuch gemeldet preise befindlich steuer endlich rechr lebe\n", + "grund königreich gemeldet rechr wohnhaft zeitungen wienerzeitung feinden gestandenen obrigkeit\n", + "gewe viele zeitungen zahlen liquidiren vertheidigung nachm statten genaueste mehr\n", + "beyden gewisser pier langte rechr bringen neubauer gestorben pest kriege\n", + "erlaubniß allgemein begebenheiten tags platze königreich wasser bereits graden gedeckt\n", + "bringen rechtssache erlaubniß verstrichen bestimmte geschehen konkurs rechr wage wisse\n", + "besteht geschehen rechr schicksal öffentlichen haust namen gemacht nothwendig london\n", + "verkaufe begebenheiten seite nähern pfandrecht leitung christian königreich regiments vorzuladen\n", + "nutzen namen band jakob befehle mittels verkauf verbinden lebe ober\n", + "rechr asse bekannt nähern gemeldet verkaufe nürnberg leute gewisser lebe\n", + "verkaufe beyden berech besteht allerhand bereits lehr kaum lauten nürnberg\n", + "pest melden eingetroffen bekannt berlin feinden verstrichen verkaufe wahrscheinlich stande\n", + "barb bringen haust gewisser liquidiren schau rothen anker geltend geschehen\n", + "ober kriegs gemeldet seite gewisser nachmittags rechr ungeachtet straffe regina\n", + "bekannt dienste erinnert enthalten leute bringen niederlage christian papiere stern\n", + "verbinden frage bald allgemein viele begebenheiten anfang nürnberg stande rechr\n", + "stande nung bekannt leicht bedient rechr verkaufe langte gewe obrigkeit\n", + "besteht befinden mühle gleiche preise gewisser allgemein rechr bereit wich\n", + "beyden mmer gewisser konnten nich melden verstrichen allgemein nachm endlich\n", + "königreich bereits grund könne verlangte rechr ferner nähern lassen leute\n", + "anfang gewe erobert ebenfalls rechr wisse viele haus befindlich gelegenen\n", + "hätte rechr viele find hader mithin nürnberg verstorbenen doktor verkaufe\n", + "rechtssache rechr herrn herausgabe königreich vollen daselbst nothwendig beyden geschehen\n", + "schritt endlich herrn melde landesregierung befehle dadurch lauten hauptstadt bringen\n", + "rechr königreich bringen bürgerschaft oktober verkaufe erhält jahren welch stroh\n", + "besteht langte befindlich verkauf erlaubniß festung gewisser zurück abge grund\n", + "bewegungen wage grund platze vollmacht tage merkantil dern freyen erleichtern\n", + "rechr begebenheiten beyden baaden find wasser lung viele anleitung schau\n", + "ausgenommen person rechr resia zurück gänzlich erlaubt eingetroffen gewe statten\n", + "schwere besteht viele hätte geschehen rechr dieß könne pest gottes\n", + "pest beyden liegendes gehet rechtssache gedachter leute rechr wien gemacht\n", + "grund rechr königreich ausgenommen beyden sothane verkauf kirche nimmt bekannt\n", + "oktober linz haus hauptstadt verkauf find gege eingetroffen stand bewegungen\n" + ] + } + ], + "source": [ + "for t in model_output['topics']:\n", + " print(\" \".join(t))" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "39749ac2-f03e-4007-96f4-962c3dbce2e4", + "metadata": {}, + "outputs": [], + "source": [ + "from octis.evaluation_metrics.coherence_metrics import Coherence" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "e16cfefb-6e35-4e8e-bffa-dc75ac4d0b78", + "metadata": {}, + "outputs": [], + "source": [ + "c_v = Coherence(texts=dataset.get_corpus(), topk=10, measure='c_v')" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "f96cd3ae-2e63-4415-95f2-09e7ecf5a491", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Coherence: 0.24269082272061301\n" + ] + } + ], + "source": [ + "c_v_score1 = c_v.score(model_output)\n", + "print(\"Coherence: \"+str(c_v_score1))" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "2664a16f-17f1-49c1-b884-1dfb57ad5d19", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Coherence: 0.2322927611424697\n" + ] + } + ], + "source": [ + "c_v_score2 = c_v.score(model_output)\n", + "print(\"Coherence: \"+str(c_v_score2))" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "e4a55846-65f4-4a23-9192-64dcdc5e2088", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Coherence: 0.25430712709212944\n" + ] + } + ], + "source": [ + "c_v_score3 = c_v.score(model_output)\n", + "print(\"Coherence: \"+str(c_v_score3))" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "0784a0ad-939a-4f81-89ba-2d60f261d339", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.2430969036517374" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(c_v_score1 + c_v_score2 + c_v_score3)/3" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "84e6785d-0f39-4f24-840b-4adaf390b359", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 54, + "id": "ea12613e-84a1-405b-9e36-3b8192bb9e2f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.00892981328927209\n", + "0.005752487635194249\n", + "0.013216860969465203\n", + "0.006727193655771849\n", + "0.013936653763250066\n", + "0.009115385087321232\n", + "0.012557738666291252\n", + "0.013758111866533848\n", + "0.00805919258169647\n", + "0.012569742992897433\n", + "0.006951230721679613\n", + "0.006120088422368138\n", + "0.005240785352245796\n", + "0.018566502926676918\n", + "0.006817132426694355\n", + "0.013163342719120574\n", + "0.007764790879213965\n", + "0.006431077827665201\n", + "0.00528377585935812\n", + "0.013046113878454259\n", + "0.005100105596317744\n", + "0.016067656288437683\n", + "0.012385502040523327\n", + "0.014854079636636595\n", + "0.014636284356045486\n", + "0.00641009885177839\n", + "0.014581746918840642\n", + "0.012688601130985317\n", + "0.01782811822175431\n", + "0.01709644317032735\n", + "0.0054470091205421674\n", + "0.006953811360111723\n", + "0.013934429242144242\n", + "0.009330621112046614\n", + "0.012584305598337684\n", + "0.007505920441375554\n", + "0.015205508842207264\n", + "0.005320571877913652\n", + "0.005451252684711359\n", + "0.005202965103118378\n", + "0.005938796580060631\n", + "0.011943943957095407\n", + "0.00514229963193619\n", + "0.007768431705554113\n", + "0.010843483438326812\n", + "0.005888860664856077\n", + "0.00767057689343882\n", + "0.005469522022562204\n", + "0.0066302273675308\n", + "0.013525858358622878\n", + "0.0068566577324780855\n", + "0.006910914033822761\n", + "0.012369832473927023\n", + "0.006880960416511569\n", + "0.007287157000973821\n", + "0.005224719083656563\n", + "0.005133935413180502\n", + "0.005220418668814872\n", + "0.0104119454901894\n", + "0.006978537085997455\n", + "0.005054730849849072\n", + "0.013813768080692807\n", + "0.011676042336410631\n", + "0.018316130308102977\n", + "0.013738562824330265\n", + "0.006765332405792515\n", + "0.014279150634009872\n", + "0.012483622073167307\n", + "0.012903620910322282\n", + "0.0074068728343018\n", + "0.006650707405917575\n", + "0.014741938189814794\n", + "0.004934789926425034\n", + "0.01761044112771201\n", + "0.006685835963537905\n", + "0.018982859545507314\n", + "0.014406598972990835\n", + "0.0071355210712888036\n", + "0.010536963477205097\n", + "0.0063256092306706434\n", + "0.012557359143771643\n", + "0.005407262549227092\n", + "0.011592576917306594\n", + "0.015215490551871116\n", + "0.006571163045545251\n", + "0.009033264530868343\n", + "0.005555467889358524\n", + "0.013273532700902023\n", + "0.0072792586770502885\n", + "0.0050834710802597225\n", + "0.00794934848769128\n", + "0.013096709809968807\n", + "0.01527988217182549\n", + "0.018238299983365038\n", + "0.009112778566834843\n", + "0.007862051470388024\n", + "0.01378072461718979\n", + "0.014571650513659226\n", + "0.017400475798826094\n" + ] + } + ], + "source": [ + "for list in model_output['topic-document-matrix']:\n", + " print(((sum(list))/652))" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "id": "b75fdc65-9760-4f41-81f6-1d1b098b3773", + "metadata": {}, + "outputs": [], + "source": [ + "with open('output_wz1.csv', 'w') as csvfile:\n", + " csvwriter = csv.writer(csvfile)\n", + " for t in model_output['topics']:\n", + " csvwriter.writerow(t)" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "id": "a492a18f-6a3b-4214-9258-1454aadb2a21", + "metadata": {}, + "outputs": [], + "source": [ + "with open('output_wz1_sc.csv', 'w') as csvfile:\n", + " csvwriter = csv.writer(csvfile)\n", + " for list in model_output['topic-document-matrix']:\n", + " csvwriter.writerow(str((sum(list))/652))" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "id": "5b6e77f3-3cdd-4281-bd1a-7b2a83baa66c", + "metadata": {}, + "outputs": [], + "source": [ + "a = pd.read_csv(\"output_wz1.csv\", sep='\\t', encoding='cp1252', header=None)\n", + "b = pd.read_csv(\"output_wz1_sc.csv\", sep='\\t', header =None, encoding='cp1252')" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "id": "9e00fe47-5acd-4384-afc2-51249f890082", + "metadata": {}, + "outputs": [], + "source": [ + "topic_df = a.merge(b, left_index=True, right_index=True, how='left')" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "id": "a6e984bf-4809-4e0e-96c2-88e017c598db", + "metadata": {}, + "outputs": [], + "source": [ + "topic_df = topic_df.rename(columns={\"0_x\": \"topic\", \"0_y\": \"percentage\"})" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "id": "76db06b0-e447-4689-b59e-1e98179ce83b", + "metadata": {}, + "outputs": [], + "source": [ + "topic_df['topic'] = topic_df['topic'].str.replace(\",\", \" \")" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "id": "5778dc4c-5a89-4c7d-8de7-ac2145f78110", + "metadata": {}, + "outputs": [], + "source": [ + "topic_df['percentage'] = topic_df['percentage'].str.replace(\",\", \"\")" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "id": "24fd92b6-3cfe-44dc-9533-fa6d54f3e58a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
topicpercentage
0erhebung widrigen beschreibung achen gedenket ...0.00892981328927209
1mann schmeichelt stehen anna einzuschreiten sc...0.005752487635194249
2schwei beste ankunft begehren leich fich cach ...0.013216860969465203
3antheil weite schmeichelt jahr begeben möchte ...0.006727193655771849
4meere begeben goldenen kunst anna tagl beste g...0.013936653763250066
.........
94zeitung wenig jahr diensten traf pfandrechts o...0.009112778566834843
95oberlieutenant hell eilte stellte könnten verl...0.007862051470388024
96barometerstand klara goldenen ches vergleich w...0.01378072461718979
97diensten öder liebhaber erhebung angeordnet ge...0.014571650513659226
98folge melde weiteren vorstädte einrichtung wir...0.017400475798826094
\n", + "

99 rows × 2 columns

\n", + "
" + ], + "text/plain": [ + " topic percentage\n", + "0 erhebung widrigen beschreibung achen gedenket ... 0.00892981328927209\n", + "1 mann schmeichelt stehen anna einzuschreiten sc... 0.005752487635194249\n", + "2 schwei beste ankunft begehren leich fich cach ... 0.013216860969465203\n", + "3 antheil weite schmeichelt jahr begeben möchte ... 0.006727193655771849\n", + "4 meere begeben goldenen kunst anna tagl beste g... 0.013936653763250066\n", + ".. ... ...\n", + "94 zeitung wenig jahr diensten traf pfandrechts o... 0.009112778566834843\n", + "95 oberlieutenant hell eilte stellte könnten verl... 0.007862051470388024\n", + "96 barometerstand klara goldenen ches vergleich w... 0.01378072461718979\n", + "97 diensten öder liebhaber erhebung angeordnet ge... 0.014571650513659226\n", + "98 folge melde weiteren vorstädte einrichtung wir... 0.017400475798826094\n", + "\n", + "[99 rows x 2 columns]" + ] + }, + "execution_count": 62, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "topic_df" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "id": "c0edbacb-e6cc-4069-b9dc-8e1d164b47d5", + "metadata": {}, + "outputs": [], + "source": [ + "topic_df_wz = topic_df.assign(newspaper=\"wz\")" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "id": "f77be8a8-dee3-477e-b304-b5b77b6f0f15", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
topicpercentagenewspaper
0erhebung widrigen beschreibung achen gedenket ...0.00892981328927209wz
1mann schmeichelt stehen anna einzuschreiten sc...0.005752487635194249wz
2schwei beste ankunft begehren leich fich cach ...0.013216860969465203wz
3antheil weite schmeichelt jahr begeben möchte ...0.006727193655771849wz
4meere begeben goldenen kunst anna tagl beste g...0.013936653763250066wz
............
94zeitung wenig jahr diensten traf pfandrechts o...0.009112778566834843wz
95oberlieutenant hell eilte stellte könnten verl...0.007862051470388024wz
96barometerstand klara goldenen ches vergleich w...0.01378072461718979wz
97diensten öder liebhaber erhebung angeordnet ge...0.014571650513659226wz
98folge melde weiteren vorstädte einrichtung wir...0.017400475798826094wz
\n", + "

99 rows × 3 columns

\n", + "
" + ], + "text/plain": [ + " topic percentage \\\n", + "0 erhebung widrigen beschreibung achen gedenket ... 0.00892981328927209 \n", + "1 mann schmeichelt stehen anna einzuschreiten sc... 0.005752487635194249 \n", + "2 schwei beste ankunft begehren leich fich cach ... 0.013216860969465203 \n", + "3 antheil weite schmeichelt jahr begeben möchte ... 0.006727193655771849 \n", + "4 meere begeben goldenen kunst anna tagl beste g... 0.013936653763250066 \n", + ".. ... ... \n", + "94 zeitung wenig jahr diensten traf pfandrechts o... 0.009112778566834843 \n", + "95 oberlieutenant hell eilte stellte könnten verl... 0.007862051470388024 \n", + "96 barometerstand klara goldenen ches vergleich w... 0.01378072461718979 \n", + "97 diensten öder liebhaber erhebung angeordnet ge... 0.014571650513659226 \n", + "98 folge melde weiteren vorstädte einrichtung wir... 0.017400475798826094 \n", + "\n", + " newspaper \n", + "0 wz \n", + "1 wz \n", + "2 wz \n", + "3 wz \n", + "4 wz \n", + ".. ... \n", + "94 wz \n", + "95 wz \n", + "96 wz \n", + "97 wz \n", + "98 wz \n", + "\n", + "[99 rows x 3 columns]" + ] + }, + "execution_count": 65, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "topic_df_wz" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "id": "0e1a2eef-f395-4720-a29d-abb6ade56960", + "metadata": {}, + "outputs": [], + "source": [ + "topic_df_wz.to_csv('topics1_wz.csv', sep=',', index=True, header=True, encoding='cp1252')" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "id": "677a6801-1948-48fd-9f73-3613e96f4a4d", + "metadata": {}, + "outputs": [], + "source": [ + "topic_df_wz.to_excel(\"topics_wz1.xlsx\", index=True, header=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a4890687-7641-4fe2-8574-09b126228b61", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "id": "ff87084c-3562-430f-acaa-8d7a6d2c4e92", + "metadata": {}, + "source": [ + "

create excel of both WZ and SZ for manual interpretation

" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "id": "2d86efcb-706a-4075-a4f8-fda8acf4300b", + "metadata": {}, + "outputs": [], + "source": [ + "a = pd.read_csv(\"topics_sz.csv\", sep=',', encoding='cp1252')\n", + "b = pd.read_csv(\"topics1_wz.csv\", sep=',', encoding='cp1252')" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "id": "822f15e2-b9e0-47b2-8d18-ad6dd6cfa238", + "metadata": {}, + "outputs": [], + "source": [ + "df_topics = b.append(a)" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "id": "8e5746af-c973-49ad-84eb-64de8dd85506", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0topicpercentagenewspaper
00erhebung widrigen beschreibung achen gedenket ...0.008930wz
11mann schmeichelt stehen anna einzuschreiten sc...0.005752wz
22schwei beste ankunft begehren leich fich cach ...0.013217wz
33antheil weite schmeichelt jahr begeben möchte ...0.006727wz
44meere begeben goldenen kunst anna tagl beste g...0.013937wz
...............
6262pariser tafeln hungarn wahr jesu unaufhörlich ...0.015926sz
6363geschlachtet ungerechter schwer einmahl franzö...0.014824sz
6464werke redliche wenige größ seide begraben heil...0.013928sz
6565blattes natürlichen summe vergrößerten besoldu...0.015981sz
6666körpern stifte erlauben ansehen brin neun munt...0.014102sz
\n", + "

166 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 topic percentage \\\n", + "0 0 erhebung widrigen beschreibung achen gedenket ... 0.008930 \n", + "1 1 mann schmeichelt stehen anna einzuschreiten sc... 0.005752 \n", + "2 2 schwei beste ankunft begehren leich fich cach ... 0.013217 \n", + "3 3 antheil weite schmeichelt jahr begeben möchte ... 0.006727 \n", + "4 4 meere begeben goldenen kunst anna tagl beste g... 0.013937 \n", + ".. ... ... ... \n", + "62 62 pariser tafeln hungarn wahr jesu unaufhörlich ... 0.015926 \n", + "63 63 geschlachtet ungerechter schwer einmahl franzö... 0.014824 \n", + "64 64 werke redliche wenige größ seide begraben heil... 0.013928 \n", + "65 65 blattes natürlichen summe vergrößerten besoldu... 0.015981 \n", + "66 66 körpern stifte erlauben ansehen brin neun munt... 0.014102 \n", + "\n", + " newspaper \n", + "0 wz \n", + "1 wz \n", + "2 wz \n", + "3 wz \n", + "4 wz \n", + ".. ... \n", + "62 sz \n", + "63 sz \n", + "64 sz \n", + "65 sz \n", + "66 sz \n", + "\n", + "[166 rows x 4 columns]" + ] + }, + "execution_count": 78, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_topics" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "id": "9d6112cb-2d76-4682-84b2-d18aa00fbe55", + "metadata": {}, + "outputs": [], + "source": [ + "df_topics = df_topics.iloc[: , 1:]" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "id": "4e7aeb4a-e3b1-4137-ae3d-62e9099099c4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
topicpercentagenewspaper
0erhebung widrigen beschreibung achen gedenket ...0.008930wz
1mann schmeichelt stehen anna einzuschreiten sc...0.005752wz
2schwei beste ankunft begehren leich fich cach ...0.013217wz
3antheil weite schmeichelt jahr begeben möchte ...0.006727wz
4meere begeben goldenen kunst anna tagl beste g...0.013937wz
............
62pariser tafeln hungarn wahr jesu unaufhörlich ...0.015926sz
63geschlachtet ungerechter schwer einmahl franzö...0.014824sz
64werke redliche wenige größ seide begraben heil...0.013928sz
65blattes natürlichen summe vergrößerten besoldu...0.015981sz
66körpern stifte erlauben ansehen brin neun munt...0.014102sz
\n", + "

166 rows × 3 columns

\n", + "
" + ], + "text/plain": [ + " topic percentage newspaper\n", + "0 erhebung widrigen beschreibung achen gedenket ... 0.008930 wz\n", + "1 mann schmeichelt stehen anna einzuschreiten sc... 0.005752 wz\n", + "2 schwei beste ankunft begehren leich fich cach ... 0.013217 wz\n", + "3 antheil weite schmeichelt jahr begeben möchte ... 0.006727 wz\n", + "4 meere begeben goldenen kunst anna tagl beste g... 0.013937 wz\n", + ".. ... ... ...\n", + "62 pariser tafeln hungarn wahr jesu unaufhörlich ... 0.015926 sz\n", + "63 geschlachtet ungerechter schwer einmahl franzö... 0.014824 sz\n", + "64 werke redliche wenige größ seide begraben heil... 0.013928 sz\n", + "65 blattes natürlichen summe vergrößerten besoldu... 0.015981 sz\n", + "66 körpern stifte erlauben ansehen brin neun munt... 0.014102 sz\n", + "\n", + "[166 rows x 3 columns]" + ] + }, + "execution_count": 80, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_topics" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "id": "78d99632-b788-4a3e-b030-dc1ce4d3f093", + "metadata": {}, + "outputs": [], + "source": [ + "df_topics.index.name=\"num_topic\"" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "id": "39fa34a6-a56c-47db-971e-2eb3334bf2ed", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
topicpercentagenewspaper
num_topic
0erhebung widrigen beschreibung achen gedenket ...0.008930wz
1mann schmeichelt stehen anna einzuschreiten sc...0.005752wz
2schwei beste ankunft begehren leich fich cach ...0.013217wz
3antheil weite schmeichelt jahr begeben möchte ...0.006727wz
4meere begeben goldenen kunst anna tagl beste g...0.013937wz
............
62pariser tafeln hungarn wahr jesu unaufhörlich ...0.015926sz
63geschlachtet ungerechter schwer einmahl franzö...0.014824sz
64werke redliche wenige größ seide begraben heil...0.013928sz
65blattes natürlichen summe vergrößerten besoldu...0.015981sz
66körpern stifte erlauben ansehen brin neun munt...0.014102sz
\n", + "

166 rows × 3 columns

\n", + "
" + ], + "text/plain": [ + " topic percentage \\\n", + "num_topic \n", + "0 erhebung widrigen beschreibung achen gedenket ... 0.008930 \n", + "1 mann schmeichelt stehen anna einzuschreiten sc... 0.005752 \n", + "2 schwei beste ankunft begehren leich fich cach ... 0.013217 \n", + "3 antheil weite schmeichelt jahr begeben möchte ... 0.006727 \n", + "4 meere begeben goldenen kunst anna tagl beste g... 0.013937 \n", + "... ... ... \n", + "62 pariser tafeln hungarn wahr jesu unaufhörlich ... 0.015926 \n", + "63 geschlachtet ungerechter schwer einmahl franzö... 0.014824 \n", + "64 werke redliche wenige größ seide begraben heil... 0.013928 \n", + "65 blattes natürlichen summe vergrößerten besoldu... 0.015981 \n", + "66 körpern stifte erlauben ansehen brin neun munt... 0.014102 \n", + "\n", + " newspaper \n", + "num_topic \n", + "0 wz \n", + "1 wz \n", + "2 wz \n", + "3 wz \n", + "4 wz \n", + "... ... \n", + "62 sz \n", + "63 sz \n", + "64 sz \n", + "65 sz \n", + "66 sz \n", + "\n", + "[166 rows x 3 columns]" + ] + }, + "execution_count": 82, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_topics" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "id": "ff003ef7-403e-49e1-a299-d82e1c76576d", + "metadata": {}, + "outputs": [], + "source": [ + "df_topics.to_excel(\"topics_gesamt.xlsx\", index=True, header=True)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}