diff --git a/notebooks/test.ipynb b/notebooks/test.ipynb deleted file mode 100644 index 3fab3cdd..00000000 --- a/notebooks/test.ipynb +++ /dev/null @@ -1,1115 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 76, - "metadata": {}, - "outputs": [], - "source": [ - "import mlflow" - ] - }, - { - "cell_type": "code", - "execution_count": 77, - "metadata": {}, - "outputs": [], - "source": [ - "# set the path to the mlruns directory one level above the current directory\n", - "mlflow.set_tracking_uri(\"file:../mlruns\")" - ] - }, - { - "cell_type": "code", - "execution_count": 78, - "metadata": {}, - "outputs": [], - "source": [ - "all_runs = mlflow.search_runs(search_all_experiments=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 79, - "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", - "
run_idexperiment_idstatusartifact_uristart_timeend_timemetrics.accuracymetrics.recallmetrics.supportmetrics.f1metrics.precisionmetrics.macro_f1_scoreparams.lrparams.epochsparams.model_nametags.mlflow.source.git.committags.mlflow.source.nametags.mlflow.source.typetags.mlflow.usertags.mlflow.runName
08d052d57c8e84adf9253e6f45c7df727507776702722051758FINISHEDfile:///home/pops/myProjects/ts_classification...2024-03-16 14:07:30.655000+00:002024-03-16 14:07:30.666000+00:000.0400000.038462850.00.0030770.0015380.0029590.001500LSTM07bbea209f8b64f16d80d0b1ec95731e83acab93main.pyLOCALpopsHandwriting
1bc69c73360a748f5b3a5260479d6f61f507776702722051758FINISHEDfile:///home/pops/myProjects/ts_classification...2024-03-16 14:07:26.255000+00:002024-03-16 14:07:26.267000+00:000.0400000.038462850.00.0030770.0015380.0029590.001500LSTM07bbea209f8b64f16d80d0b1ec95731e83acab93main.pyLOCALpopsHandwriting
23764243969964025ba8e5b7daa6f9ded507776702722051758FINISHEDfile:///home/pops/myProjects/ts_classification...2024-03-16 14:07:22.044000+00:002024-03-16 14:07:22.056000+00:000.0400000.038462850.00.0030770.0015380.0029590.001500LSTM07bbea209f8b64f16d80d0b1ec95731e83acab93main.pyLOCALpopsHandwriting
32f542b211a6e4616ad18d2c4b8ab614c507776702722051758FINISHEDfile:///home/pops/myProjects/ts_classification...2024-03-16 14:07:17.822000+00:002024-03-16 14:07:17.834000+00:000.0529410.040961850.00.0081160.0046850.0067980.001500LSTM07bbea209f8b64f16d80d0b1ec95731e83acab93main.pyLOCALpopsHandwriting
46259b6a31bd74108bea367fe924cd0b9507776702722051758FINISHEDfile:///home/pops/myProjects/ts_classification...2024-03-16 14:07:13.620000+00:002024-03-16 14:07:13.632000+00:000.0423530.041052850.00.0067680.0055420.0068470.001500LSTM07bbea209f8b64f16d80d0b1ec95731e83acab93main.pyLOCALpopsHandwriting
\n", - "
" - ], - "text/plain": [ - " run_id experiment_id status \\\n", - "0 8d052d57c8e84adf9253e6f45c7df727 507776702722051758 FINISHED \n", - "1 bc69c73360a748f5b3a5260479d6f61f 507776702722051758 FINISHED \n", - "2 3764243969964025ba8e5b7daa6f9ded 507776702722051758 FINISHED \n", - "3 2f542b211a6e4616ad18d2c4b8ab614c 507776702722051758 FINISHED \n", - "4 6259b6a31bd74108bea367fe924cd0b9 507776702722051758 FINISHED \n", - "\n", - " artifact_uri \\\n", - "0 file:///home/pops/myProjects/ts_classification... \n", - "1 file:///home/pops/myProjects/ts_classification... \n", - "2 file:///home/pops/myProjects/ts_classification... \n", - "3 file:///home/pops/myProjects/ts_classification... \n", - "4 file:///home/pops/myProjects/ts_classification... \n", - "\n", - " start_time end_time \\\n", - "0 2024-03-16 14:07:30.655000+00:00 2024-03-16 14:07:30.666000+00:00 \n", - "1 2024-03-16 14:07:26.255000+00:00 2024-03-16 14:07:26.267000+00:00 \n", - "2 2024-03-16 14:07:22.044000+00:00 2024-03-16 14:07:22.056000+00:00 \n", - "3 2024-03-16 14:07:17.822000+00:00 2024-03-16 14:07:17.834000+00:00 \n", - "4 2024-03-16 14:07:13.620000+00:00 2024-03-16 14:07:13.632000+00:00 \n", - "\n", - " metrics.accuracy metrics.recall metrics.support metrics.f1 \\\n", - "0 0.040000 0.038462 850.0 0.003077 \n", - "1 0.040000 0.038462 850.0 0.003077 \n", - "2 0.040000 0.038462 850.0 0.003077 \n", - "3 0.052941 0.040961 850.0 0.008116 \n", - "4 0.042353 0.041052 850.0 0.006768 \n", - "\n", - " metrics.precision metrics.macro_f1_score params.lr params.epochs \\\n", - "0 0.001538 0.002959 0.001 500 \n", - "1 0.001538 0.002959 0.001 500 \n", - "2 0.001538 0.002959 0.001 500 \n", - "3 0.004685 0.006798 0.001 500 \n", - "4 0.005542 0.006847 0.001 500 \n", - "\n", - " params.model_name tags.mlflow.source.git.commit \\\n", - "0 LSTM 07bbea209f8b64f16d80d0b1ec95731e83acab93 \n", - "1 LSTM 07bbea209f8b64f16d80d0b1ec95731e83acab93 \n", - "2 LSTM 07bbea209f8b64f16d80d0b1ec95731e83acab93 \n", - "3 LSTM 07bbea209f8b64f16d80d0b1ec95731e83acab93 \n", - "4 LSTM 07bbea209f8b64f16d80d0b1ec95731e83acab93 \n", - "\n", - " tags.mlflow.source.name tags.mlflow.source.type tags.mlflow.user \\\n", - "0 main.py LOCAL pops \n", - "1 main.py LOCAL pops \n", - "2 main.py LOCAL pops \n", - "3 main.py LOCAL pops \n", - "4 main.py LOCAL pops \n", - "\n", - " tags.mlflow.runName \n", - "0 Handwriting \n", - "1 Handwriting \n", - "2 Handwriting \n", - "3 Handwriting \n", - "4 Handwriting " - ] - }, - "execution_count": 79, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "all_runs.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 80, - "metadata": {}, - "outputs": [], - "source": [ - "# # group by runName and modelName\n", - "# grouped = all_runs['tags.mlflow.runName', 'params.model_name']" - ] - }, - { - "cell_type": "code", - "execution_count": 81, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array(['Handwriting', 'ECG200', 'ItalyPowerDemand',\n", - " 'HandMovementDirection'], dtype=object)" - ] - }, - "execution_count": 81, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "all_runs['tags.mlflow.runName'].unique()" - ] - }, - { - "cell_type": "code", - "execution_count": 82, - "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", - "
run_idexperiment_idstatusartifact_uristart_timeend_timemetrics.accuracymetrics.recallmetrics.supportmetrics.f1metrics.precisionmetrics.macro_f1_scoreparams.lrparams.epochsparams.model_nametags.mlflow.source.git.committags.mlflow.source.nametags.mlflow.source.typetags.mlflow.usertags.mlflow.runName
tags.mlflow.runName
ECG2000e15939a6611425893098c7270496c0c630520445005025449FINISHEDfile:///home/pops/myProjects/ts_classification...2023-07-15 09:20:32.003000+00:002023-07-15 09:20:32.015000+00:000.9200000.901042100.00.9188590.9246320.9108730.001500LSTM_FCN13cf9d677184927fcb4663b315ffb63cbab29ee3main.pyLOCALpopsECG200
HandMovementDirection24ffa869557c4455b1aa6c10a16c6deb630520445005025449FINISHEDfile:///home/pops/myProjects/ts_classification...2023-07-15 06:30:37.425000+00:002023-07-15 06:30:37.436000+00:000.4864860.45952474.00.4598720.4445350.4225850.0015LSTM_FCN849a18b4b1e721bdefe8b94200ebc01052a1b2femain.pyLOCALpopsHandMovementDirection
Handwritingeffd1944d2f6451e8535f2db4dee468a813185422761216114FINISHEDfile:///home/pops/myProjects/ts_classification...2024-03-16 13:49:29.846000+00:002024-03-16 13:49:29.862000+00:000.1011760.096150850.00.0557200.0952890.0527940.001500GRU_FCN04493d4bfa7a8148495d5adec7088029dcde13a6main.pyLOCALpopsHandwriting
ItalyPowerDemand826eade71c5e473698c1dcd4eac4c4f7630520445005025449FINISHEDfile:///home/pops/myProjects/ts_classification...2023-07-15 08:40:53.472000+00:002023-07-15 08:40:53.489000+00:000.9105930.9107791029.00.9102400.9173340.9102560.0015LSTM_FCNccbee5df8ad91eaebb24e14857c89b0759064337main.pyLOCALpopsItalyPowerDemand
\n", - "
" - ], - "text/plain": [ - " run_id experiment_id \\\n", - "tags.mlflow.runName \n", - "ECG200 0e15939a6611425893098c7270496c0c 630520445005025449 \n", - "HandMovementDirection 24ffa869557c4455b1aa6c10a16c6deb 630520445005025449 \n", - "Handwriting effd1944d2f6451e8535f2db4dee468a 813185422761216114 \n", - "ItalyPowerDemand 826eade71c5e473698c1dcd4eac4c4f7 630520445005025449 \n", - "\n", - " status \\\n", - "tags.mlflow.runName \n", - "ECG200 FINISHED \n", - "HandMovementDirection FINISHED \n", - "Handwriting FINISHED \n", - "ItalyPowerDemand FINISHED \n", - "\n", - " artifact_uri \\\n", - "tags.mlflow.runName \n", - "ECG200 file:///home/pops/myProjects/ts_classification... \n", - "HandMovementDirection file:///home/pops/myProjects/ts_classification... \n", - "Handwriting file:///home/pops/myProjects/ts_classification... \n", - "ItalyPowerDemand file:///home/pops/myProjects/ts_classification... \n", - "\n", - " start_time \\\n", - "tags.mlflow.runName \n", - "ECG200 2023-07-15 09:20:32.003000+00:00 \n", - "HandMovementDirection 2023-07-15 06:30:37.425000+00:00 \n", - "Handwriting 2024-03-16 13:49:29.846000+00:00 \n", - "ItalyPowerDemand 2023-07-15 08:40:53.472000+00:00 \n", - "\n", - " end_time metrics.accuracy \\\n", - "tags.mlflow.runName \n", - "ECG200 2023-07-15 09:20:32.015000+00:00 0.920000 \n", - "HandMovementDirection 2023-07-15 06:30:37.436000+00:00 0.486486 \n", - "Handwriting 2024-03-16 13:49:29.862000+00:00 0.101176 \n", - "ItalyPowerDemand 2023-07-15 08:40:53.489000+00:00 0.910593 \n", - "\n", - " metrics.recall metrics.support metrics.f1 \\\n", - "tags.mlflow.runName \n", - "ECG200 0.901042 100.0 0.918859 \n", - "HandMovementDirection 0.459524 74.0 0.459872 \n", - "Handwriting 0.096150 850.0 0.055720 \n", - "ItalyPowerDemand 0.910779 1029.0 0.910240 \n", - "\n", - " metrics.precision metrics.macro_f1_score params.lr \\\n", - "tags.mlflow.runName \n", - "ECG200 0.924632 0.910873 0.001 \n", - "HandMovementDirection 0.444535 0.422585 0.001 \n", - "Handwriting 0.095289 0.052794 0.001 \n", - "ItalyPowerDemand 0.917334 0.910256 0.001 \n", - "\n", - " params.epochs params.model_name \\\n", - "tags.mlflow.runName \n", - "ECG200 500 LSTM_FCN \n", - "HandMovementDirection 5 LSTM_FCN \n", - "Handwriting 500 GRU_FCN \n", - "ItalyPowerDemand 5 LSTM_FCN \n", - "\n", - " tags.mlflow.source.git.commit \\\n", - "tags.mlflow.runName \n", - "ECG200 13cf9d677184927fcb4663b315ffb63cbab29ee3 \n", - "HandMovementDirection 849a18b4b1e721bdefe8b94200ebc01052a1b2fe \n", - "Handwriting 04493d4bfa7a8148495d5adec7088029dcde13a6 \n", - "ItalyPowerDemand ccbee5df8ad91eaebb24e14857c89b0759064337 \n", - "\n", - " tags.mlflow.source.name tags.mlflow.source.type \\\n", - "tags.mlflow.runName \n", - "ECG200 main.py LOCAL \n", - "HandMovementDirection main.py LOCAL \n", - "Handwriting main.py LOCAL \n", - "ItalyPowerDemand main.py LOCAL \n", - "\n", - " tags.mlflow.user tags.mlflow.runName \n", - "tags.mlflow.runName \n", - "ECG200 pops ECG200 \n", - "HandMovementDirection pops HandMovementDirection \n", - "Handwriting pops Handwriting \n", - "ItalyPowerDemand pops ItalyPowerDemand " - ] - }, - "execution_count": 82, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# for all individual runs, find the best 'params.model_name' and 'metrics.accuracy'\n", - "best_runs = all_runs.groupby('tags.mlflow.runName').apply(lambda x: x.loc[x['metrics.accuracy'].idxmax()])\n", - "best_runs" - ] - }, - { - "cell_type": "code", - "execution_count": 83, - "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", - "
tags.mlflow.runNameparams.model_namemetrics.accuracy
params.model_name
GRU_FCNECG200GRU_FCN0.910000
LSTMItalyPowerDemandLSTM0.559767
LSTM_FCNECG200LSTM_FCN0.920000
\n", - "
" - ], - "text/plain": [ - " tags.mlflow.runName params.model_name metrics.accuracy\n", - "params.model_name \n", - "GRU_FCN ECG200 GRU_FCN 0.910000\n", - "LSTM ItalyPowerDemand LSTM 0.559767\n", - "LSTM_FCN ECG200 LSTM_FCN 0.920000" - ] - }, - "execution_count": 83, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# for all individual runs, find the best 'metrics.accuracy' for each 'params.model_name'\n", - "# select only the relevant columns\n", - "best_runs = all_runs.groupby('params.model_name').apply(lambda x: x.loc[x['metrics.accuracy'].idxmax()][['tags.mlflow.runName', 'params.model_name', 'metrics.accuracy']])\n", - "best_runs" - ] - }, - { - "cell_type": "code", - "execution_count": 84, - "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", - "
tags.mlflow.runNameparams.model_namemetrics.accuracy
0HandwritingLSTM0.040000
1HandwritingLSTM0.040000
2HandwritingLSTM0.040000
3HandwritingLSTM0.052941
4HandwritingLSTM0.042353
\n", - "
" - ], - "text/plain": [ - " tags.mlflow.runName params.model_name metrics.accuracy\n", - "0 Handwriting LSTM 0.040000\n", - "1 Handwriting LSTM 0.040000\n", - "2 Handwriting LSTM 0.040000\n", - "3 Handwriting LSTM 0.052941\n", - "4 Handwriting LSTM 0.042353" - ] - }, - "execution_count": 84, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "columns = ['tags.mlflow.runName', 'params.model_name', 'metrics.accuracy']\n", - "all_runs = all_runs[columns]\n", - "all_runs.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 85, - "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", - "
tags.mlflow.runNameparams.model_namemetrics.accuracy
0ECG200GRU_FCN0.910000
1ECG200LSTM_FCN0.920000
2HandMovementDirectionLSTM_FCN0.486486
3HandwritingGRU_FCN0.101176
4HandwritingLSTM0.054118
\n", - "
" - ], - "text/plain": [ - " tags.mlflow.runName params.model_name metrics.accuracy\n", - "0 ECG200 GRU_FCN 0.910000\n", - "1 ECG200 LSTM_FCN 0.920000\n", - "2 HandMovementDirection LSTM_FCN 0.486486\n", - "3 Handwriting GRU_FCN 0.101176\n", - "4 Handwriting LSTM 0.054118" - ] - }, - "execution_count": 85, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# select only the best run for each model and dataset\n", - "best_runs = all_runs.groupby(['tags.mlflow.runName', 'params.model_name']).agg({'metrics.accuracy': 'max'}).reset_index()\n", - "best_runs.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 86, - "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", - "
DatasetGRU_FCNLSTMLSTM_FCN
0ECG2000.910000NaN0.920000
1HandMovementDirectionNaNNaN0.486486
2Handwriting0.1011760.0541180.075294
3ItalyPowerDemandNaN0.5597670.910593
\n", - "
" - ], - "text/plain": [ - " Dataset GRU_FCN LSTM LSTM_FCN\n", - "0 ECG200 0.910000 NaN 0.920000\n", - "1 HandMovementDirection NaN NaN 0.486486\n", - "2 Handwriting 0.101176 0.054118 0.075294\n", - "3 ItalyPowerDemand NaN 0.559767 0.910593" - ] - }, - "execution_count": 86, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# pivot the table to get the desired format\n", - "best_runs.pivot(index='tags.mlflow.runName', columns='params.model_name', values='metrics.accuracy')\n", - "\n", - "# Remove multi-index and rename the index column to 'Dataset'\n", - "best_runs = best_runs.pivot(index='tags.mlflow.runName', columns='params.model_name', values='metrics.accuracy').reset_index()\n", - "best_runs.columns.name = None\n", - "best_runs = best_runs.rename(columns={'tags.mlflow.runName': 'Dataset'})\n", - "best_runs" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "metadata": {}, - "outputs": [], - "source": [ - "# combine everything into a single cell\n", - "def get_best_runs():\n", - " import mlflow\n", - " import pandas as pd\n", - " \n", - " mlflow.set_tracking_uri(\"file:../mlruns\")\n", - " all_runs = mlflow.search_runs(search_all_experiments=True)\n", - " columns = ['tags.mlflow.runName', 'params.model_name', 'metrics.accuracy']\n", - " all_runs = all_runs[columns]\n", - " best_runs = all_runs.groupby(['tags.mlflow.runName', 'params.model_name']).agg({'metrics.accuracy': 'max'}).reset_index()\n", - " best_runs = best_runs.pivot(index='tags.mlflow.runName', columns='params.model_name', values='metrics.accuracy').reset_index()\n", - " best_runs.columns.name = None\n", - " best_runs = best_runs.rename(columns={'tags.mlflow.runName': 'Dataset'})\n", - " # export to the \"../results/best_runs.csv\" file\n", - " best_runs.to_csv('../results/best_runs.csv', index=False)\n", - " # convert the dataframe to an HTML table\n", - " best_runs_html = best_runs.to_html(index=False)\n", - " return best_runs_html\n", - " return best_runs" - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "metadata": {}, - "outputs": [], - "source": [ - "html = get_best_runs()" - ] - }, - { - "cell_type": "code", - "execution_count": 43, - "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", - "
DatasetGRU_FCNLSTMLSTM_FCN
ECG2000.910000NaN0.920000
HandMovementDirectionNaNNaN0.486486
Handwriting0.082353NaN0.075294
ItalyPowerDemandNaN0.5597670.910593
" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 43, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# view the HTML table\n", - "from IPython.display import HTML\n", - "HTML(html)" - ] - }, - { - "cell_type": "code", - "execution_count": 44, - "metadata": {}, - "outputs": [], - "source": [ - "# export the html to a file\n", - "with open('../results/best_runs.html', 'w') as f:\n", - " f.write(html)" - ] - }, - { - "cell_type": "code", - "execution_count": 45, - "metadata": {}, - "outputs": [], - "source": [ - "# save as markdown file\n", - "with open('../results/best_runs.md', 'w') as f:\n", - " f.write(best_runs.to_markdown(index=False))\n", - " " - ] - }, - { - "cell_type": "code", - "execution_count": 52, - "metadata": {}, - "outputs": [], - "source": [ - "# expport as an image\n", - "import matplotlib.pyplot as plt\n", - "import seaborn as sns\n", - "import pandas as pd" - ] - }, - { - "cell_type": "code", - "execution_count": 53, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(0.0, 1.0, 0.0, 1.0)" - ] - }, - "execution_count": 53, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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SllZWZo5c6aaNm2qnJwcSSWrWG7dulWtW7dWdna29fbGjBmjKlWqqLCwULNnz9bIkSP13nvv6ZNPPtH58+fVoEED7dq1S3l5eerbt6/OnTunzz//XA888IDq16+va9euKTk5WVu2bFF8fPxN28bHx8vLy0v29vb6/e9/r+PHjysiIkJ+fn567rnnFBUVJYvFopdeeknPP/+89TOs7du3l6+vr3X1zfz8fBUVFWnhwoWaP3++UlNT5ebmphdeeEHHjx/XrFmz1KFDB124cEGZmZkaO3asatSood/97ncaMWKEHn/8cQ0ZMkSJiYmKjY3VAw88UCnzh18uLi6uzM9VzZo1dfLkSTk4OCgqKkpDhgzRo48+qrNnz6p3794VvuY8KpYtzfe2bdvk5+cnX19f9e/fX6+++qok6dq1a1qzZo169OghSTpz5oxatWql8PBwvfzyy5KkqKgo1a1bV/n5+apXr54kaenSpXrxxRetT7aOHTumjRs3auPGjUpISJDFYlFaWppq1aolT09PSdKpU6eUkZGhBx98UJJ08OBBjR8/Xm3btlVAQID8/f21bNkytWjRQjVq1JCzs7Mkae7cuerXr58kKTs7W66urlqxYoVGjhypS5cuKSoqSq6ursrJybHe19atW/XUU09Z3zwaHx+vdevWKSEhQXv37pXFYtGXX36pxx57TPXr15ckPfDAAyosLJSbm5scHR0rdD7umZcbSpdPjoiIkJ2dnQoLC+Xh4aEtW7ZIklxdXRUaGqqBAwcqPj5eq1ev1uzZszVz5kwVFBRIklxcXCSVrMPt6+srSUpOTpa7u7vmz5+vWrVq6dSpU6pataouXbpk/WFdvHix3NzcVL9+fR06dEiS9MILLygmJkZffPGFZs2apTZt2ujYsWPGbbt3767p06crOTlZv/3tb+Xj46OIiAhVr17dun92dnby8vLShQsXrJe5uLho8uTJyszM1L///W+5ubkpJydHZ8+e1TfffKMlS5bo7bffVocOHeTj46Pw8HDrdTdu3KjXXntNy5Yt02effSapJPLGjx+vdu3aWQsV967rf66Kiork4uKiAwcOKD09XZIUGBioOXPm6KOPPqrkkeJOsJX5TktLU4MGDSSVfJa/VFRUlMaMGSM7OztJkpeXlw4fPqwePXrIx8dHUskz/kmTJum1117TwoULdezYMRUVFVm/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ADAiEgAAgBGRAAAAjIgEAABgRCQAAAAjIgEAABgRCQAAwIhIAAAARkQCAAAwIhIAAIARkQAAAIyIBAAAYEQkAAAAIyIBAAAYEQkAAMCISAAAAEZEAgAAMCISAACAEZEAAACMiAQAAGBEJAAAACMiAQAAGBEJAADAiEgAAABGRAIAADAiEgAAgBGRAAAAjIgEAABgRCQAAAAjIgEAABgRCQAAwIhIAAAARkQCAAAwIhIAAIARkQAAAIyIBAAAYEQkAAAAIyIBAAAYEQkAAMCISAAAAEZEAgAAMCISAACAEZEAAACMiAQAAGBEJAAAACMiAQAAGBEJAADAiEgAAABGRAIAADAiEgAAgBGRAAAAjIgEAABgRCQAAAAjIgEAABgRCQAAwIhIAAAARkQCAAAwIhIAAIARkQAAAIyIBAAAYEQkAAAAIyIBAAAYEQkAAMCISAAAAEZEAgAAMCISAACAEZEAAACMiAQAAGBEJAAAACMiAQAAGBEJAADAiEgAAABGRAIAADAiEgAAgBGRAAAAjIgEAABgRCQAAAAjIgEAABgRCQAAwIhIAAAARkQCAAAwIhIAAIARkQAAAIyIBAAAYEQkAAAAIyIBAAAYEQkAAMDo/wGK4NgUSWB1LAAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# plot as table\n", - "pd.plotting.table(data=best_runs, ax=plt.gca(), loc='center')\n", - "plt.axis('off')\n" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import torch" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Using device: cpu\n" - ] - } - ], - "source": [ - "device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\n", - "print('Using device:', device)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "ts_cl", - "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.10.12" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -}