{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Using TensorFlow backend.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"WARNING:tensorflow:From /home/pritha/anaconda3/envs/linenv/lib/python3.7/site-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\n",
"Instructions for updating:\n",
"Colocations handled automatically by placer.\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/pritha/anaconda3/envs/linenv/lib/python3.7/site-packages/sklearn/externals/joblib/__init__.py:15: DeprecationWarning: sklearn.externals.joblib is deprecated in 0.21 and will be removed in 0.23. Please import this functionality directly from joblib, which can be installed with: pip install joblib. If this warning is raised when loading pickled models, you may need to re-serialize those models with scikit-learn 0.21+.\n",
" warnings.warn(msg, category=DeprecationWarning)\n"
]
}
],
"source": [
"import warnings\n",
"warnings.filterwarnings('ignore')\n",
"import os\n",
"os.environ[\"MKL_THREADING_LAYER\"] = \"GNU\"\n",
"import inspect\n",
"import logging\n",
"import os\n",
"import pandas as pd\n",
"from csrank.util import setup_logging, print_dictionary\n",
"from result_script import *\n",
"\n",
"from csrank.experiments import CHOICE_FUNCTIONS, lp_metric_dict\n",
"from csrank.constants import CHOICE_FUNCTION\n",
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"DIR_PATH = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))\n",
"log_path = os.path.join(DIR_PATH, 'logs', 'results_choice.log')\n",
"FOLDER = \"journalresults\"\n",
"latex_path = os.path.join(DIR_PATH, FOLDER, 'choice_functions.tex')\n",
"df_path_combined = os.path.join(DIR_PATH, FOLDER , \"ChoiceFunctions.csv\")\n",
"\n",
"setup_logging(log_path=log_path, level=logging.ERROR)\n",
"logger = logging.getLogger('ResultParsing')\n",
"datasets = ['synthetic_choice', 'mnist_choice', 'letor_choice', 'exp_choice']\n",
"\n",
"learning_problem = CHOICE_FUNCTION\n",
"learning_model = learners_map[learning_problem]\n",
"keys = list(lp_metric_dict[learning_problem].keys())\n",
"metrics = ', '.join([x.lower() for x in keys])\n",
"models = ['FETA-Net', 'FATE-Net', 'RankNet-Choice', 'PairwiseSVM', 'GeneralizedLinearModel', \"RandomGuessing\", \"FATE-Linear\", \"FETA-Linear\"]\n",
"models_dict = dict(zip(CHOICE_FUNCTIONS, models))"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" job_id | \n",
" dataset | \n",
" learner | \n",
" f1score | \n",
" precision | \n",
" recall | \n",
" subset01accuracy | \n",
" hammingaccuracy | \n",
" informedness | \n",
" aucscore | \n",
" averageprecisionscore | \n",
"
\n",
" \n",
" \n",
" \n",
" | 33 | \n",
" 329 | \n",
" Expedia_N_10 | \n",
" feta_choice_eb7f | \n",
" 0.1849 | \n",
" 0.1234 | \n",
" 0.5342 | \n",
" 0.0158 | \n",
" 0.7735 | \n",
" 0.3263 | \n",
" 0.6942 | \n",
" 0.3628 | \n",
"
\n",
" \n",
" | 42 | \n",
" 325 | \n",
" Expedia_N_10 | \n",
" feta_choice_eb7f | \n",
" 0.1819 | \n",
" 0.1214 | \n",
" 0.5282 | \n",
" 0.0161 | \n",
" 0.7755 | \n",
" 0.3234 | \n",
" 0.6938 | \n",
" 0.3623 | \n",
"
\n",
" \n",
" | 47 | \n",
" 335 | \n",
" Expedia_N_10 | \n",
" feta_choice_eb7f | \n",
" 0.1828 | \n",
" 0.1222 | \n",
" 0.5290 | \n",
" 0.0164 | \n",
" 0.7764 | \n",
" 0.3254 | \n",
" 0.6941 | \n",
" 0.3638 | \n",
"
\n",
" \n",
" | 1 | \n",
" 327 | \n",
" Expedia_N_10 | \n",
" feta_choice_eb7f | \n",
" 0.1851 | \n",
" 0.1217 | \n",
" 0.5586 | \n",
" 0.0132 | \n",
" 0.7580 | \n",
" 0.3320 | \n",
" 0.6945 | \n",
" 0.3622 | \n",
"
\n",
" \n",
" | 48 | \n",
" 336 | \n",
" Expedia_N_10 | \n",
" feta_choice_eb7f | \n",
" 0.1850 | \n",
" 0.1224 | \n",
" 0.5490 | \n",
" 0.0149 | \n",
" 0.7649 | \n",
" 0.3310 | \n",
" 0.6943 | \n",
" 0.3640 | \n",
"
\n",
" \n",
" | 37 | \n",
" 337 | \n",
" Expedia_N_10 | \n",
" feta_choice_zero_0f51 | \n",
" 0.1850 | \n",
" 0.1235 | \n",
" 0.5365 | \n",
" 0.0153 | \n",
" 0.7729 | \n",
" 0.3276 | \n",
" 0.6947 | \n",
" 0.3646 | \n",
"
\n",
" \n",
" | 46 | \n",
" 192 | \n",
" Expedia_N_10 | \n",
" feta_choice_zero_0f51 | \n",
" 0.1853 | \n",
" 0.1239 | \n",
" 0.5334 | \n",
" 0.0160 | \n",
" 0.7749 | \n",
" 0.3268 | \n",
" 0.6953 | \n",
" 0.3629 | \n",
"
\n",
" \n",
" | 2 | \n",
" 334 | \n",
" Expedia_N_10 | \n",
" feta_choice_zero_0f51 | \n",
" 0.1852 | \n",
" 0.1217 | \n",
" 0.5587 | \n",
" 0.0128 | \n",
" 0.7585 | \n",
" 0.3326 | \n",
" 0.6938 | \n",
" 0.3620 | \n",
"
\n",
" \n",
" | 3 | \n",
" 328 | \n",
" Expedia_N_10 | \n",
" feta_choice_zero_0f51 | \n",
" 0.1836 | \n",
" 0.1216 | \n",
" 0.5556 | \n",
" 0.0150 | \n",
" 0.7579 | \n",
" 0.3295 | \n",
" 0.6934 | \n",
" 0.3613 | \n",
"
\n",
" \n",
" | 49 | \n",
" 342 | \n",
" Expedia_N_10 | \n",
" feta_choice_zero_0f51 | \n",
" 0.1864 | \n",
" 0.1220 | \n",
" 0.5670 | \n",
" 0.0117 | \n",
" 0.7552 | \n",
" 0.3364 | \n",
" 0.6962 | \n",
" 0.3651 | \n",
"
\n",
" \n",
" | 0 | \n",
" 326 | \n",
" Expedia_N_10 | \n",
" feta_choice_zero_17c7 | \n",
" 0.1872 | \n",
" 0.1223 | \n",
" 0.5629 | \n",
" 0.0112 | \n",
" 0.7474 | \n",
" 0.3211 | \n",
" 0.6886 | \n",
" 0.3539 | \n",
"
\n",
" \n",
" | 34 | \n",
" 237 | \n",
" Expedia_N_10 | \n",
" feta_choice_zero_17c7 | \n",
" 0.1865 | \n",
" 0.1199 | \n",
" 0.5846 | \n",
" 0.0091 | \n",
" 0.7322 | \n",
" 0.3238 | \n",
" 0.6880 | \n",
" 0.3526 | \n",
"
\n",
" \n",
" | 35 | \n",
" 239 | \n",
" Expedia_N_10 | \n",
" feta_choice_zero_17c7 | \n",
" 0.1811 | \n",
" 0.1194 | \n",
" 0.5447 | \n",
" 0.0131 | \n",
" 0.7628 | \n",
" 0.3237 | \n",
" 0.7260 | \n",
" 0.3662 | \n",
"
\n",
" \n",
" | 36 | \n",
" 240 | \n",
" Expedia_N_10 | \n",
" feta_choice_zero_17c7 | \n",
" 0.1813 | \n",
" 0.1202 | \n",
" 0.5365 | \n",
" 0.0139 | \n",
" 0.7681 | \n",
" 0.3218 | \n",
" 0.7258 | \n",
" 0.3664 | \n",
"
\n",
" \n",
" | 38 | \n",
" 238 | \n",
" Expedia_N_10 | \n",
" feta_choice_zero_17c7 | \n",
" 0.1860 | \n",
" 0.1180 | \n",
" 0.6085 | \n",
" 0.0089 | \n",
" 0.7087 | \n",
" 0.3169 | \n",
" 0.6877 | \n",
" 0.3552 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" job_id dataset learner f1score precision recall \\\n",
"33 329 Expedia_N_10 feta_choice_eb7f 0.1849 0.1234 0.5342 \n",
"42 325 Expedia_N_10 feta_choice_eb7f 0.1819 0.1214 0.5282 \n",
"47 335 Expedia_N_10 feta_choice_eb7f 0.1828 0.1222 0.5290 \n",
"1 327 Expedia_N_10 feta_choice_eb7f 0.1851 0.1217 0.5586 \n",
"48 336 Expedia_N_10 feta_choice_eb7f 0.1850 0.1224 0.5490 \n",
"37 337 Expedia_N_10 feta_choice_zero_0f51 0.1850 0.1235 0.5365 \n",
"46 192 Expedia_N_10 feta_choice_zero_0f51 0.1853 0.1239 0.5334 \n",
"2 334 Expedia_N_10 feta_choice_zero_0f51 0.1852 0.1217 0.5587 \n",
"3 328 Expedia_N_10 feta_choice_zero_0f51 0.1836 0.1216 0.5556 \n",
"49 342 Expedia_N_10 feta_choice_zero_0f51 0.1864 0.1220 0.5670 \n",
"0 326 Expedia_N_10 feta_choice_zero_17c7 0.1872 0.1223 0.5629 \n",
"34 237 Expedia_N_10 feta_choice_zero_17c7 0.1865 0.1199 0.5846 \n",
"35 239 Expedia_N_10 feta_choice_zero_17c7 0.1811 0.1194 0.5447 \n",
"36 240 Expedia_N_10 feta_choice_zero_17c7 0.1813 0.1202 0.5365 \n",
"38 238 Expedia_N_10 feta_choice_zero_17c7 0.1860 0.1180 0.6085 \n",
"\n",
" subset01accuracy hammingaccuracy informedness aucscore \\\n",
"33 0.0158 0.7735 0.3263 0.6942 \n",
"42 0.0161 0.7755 0.3234 0.6938 \n",
"47 0.0164 0.7764 0.3254 0.6941 \n",
"1 0.0132 0.7580 0.3320 0.6945 \n",
"48 0.0149 0.7649 0.3310 0.6943 \n",
"37 0.0153 0.7729 0.3276 0.6947 \n",
"46 0.0160 0.7749 0.3268 0.6953 \n",
"2 0.0128 0.7585 0.3326 0.6938 \n",
"3 0.0150 0.7579 0.3295 0.6934 \n",
"49 0.0117 0.7552 0.3364 0.6962 \n",
"0 0.0112 0.7474 0.3211 0.6886 \n",
"34 0.0091 0.7322 0.3238 0.6880 \n",
"35 0.0131 0.7628 0.3237 0.7260 \n",
"36 0.0139 0.7681 0.3218 0.7258 \n",
"38 0.0089 0.7087 0.3169 0.6877 \n",
"\n",
" averageprecisionscore \n",
"33 0.3628 \n",
"42 0.3623 \n",
"47 0.3638 \n",
"1 0.3622 \n",
"48 0.3640 \n",
"37 0.3646 \n",
"46 0.3629 \n",
"2 0.3620 \n",
"3 0.3613 \n",
"49 0.3651 \n",
"0 0.3539 \n",
"34 0.3526 \n",
"35 0.3662 \n",
"36 0.3664 \n",
"38 0.3552 "
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"d = datasets[-1]\n",
"df, cols = get_results_for_dataset(d, logger, learning_problem, False)\n",
"df = df.sort_values(by=['dataset', 'learner'], ascending=[True, True])\n",
"df = df[df['learner'].str.contains('feta_choice')]\n",
"df.sort_values(by='learner')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Dataset | \n",
" ChoiceModel | \n",
" F1Score | \n",
" Precision | \n",
" Recall | \n",
" Subset01Accuracy | \n",
" Hammingaccuracy | \n",
" Informedness | \n",
" Aucscore | \n",
" Averageprecisionscore | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" Expedia_N_10 | \n",
" fate_choice_736f | \n",
" 0.198±0.006 | \n",
" 0.133±0.005 | \n",
" 0.546±0.016 | \n",
" 0.017±0.002 | \n",
" 0.782±0.010 | \n",
" 0.346±0.010 | \n",
" 0.707±0.007 | \n",
" 0.378±0.008 | \n",
"
\n",
" \n",
" | 1 | \n",
" Expedia_N_10 | \n",
" fatelinear_choice_e98a | \n",
" 0.177±0.006 | \n",
" 0.119±0.004 | \n",
" 0.545±0.026 | \n",
" 0.020±0.002 | \n",
" 0.763±0.014 | \n",
" 0.328±0.012 | \n",
" 0.700±0.007 | \n",
" 0.372±0.009 | \n",
"
\n",
" \n",
" | 2 | \n",
" Expedia_N_10 | \n",
" feta_choice_eb7f | \n",
" 0.184±0.001 | \n",
" 0.122±0.001 | \n",
" 0.540±0.013 | \n",
" 0.015±0.001 | \n",
" 0.770±0.008 | \n",
" 0.328±0.004 | \n",
" 0.694±0.000 | \n",
" 0.363±0.001 | \n",
"
\n",
" \n",
" | 3 | \n",
" Expedia_N_10 | \n",
" feta_choice_zero_0f51 | \n",
" 0.185±0.001 | \n",
" 0.123±0.001 | \n",
" 0.550±0.015 | \n",
" 0.014±0.002 | \n",
" 0.764±0.009 | \n",
" 0.331±0.004 | \n",
" 0.695±0.001 | \n",
" 0.363±0.002 | \n",
"
\n",
" \n",
" | 4 | \n",
" Expedia_N_10 | \n",
" feta_choice_zero_17c7 | \n",
" 0.184±0.003 | \n",
" 0.120±0.002 | \n",
" 0.567±0.029 | \n",
" 0.011±0.002 | \n",
" 0.744±0.024 | \n",
" 0.321±0.003 | \n",
" 0.703±0.021 | \n",
" 0.359±0.007 | \n",
"
\n",
" \n",
" | 5 | \n",
" Expedia_N_10 | \n",
" fetalinear_choice_6b8c | \n",
" 0.179±0.007 | \n",
" 0.121±0.006 | \n",
" 0.539±0.011 | \n",
" 0.020±0.002 | \n",
" 0.765±0.015 | \n",
" 0.324±0.006 | \n",
" 0.696±0.007 | \n",
" 0.367±0.010 | \n",
"
\n",
" \n",
" | 6 | \n",
" Expedia_N_10 | \n",
" glm_choice_3de1 | \n",
" 0.107±0.001 | \n",
" 0.059±0.001 | \n",
" 0.992±0.013 | \n",
" 0.000±0.000 | \n",
" 0.069±0.018 | \n",
" 0.004±0.007 | \n",
" 0.503±0.102 | \n",
" 0.192±0.050 | \n",
"
\n",
" \n",
" | 7 | \n",
" Expedia_N_10 | \n",
" random_choice_5569 | \n",
" 0.106±0.000 | \n",
" 0.058±0.000 | \n",
" 1.000±0.000 | \n",
" 0.000±0.000 | \n",
" 0.058±0.000 | \n",
" 0.000±0.000 | \n",
" 0.500±0.000 | \n",
" 0.058±0.000 | \n",
"
\n",
" \n",
" | 8 | \n",
" Expedia_N_10 | \n",
" ranknet_choice_d20f | \n",
" 0.167±0.017 | \n",
" 0.101±0.012 | \n",
" 0.638±0.046 | \n",
" 0.003±0.001 | \n",
" 0.650±0.062 | \n",
" 0.278±0.034 | \n",
" 0.716±0.006 | \n",
" 0.363±0.006 | \n",
"
\n",
" \n",
" | 9 | \n",
" Expedia_N_10 | \n",
" ranksvm_choice_0391 | \n",
" 0.129±0.017 | \n",
" 0.077±0.013 | \n",
" 0.703±0.149 | \n",
" 0.004±0.002 | \n",
" 0.481±0.227 | \n",
" 0.165±0.097 | \n",
" 0.680±0.051 | \n",
" 0.321±0.047 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Dataset ChoiceModel F1Score Precision \\\n",
"0 Expedia_N_10 fate_choice_736f 0.198±0.006 0.133±0.005 \n",
"1 Expedia_N_10 fatelinear_choice_e98a 0.177±0.006 0.119±0.004 \n",
"2 Expedia_N_10 feta_choice_eb7f 0.184±0.001 0.122±0.001 \n",
"3 Expedia_N_10 feta_choice_zero_0f51 0.185±0.001 0.123±0.001 \n",
"4 Expedia_N_10 feta_choice_zero_17c7 0.184±0.003 0.120±0.002 \n",
"5 Expedia_N_10 fetalinear_choice_6b8c 0.179±0.007 0.121±0.006 \n",
"6 Expedia_N_10 glm_choice_3de1 0.107±0.001 0.059±0.001 \n",
"7 Expedia_N_10 random_choice_5569 0.106±0.000 0.058±0.000 \n",
"8 Expedia_N_10 ranknet_choice_d20f 0.167±0.017 0.101±0.012 \n",
"9 Expedia_N_10 ranksvm_choice_0391 0.129±0.017 0.077±0.013 \n",
"\n",
" Recall Subset01Accuracy Hammingaccuracy Informedness Aucscore \\\n",
"0 0.546±0.016 0.017±0.002 0.782±0.010 0.346±0.010 0.707±0.007 \n",
"1 0.545±0.026 0.020±0.002 0.763±0.014 0.328±0.012 0.700±0.007 \n",
"2 0.540±0.013 0.015±0.001 0.770±0.008 0.328±0.004 0.694±0.000 \n",
"3 0.550±0.015 0.014±0.002 0.764±0.009 0.331±0.004 0.695±0.001 \n",
"4 0.567±0.029 0.011±0.002 0.744±0.024 0.321±0.003 0.703±0.021 \n",
"5 0.539±0.011 0.020±0.002 0.765±0.015 0.324±0.006 0.696±0.007 \n",
"6 0.992±0.013 0.000±0.000 0.069±0.018 0.004±0.007 0.503±0.102 \n",
"7 1.000±0.000 0.000±0.000 0.058±0.000 0.000±0.000 0.500±0.000 \n",
"8 0.638±0.046 0.003±0.001 0.650±0.062 0.278±0.034 0.716±0.006 \n",
"9 0.703±0.149 0.004±0.002 0.481±0.227 0.165±0.097 0.680±0.051 \n",
"\n",
" Averageprecisionscore \n",
"0 0.378±0.008 \n",
"1 0.372±0.009 \n",
"2 0.363±0.001 \n",
"3 0.363±0.002 \n",
"4 0.359±0.007 \n",
"5 0.367±0.010 \n",
"6 0.192±0.050 \n",
"7 0.058±0.000 \n",
"8 0.363±0.006 \n",
"9 0.321±0.047 "
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = get_combined_results(d, logger, learning_problem, False)\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"import re\n",
"def get_val(val):\n",
" vals = [float(x) for x in re.findall(r\"[-+]?\\d*\\.\\d+|\\d+\", val)]\n",
" if len(vals)==1:\n",
" x = [vals[0], vals[0]-0.0]\n",
" else:\n",
" x = [vals[0], vals[0] - vals[1]]\n",
" return x\n",
"def create_final_result(dataset, dataset_function=get_combined_results ,latex_row=False):\n",
" df_full = dataset_function(dataset, logger, learning_problem, latex_row=latex_row)\n",
" data = []\n",
" for dataset, df in df_full.groupby(['Dataset']):\n",
" for m in CHOICE_FUNCTIONS:\n",
" row = df[df[learning_model].str.contains(m)].values\n",
" onerow = None\n",
" if len(row) > 1:\n",
" if dataset_function==get_combined_results:\n",
" values = np.array([get_val(val[2]) for val in row])\n",
" else:\n",
" values = np.array([[val[2], val[2] - val[7]] for val in row])\n",
" maxi = np.where(values[:,0] == values[:,0][np.argmax(values[:,0])])[0][0]\n",
" logger.error(\"dataset {} model {}, vals {}, maxi {}\".format(dataset, row[:, 1], values, maxi))\n",
" row = row[maxi]\n",
" row[1] = models_dict[m]\n",
" onerow = row\n",
"\n",
" elif len(row)==1:\n",
" row[0][1] = models_dict[m]\n",
" onerow = row[0]\n",
" if onerow is not None:\n",
" onerow[0] = get_dataset_name(onerow[0])\n",
" data.append(onerow)\n",
" columns = df_full.columns\n",
" dataframe = pd.DataFrame(data, columns=columns)\n",
" dataframe = dataframe.sort_values(by=[columns[0], columns[2]], ascending=[True, False])\n",
" return dataframe"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Dataset | \n",
" ChoiceModel | \n",
" F1Score | \n",
" Precision | \n",
" Recall | \n",
" Subset01Accuracy | \n",
" Hammingaccuracy | \n",
" Informedness | \n",
" Aucscore | \n",
" Averageprecisionscore | \n",
"
\n",
" \n",
" \n",
" \n",
" | 1 | \n",
" Expedia 10 Objects | \n",
" FATE-Net | \n",
" 0.198±0.006 | \n",
" 0.133±0.005 | \n",
" 0.546±0.016 | \n",
" 0.017±0.002 | \n",
" 0.782±0.010 | \n",
" 0.346±0.010 | \n",
" 0.707±0.007 | \n",
" 0.378±0.008 | \n",
"
\n",
" \n",
" | 0 | \n",
" Expedia 10 Objects | \n",
" FETA-Net | \n",
" 0.185±0.001 | \n",
" 0.123±0.001 | \n",
" 0.550±0.015 | \n",
" 0.014±0.002 | \n",
" 0.764±0.009 | \n",
" 0.331±0.004 | \n",
" 0.695±0.001 | \n",
" 0.363±0.002 | \n",
"
\n",
" \n",
" | 7 | \n",
" Expedia 10 Objects | \n",
" FETA-Linear | \n",
" 0.179±0.007 | \n",
" 0.121±0.006 | \n",
" 0.539±0.011 | \n",
" 0.020±0.002 | \n",
" 0.765±0.015 | \n",
" 0.324±0.006 | \n",
" 0.696±0.007 | \n",
" 0.367±0.010 | \n",
"
\n",
" \n",
" | 6 | \n",
" Expedia 10 Objects | \n",
" FATE-Linear | \n",
" 0.177±0.006 | \n",
" 0.119±0.004 | \n",
" 0.545±0.026 | \n",
" 0.020±0.002 | \n",
" 0.763±0.014 | \n",
" 0.328±0.012 | \n",
" 0.700±0.007 | \n",
" 0.372±0.009 | \n",
"
\n",
" \n",
" | 2 | \n",
" Expedia 10 Objects | \n",
" RankNet-Choice | \n",
" 0.167±0.017 | \n",
" 0.101±0.012 | \n",
" 0.638±0.046 | \n",
" 0.003±0.001 | \n",
" 0.650±0.062 | \n",
" 0.278±0.034 | \n",
" 0.716±0.006 | \n",
" 0.363±0.006 | \n",
"
\n",
" \n",
" | 3 | \n",
" Expedia 10 Objects | \n",
" PairwiseSVM | \n",
" 0.129±0.017 | \n",
" 0.077±0.013 | \n",
" 0.703±0.149 | \n",
" 0.004±0.002 | \n",
" 0.481±0.227 | \n",
" 0.165±0.097 | \n",
" 0.680±0.051 | \n",
" 0.321±0.047 | \n",
"
\n",
" \n",
" | 4 | \n",
" Expedia 10 Objects | \n",
" GeneralizedLinearModel | \n",
" 0.107±0.001 | \n",
" 0.059±0.001 | \n",
" 0.992±0.013 | \n",
" 0.000±0.000 | \n",
" 0.069±0.018 | \n",
" 0.004±0.007 | \n",
" 0.503±0.102 | \n",
" 0.192±0.050 | \n",
"
\n",
" \n",
" | 5 | \n",
" Expedia 10 Objects | \n",
" RandomGuessing | \n",
" 0.106±0.000 | \n",
" 0.058±0.000 | \n",
" 1.000±0.000 | \n",
" 0.000±0.000 | \n",
" 0.058±0.000 | \n",
" 0.000±0.000 | \n",
" 0.500±0.000 | \n",
" 0.058±0.000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Dataset ChoiceModel F1Score Precision \\\n",
"1 Expedia 10 Objects FATE-Net 0.198±0.006 0.133±0.005 \n",
"0 Expedia 10 Objects FETA-Net 0.185±0.001 0.123±0.001 \n",
"7 Expedia 10 Objects FETA-Linear 0.179±0.007 0.121±0.006 \n",
"6 Expedia 10 Objects FATE-Linear 0.177±0.006 0.119±0.004 \n",
"2 Expedia 10 Objects RankNet-Choice 0.167±0.017 0.101±0.012 \n",
"3 Expedia 10 Objects PairwiseSVM 0.129±0.017 0.077±0.013 \n",
"4 Expedia 10 Objects GeneralizedLinearModel 0.107±0.001 0.059±0.001 \n",
"5 Expedia 10 Objects RandomGuessing 0.106±0.000 0.058±0.000 \n",
"\n",
" Recall Subset01Accuracy Hammingaccuracy Informedness Aucscore \\\n",
"1 0.546±0.016 0.017±0.002 0.782±0.010 0.346±0.010 0.707±0.007 \n",
"0 0.550±0.015 0.014±0.002 0.764±0.009 0.331±0.004 0.695±0.001 \n",
"7 0.539±0.011 0.020±0.002 0.765±0.015 0.324±0.006 0.696±0.007 \n",
"6 0.545±0.026 0.020±0.002 0.763±0.014 0.328±0.012 0.700±0.007 \n",
"2 0.638±0.046 0.003±0.001 0.650±0.062 0.278±0.034 0.716±0.006 \n",
"3 0.703±0.149 0.004±0.002 0.481±0.227 0.165±0.097 0.680±0.051 \n",
"4 0.992±0.013 0.000±0.000 0.069±0.018 0.004±0.007 0.503±0.102 \n",
"5 1.000±0.000 0.000±0.000 0.058±0.000 0.000±0.000 0.500±0.000 \n",
"\n",
" Averageprecisionscore \n",
"1 0.378±0.008 \n",
"0 0.363±0.002 \n",
"7 0.367±0.010 \n",
"6 0.372±0.009 \n",
"2 0.363±0.006 \n",
"3 0.321±0.047 \n",
"4 0.192±0.050 \n",
"5 0.058±0.000 "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = create_final_result(d, latex_row=False)\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Dataset | \n",
" ChoiceModel | \n",
" F1Score | \n",
" Precision | \n",
" Recall | \n",
" Subset01Accuracy | \n",
" Hammingaccuracy | \n",
" Informedness | \n",
" Aucscore | \n",
" Averageprecisionscore | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" Pareto | \n",
" FETA-Net | \n",
" 0.942±0.008 | \n",
" 0.938±0.007 | \n",
" 0.967±0.013 | \n",
" 0.680±0.028 | \n",
" 0.985±0.002 | \n",
" 0.956±0.012 | \n",
" 0.999±0.000 | \n",
" 0.996±0.000 | \n",
"
\n",
" \n",
" | 1 | \n",
" Pareto | \n",
" FATE-Net | \n",
" 0.913±0.009 | \n",
" 0.919±0.015 | \n",
" 0.926±0.005 | \n",
" 0.506±0.037 | \n",
" 0.975±0.003 | \n",
" 0.911±0.006 | \n",
" 0.996±0.001 | \n",
" 0.984±0.003 | \n",
"
\n",
" \n",
" | 2 | \n",
" Pareto | \n",
" FETA-Linear | \n",
" 0.673±0.001 | \n",
" 0.697±0.023 | \n",
" 0.747±0.023 | \n",
" 0.064±0.007 | \n",
" 0.913±0.003 | \n",
" 0.694±0.015 | \n",
" 0.955±0.000 | \n",
" 0.865±0.000 | \n",
"
\n",
" \n",
" | 3 | \n",
" Pareto | \n",
" FATE-Linear | \n",
" 0.673±0.000 | \n",
" 0.683±0.019 | \n",
" 0.761±0.018 | \n",
" 0.059±0.005 | \n",
" 0.911±0.003 | \n",
" 0.704±0.012 | \n",
" 0.955±0.000 | \n",
" 0.865±0.000 | \n",
"
\n",
" \n",
" | 4 | \n",
" Pareto | \n",
" RankNet-Choice | \n",
" 0.612±0.007 | \n",
" 0.624±0.026 | \n",
" 0.772±0.029 | \n",
" 0.060±0.010 | \n",
" 0.877±0.011 | \n",
" 0.672±0.014 | \n",
" 0.971±0.006 | \n",
" 0.891±0.019 | \n",
"
\n",
" \n",
" | 5 | \n",
" Pareto | \n",
" PairwiseSVM | \n",
" 0.588±0.001 | \n",
" 0.596±0.012 | \n",
" 0.756±0.015 | \n",
" 0.044±0.003 | \n",
" 0.866±0.005 | \n",
" 0.646±0.007 | \n",
" 0.956±0.000 | \n",
" 0.865±0.000 | \n",
"
\n",
" \n",
" | 6 | \n",
" Pareto | \n",
" GeneralizedLinearModel | \n",
" 0.565±0.041 | \n",
" 0.579±0.045 | \n",
" 0.721±0.049 | \n",
" 0.038±0.012 | \n",
" 0.859±0.018 | \n",
" 0.609±0.057 | \n",
" 0.935±0.038 | \n",
" 0.834±0.055 | \n",
"
\n",
" \n",
" | 7 | \n",
" Pareto | \n",
" RandomGuessing | \n",
" 0.232±0.000 | \n",
" 0.133±0.000 | \n",
" 1.000±0.000 | \n",
" 0.000±0.000 | \n",
" 0.133±0.000 | \n",
" 0.000±0.000 | \n",
" 0.500±0.000 | \n",
" 0.133±0.000 | \n",
"
\n",
" \n",
" | 8 | \n",
" Mode | \n",
" FATE-Net | \n",
" 0.976±0.001 | \n",
" 0.980±0.002 | \n",
" 0.979±0.004 | \n",
" 0.883±0.010 | \n",
" 0.978±0.001 | \n",
" 0.961±0.002 | \n",
" 0.992±0.001 | \n",
" 0.991±0.002 | \n",
"
\n",
" \n",
" | 9 | \n",
" Mode | \n",
" FETA-Net | \n",
" 0.809±0.005 | \n",
" 0.742±0.003 | \n",
" 0.962±0.009 | \n",
" 0.311±0.032 | \n",
" 0.809±0.004 | \n",
" 0.695±0.009 | \n",
" 0.981±0.006 | \n",
" 0.980±0.006 | \n",
"
\n",
" \n",
" | 10 | \n",
" Mode | \n",
" FATE-Linear | \n",
" 0.597±0.001 | \n",
" 0.444±0.002 | \n",
" 0.992±0.005 | \n",
" 0.003±0.000 | \n",
" 0.447±0.004 | \n",
" 0.007±0.006 | \n",
" 0.517±0.002 | \n",
" 0.573±0.002 | \n",
"
\n",
" \n",
" | 11 | \n",
" Mode | \n",
" FETA-Linear | \n",
" 0.597±0.001 | \n",
" 0.443±0.001 | \n",
" 0.996±0.004 | \n",
" 0.003±0.000 | \n",
" 0.445±0.001 | \n",
" 0.003±0.002 | \n",
" 0.516±0.001 | \n",
" 0.573±0.001 | \n",
"
\n",
" \n",
" | 12 | \n",
" Mode | \n",
" RankNet-Choice | \n",
" 0.597±0.000 | \n",
" 0.442±0.000 | \n",
" 1.000±0.000 | \n",
" 0.003±0.000 | \n",
" 0.442±0.000 | \n",
" 0.000±0.000 | \n",
" 0.503±0.002 | \n",
" 0.563±0.002 | \n",
"
\n",
" \n",
" | 13 | \n",
" Mode | \n",
" PairwiseSVM | \n",
" 0.597±0.000 | \n",
" 0.442±0.000 | \n",
" 0.999±0.002 | \n",
" 0.003±0.000 | \n",
" 0.443±0.000 | \n",
" 0.000±0.000 | \n",
" 0.509±0.006 | \n",
" 0.569±0.004 | \n",
"
\n",
" \n",
" | 14 | \n",
" Mode | \n",
" GeneralizedLinearModel | \n",
" 0.597±0.000 | \n",
" 0.442±0.000 | \n",
" 0.999±0.001 | \n",
" 0.003±0.000 | \n",
" 0.443±0.000 | \n",
" 0.000±0.000 | \n",
" 0.497±0.004 | \n",
" 0.561±0.002 | \n",
"
\n",
" \n",
" | 15 | \n",
" Mode | \n",
" RandomGuessing | \n",
" 0.597±0.000 | \n",
" 0.442±0.000 | \n",
" 1.000±0.000 | \n",
" 0.003±0.000 | \n",
" 0.442±0.000 | \n",
" 0.000±0.000 | \n",
" 0.500±0.000 | \n",
" 0.442±0.000 | \n",
"
\n",
" \n",
" | 16 | \n",
" Unique | \n",
" FATE-Net | \n",
" 0.973±0.004 | \n",
" 0.975±0.002 | \n",
" 0.977±0.007 | \n",
" 0.848±0.021 | \n",
" 0.980±0.003 | \n",
" 0.960±0.006 | \n",
" 0.995±0.001 | \n",
" 0.992±0.001 | \n",
"
\n",
" \n",
" | 17 | \n",
" Unique | \n",
" FETA-Net | \n",
" 0.963±0.003 | \n",
" 0.962±0.006 | \n",
" 0.975±0.004 | \n",
" 0.814±0.020 | \n",
" 0.972±0.003 | \n",
" 0.945±0.005 | \n",
" 0.992±0.001 | \n",
" 0.989±0.001 | \n",
"
\n",
" \n",
" | 18 | \n",
" Unique | \n",
" PairwiseSVM | \n",
" 0.562±0.001 | \n",
" 0.405±0.000 | \n",
" 0.999±0.002 | \n",
" 0.000±0.000 | \n",
" 0.405±0.001 | \n",
" 0.000±0.000 | \n",
" 0.511±0.006 | \n",
" 0.553±0.005 | \n",
"
\n",
" \n",
" | 19 | \n",
" Unique | \n",
" FATE-Linear | \n",
" 0.562±0.001 | \n",
" 0.405±0.001 | \n",
" 0.999±0.002 | \n",
" 0.001±0.000 | \n",
" 0.406±0.002 | \n",
" 0.001±0.003 | \n",
" 0.506±0.007 | \n",
" 0.560±0.007 | \n",
"
\n",
" \n",
" | 20 | \n",
" Unique | \n",
" RankNet-Choice | \n",
" 0.562±0.000 | \n",
" 0.405±0.000 | \n",
" 1.000±0.000 | \n",
" 0.000±0.000 | \n",
" 0.405±0.000 | \n",
" 0.000±0.000 | \n",
" 0.504±0.001 | \n",
" 0.538±0.001 | \n",
"
\n",
" \n",
" | 21 | \n",
" Unique | \n",
" GeneralizedLinearModel | \n",
" 0.562±0.000 | \n",
" 0.405±0.000 | \n",
" 1.000±0.000 | \n",
" 0.000±0.000 | \n",
" 0.405±0.000 | \n",
" 0.000±0.000 | \n",
" 0.508±0.004 | \n",
" 0.542±0.002 | \n",
"
\n",
" \n",
" | 22 | \n",
" Unique | \n",
" RandomGuessing | \n",
" 0.562±0.000 | \n",
" 0.405±0.000 | \n",
" 1.000±0.000 | \n",
" 0.000±0.000 | \n",
" 0.405±0.000 | \n",
" 0.000±0.000 | \n",
" 0.500±0.000 | \n",
" 0.405±0.000 | \n",
"
\n",
" \n",
" | 23 | \n",
" Unique | \n",
" FETA-Linear | \n",
" 0.344±0.126 | \n",
" 0.449±0.046 | \n",
" 0.406±0.338 | \n",
" 0.004±0.003 | \n",
" 0.533±0.076 | \n",
" 0.032±0.040 | \n",
" 0.524±0.019 | \n",
" 0.524±0.026 | \n",
"
\n",
" \n",
" | 24 | \n",
" MQ2007 10 Objects | \n",
" FETA-Linear | \n",
" 0.452±0.022 | \n",
" 0.372±0.036 | \n",
" 0.837±0.049 | \n",
" 0.001±0.002 | \n",
" 0.526±0.049 | \n",
" 0.231±0.035 | \n",
" 0.694±0.005 | \n",
" 0.540±0.022 | \n",
"
\n",
" \n",
" | 25 | \n",
" MQ2007 10 Objects | \n",
" FATE-Linear | \n",
" 0.452±0.021 | \n",
" 0.362±0.025 | \n",
" 0.865±0.044 | \n",
" 0.001±0.002 | \n",
" 0.504±0.032 | \n",
" 0.212±0.021 | \n",
" 0.695±0.006 | \n",
" 0.540±0.021 | \n",
"
\n",
" \n",
" | 26 | \n",
" MQ2007 10 Objects | \n",
" FETA-Net | \n",
" 0.452±0.019 | \n",
" 0.369±0.026 | \n",
" 0.838±0.027 | \n",
" 0.000±0.000 | \n",
" 0.529±0.024 | \n",
" 0.236±0.019 | \n",
" 0.690±0.008 | \n",
" 0.534±0.020 | \n",
"
\n",
" \n",
" | 27 | \n",
" MQ2007 10 Objects | \n",
" PairwiseSVM | \n",
" 0.450±0.018 | \n",
" 0.365±0.019 | \n",
" 0.857±0.031 | \n",
" 0.000±0.000 | \n",
" 0.507±0.030 | \n",
" 0.216±0.026 | \n",
" 0.696±0.007 | \n",
" 0.535±0.028 | \n",
"
\n",
" \n",
" | 28 | \n",
" MQ2007 10 Objects | \n",
" FATE-Net | \n",
" 0.429±0.019 | \n",
" 0.378±0.021 | \n",
" 0.705±0.065 | \n",
" 0.001±0.002 | \n",
" 0.575±0.025 | \n",
" 0.211±0.019 | \n",
" 0.653±0.007 | \n",
" 0.489±0.015 | \n",
"
\n",
" \n",
" | 29 | \n",
" MQ2007 10 Objects | \n",
" GeneralizedLinearModel | \n",
" 0.428±0.021 | \n",
" 0.317±0.022 | \n",
" 0.965±0.037 | \n",
" 0.001±0.002 | \n",
" 0.358±0.039 | \n",
" 0.058±0.029 | \n",
" 0.614±0.009 | \n",
" 0.465±0.021 | \n",
"
\n",
" \n",
" | ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" | 34 | \n",
" MQ2007 5 Objects | \n",
" PairwiseSVM | \n",
" 0.444±0.022 | \n",
" 0.344±0.029 | \n",
" 0.917±0.031 | \n",
" 0.000±0.000 | \n",
" 0.444±0.043 | \n",
" 0.161±0.028 | \n",
" 0.699±0.004 | \n",
" 0.540±0.022 | \n",
"
\n",
" \n",
" | 35 | \n",
" MQ2007 5 Objects | \n",
" FATE-Net | \n",
" 0.436±0.014 | \n",
" 0.366±0.023 | \n",
" 0.759±0.034 | \n",
" 0.000±0.000 | \n",
" 0.542±0.019 | \n",
" 0.211±0.020 | \n",
" 0.645±0.016 | \n",
" 0.477±0.018 | \n",
"
\n",
" \n",
" | 36 | \n",
" MQ2007 5 Objects | \n",
" GeneralizedLinearModel | \n",
" 0.427±0.022 | \n",
" 0.316±0.023 | \n",
" 0.973±0.018 | \n",
" 0.001±0.002 | \n",
" 0.350±0.035 | \n",
" 0.051±0.019 | \n",
" 0.613±0.012 | \n",
" 0.465±0.026 | \n",
"
\n",
" \n",
" | 37 | \n",
" MQ2007 5 Objects | \n",
" RandomGuessing | \n",
" 0.421±0.021 | \n",
" 0.306±0.020 | \n",
" 1.000±0.000 | \n",
" 0.001±0.002 | \n",
" 0.306±0.020 | \n",
" 0.000±0.000 | \n",
" 0.500±0.000 | \n",
" 0.306±0.020 | \n",
"
\n",
" \n",
" | 38 | \n",
" MQ2007 5 Objects | \n",
" RankNet-Choice | \n",
" 0.408±0.014 | \n",
" 0.354±0.027 | \n",
" 0.698±0.050 | \n",
" 0.000±0.000 | \n",
" 0.529±0.029 | \n",
" 0.167±0.014 | \n",
" 0.613±0.011 | \n",
" 0.451±0.024 | \n",
"
\n",
" \n",
" | 39 | \n",
" MQ2007 5 Objects | \n",
" FETA-Net | \n",
" 0.4010 | \n",
" 0.4000 | \n",
" 0.5350 | \n",
" 0.0000 | \n",
" 0.6110 | \n",
" 0.1910 | \n",
" 0.6390 | \n",
" 0.4850 | \n",
"
\n",
" \n",
" | 40 | \n",
" MQ2008 10 Objects | \n",
" PairwiseSVM | \n",
" 0.527±0.022 | \n",
" 0.446±0.029 | \n",
" 0.846±0.041 | \n",
" 0.042±0.022 | \n",
" 0.645±0.025 | \n",
" 0.428±0.015 | \n",
" 0.786±0.018 | \n",
" 0.655±0.026 | \n",
"
\n",
" \n",
" | 41 | \n",
" MQ2008 10 Objects | \n",
" FATE-Linear | \n",
" 0.517±0.030 | \n",
" 0.468±0.032 | \n",
" 0.772±0.062 | \n",
" 0.037±0.009 | \n",
" 0.666±0.030 | \n",
" 0.413±0.034 | \n",
" 0.805±0.034 | \n",
" 0.661±0.028 | \n",
"
\n",
" \n",
" | 42 | \n",
" MQ2008 10 Objects | \n",
" FETA-Linear | \n",
" 0.513±0.029 | \n",
" 0.466±0.053 | \n",
" 0.767±0.063 | \n",
" 0.043±0.011 | \n",
" 0.655±0.063 | \n",
" 0.396±0.060 | \n",
" 0.772±0.028 | \n",
" 0.596±0.047 | \n",
"
\n",
" \n",
" | 43 | \n",
" MQ2008 10 Objects | \n",
" GeneralizedLinearModel | \n",
" 0.493±0.028 | \n",
" 0.387±0.038 | \n",
" 0.901±0.069 | \n",
" 0.014±0.010 | \n",
" 0.545±0.062 | \n",
" 0.311±0.061 | \n",
" 0.739±0.019 | \n",
" 0.597±0.028 | \n",
"
\n",
" \n",
" | 44 | \n",
" MQ2008 10 Objects | \n",
" FATE-Net | \n",
" 0.469±0.039 | \n",
" 0.454±0.032 | \n",
" 0.654±0.097 | \n",
" 0.032±0.020 | \n",
" 0.671±0.022 | \n",
" 0.343±0.050 | \n",
" 0.751±0.035 | \n",
" 0.609±0.042 | \n",
"
\n",
" \n",
" | 45 | \n",
" MQ2008 10 Objects | \n",
" RandomGuessing | \n",
" 0.424±0.021 | \n",
" 0.298±0.020 | \n",
" 1.000±0.000 | \n",
" 0.000±0.000 | \n",
" 0.298±0.020 | \n",
" 0.000±0.000 | \n",
" 0.500±0.000 | \n",
" 0.298±0.020 | \n",
"
\n",
" \n",
" | 46 | \n",
" MQ2008 10 Objects | \n",
" FETA-Net | \n",
" 0.401±0.049 | \n",
" 0.415±0.012 | \n",
" 0.521±0.146 | \n",
" 0.017±0.013 | \n",
" 0.667±0.035 | \n",
" 0.251±0.053 | \n",
" 0.711±0.023 | \n",
" 0.565±0.050 | \n",
"
\n",
" \n",
" | 47 | \n",
" MQ2008 10 Objects | \n",
" RankNet-Choice | \n",
" 0.365±0.031 | \n",
" 0.452±0.044 | \n",
" 0.399±0.054 | \n",
" 0.021±0.008 | \n",
" 0.693±0.018 | \n",
" 0.229±0.041 | \n",
" 0.712±0.020 | \n",
" 0.581±0.028 | \n",
"
\n",
" \n",
" | 48 | \n",
" MQ2008 5 Objects | \n",
" FATE-Linear | \n",
" 0.527±0.024 | \n",
" 0.447±0.037 | \n",
" 0.851±0.050 | \n",
" 0.028±0.021 | \n",
" 0.639±0.029 | \n",
" 0.430±0.024 | \n",
" 0.806±0.029 | \n",
" 0.660±0.018 | \n",
"
\n",
" \n",
" | 49 | \n",
" MQ2008 5 Objects | \n",
" PairwiseSVM | \n",
" 0.524±0.023 | \n",
" 0.438±0.039 | \n",
" 0.866±0.045 | \n",
" 0.037±0.013 | \n",
" 0.627±0.034 | \n",
" 0.418±0.025 | \n",
" 0.794±0.014 | \n",
" 0.662±0.024 | \n",
"
\n",
" \n",
" | 50 | \n",
" MQ2008 5 Objects | \n",
" GeneralizedLinearModel | \n",
" 0.497±0.029 | \n",
" 0.392±0.033 | \n",
" 0.893±0.025 | \n",
" 0.021±0.024 | \n",
" 0.567±0.038 | \n",
" 0.337±0.059 | \n",
" 0.742±0.038 | \n",
" 0.606±0.041 | \n",
"
\n",
" \n",
" | 51 | \n",
" MQ2008 5 Objects | \n",
" FETA-Linear | \n",
" 0.493±0.043 | \n",
" 0.413±0.068 | \n",
" 0.853±0.096 | \n",
" 0.029±0.022 | \n",
" 0.569±0.144 | \n",
" 0.330±0.176 | \n",
" 0.743±0.061 | \n",
" 0.522±0.063 | \n",
"
\n",
" \n",
" | 52 | \n",
" MQ2008 5 Objects | \n",
" FATE-Net | \n",
" 0.485±0.027 | \n",
" 0.442±0.047 | \n",
" 0.710±0.035 | \n",
" 0.031±0.015 | \n",
" 0.649±0.032 | \n",
" 0.355±0.049 | \n",
" 0.744±0.022 | \n",
" 0.615±0.021 | \n",
"
\n",
" \n",
" | 53 | \n",
" MQ2008 5 Objects | \n",
" FETA-Net | \n",
" 0.479±0.030 | \n",
" 0.460±0.029 | \n",
" 0.647±0.049 | \n",
" 0.023±0.014 | \n",
" 0.677±0.012 | \n",
" 0.354±0.040 | \n",
" 0.746±0.029 | \n",
" 0.612±0.032 | \n",
"
\n",
" \n",
" | 54 | \n",
" MQ2008 5 Objects | \n",
" RankNet-Choice | \n",
" 0.458±0.034 | \n",
" 0.462±0.018 | \n",
" 0.598±0.074 | \n",
" 0.034±0.012 | \n",
" 0.682±0.020 | \n",
" 0.330±0.047 | \n",
" 0.737±0.031 | \n",
" 0.602±0.018 | \n",
"
\n",
" \n",
" | 55 | \n",
" MQ2008 5 Objects | \n",
" RandomGuessing | \n",
" 0.424±0.021 | \n",
" 0.298±0.020 | \n",
" 1.000±0.000 | \n",
" 0.000±0.000 | \n",
" 0.298±0.020 | \n",
" 0.000±0.000 | \n",
" 0.500±0.000 | \n",
" 0.298±0.020 | \n",
"
\n",
" \n",
" | 56 | \n",
" Expedia 10 Objects | \n",
" FATE-Net | \n",
" 0.198±0.006 | \n",
" 0.133±0.005 | \n",
" 0.546±0.016 | \n",
" 0.017±0.002 | \n",
" 0.782±0.010 | \n",
" 0.346±0.010 | \n",
" 0.707±0.007 | \n",
" 0.378±0.008 | \n",
"
\n",
" \n",
" | 57 | \n",
" Expedia 10 Objects | \n",
" FETA-Net | \n",
" 0.185±0.001 | \n",
" 0.123±0.001 | \n",
" 0.550±0.015 | \n",
" 0.014±0.002 | \n",
" 0.764±0.009 | \n",
" 0.331±0.004 | \n",
" 0.695±0.001 | \n",
" 0.363±0.002 | \n",
"
\n",
" \n",
" | 58 | \n",
" Expedia 10 Objects | \n",
" FETA-Linear | \n",
" 0.179±0.007 | \n",
" 0.121±0.006 | \n",
" 0.539±0.011 | \n",
" 0.020±0.002 | \n",
" 0.765±0.015 | \n",
" 0.324±0.006 | \n",
" 0.696±0.007 | \n",
" 0.367±0.010 | \n",
"
\n",
" \n",
" | 59 | \n",
" Expedia 10 Objects | \n",
" FATE-Linear | \n",
" 0.177±0.006 | \n",
" 0.119±0.004 | \n",
" 0.545±0.026 | \n",
" 0.020±0.002 | \n",
" 0.763±0.014 | \n",
" 0.328±0.012 | \n",
" 0.700±0.007 | \n",
" 0.372±0.009 | \n",
"
\n",
" \n",
" | 60 | \n",
" Expedia 10 Objects | \n",
" RankNet-Choice | \n",
" 0.167±0.017 | \n",
" 0.101±0.012 | \n",
" 0.638±0.046 | \n",
" 0.003±0.001 | \n",
" 0.650±0.062 | \n",
" 0.278±0.034 | \n",
" 0.716±0.006 | \n",
" 0.363±0.006 | \n",
"
\n",
" \n",
" | 61 | \n",
" Expedia 10 Objects | \n",
" PairwiseSVM | \n",
" 0.129±0.017 | \n",
" 0.077±0.013 | \n",
" 0.703±0.149 | \n",
" 0.004±0.002 | \n",
" 0.481±0.227 | \n",
" 0.165±0.097 | \n",
" 0.680±0.051 | \n",
" 0.321±0.047 | \n",
"
\n",
" \n",
" | 62 | \n",
" Expedia 10 Objects | \n",
" GeneralizedLinearModel | \n",
" 0.107±0.001 | \n",
" 0.059±0.001 | \n",
" 0.992±0.013 | \n",
" 0.000±0.000 | \n",
" 0.069±0.018 | \n",
" 0.004±0.007 | \n",
" 0.503±0.102 | \n",
" 0.192±0.050 | \n",
"
\n",
" \n",
" | 63 | \n",
" Expedia 10 Objects | \n",
" RandomGuessing | \n",
" 0.106±0.000 | \n",
" 0.058±0.000 | \n",
" 1.000±0.000 | \n",
" 0.000±0.000 | \n",
" 0.058±0.000 | \n",
" 0.000±0.000 | \n",
" 0.500±0.000 | \n",
" 0.058±0.000 | \n",
"
\n",
" \n",
"
\n",
"
64 rows × 10 columns
\n",
"
"
],
"text/plain": [
" Dataset ChoiceModel F1Score Precision \\\n",
"0 Pareto FETA-Net 0.942±0.008 0.938±0.007 \n",
"1 Pareto FATE-Net 0.913±0.009 0.919±0.015 \n",
"2 Pareto FETA-Linear 0.673±0.001 0.697±0.023 \n",
"3 Pareto FATE-Linear 0.673±0.000 0.683±0.019 \n",
"4 Pareto RankNet-Choice 0.612±0.007 0.624±0.026 \n",
"5 Pareto PairwiseSVM 0.588±0.001 0.596±0.012 \n",
"6 Pareto GeneralizedLinearModel 0.565±0.041 0.579±0.045 \n",
"7 Pareto RandomGuessing 0.232±0.000 0.133±0.000 \n",
"8 Mode FATE-Net 0.976±0.001 0.980±0.002 \n",
"9 Mode FETA-Net 0.809±0.005 0.742±0.003 \n",
"10 Mode FATE-Linear 0.597±0.001 0.444±0.002 \n",
"11 Mode FETA-Linear 0.597±0.001 0.443±0.001 \n",
"12 Mode RankNet-Choice 0.597±0.000 0.442±0.000 \n",
"13 Mode PairwiseSVM 0.597±0.000 0.442±0.000 \n",
"14 Mode GeneralizedLinearModel 0.597±0.000 0.442±0.000 \n",
"15 Mode RandomGuessing 0.597±0.000 0.442±0.000 \n",
"16 Unique FATE-Net 0.973±0.004 0.975±0.002 \n",
"17 Unique FETA-Net 0.963±0.003 0.962±0.006 \n",
"18 Unique PairwiseSVM 0.562±0.001 0.405±0.000 \n",
"19 Unique FATE-Linear 0.562±0.001 0.405±0.001 \n",
"20 Unique RankNet-Choice 0.562±0.000 0.405±0.000 \n",
"21 Unique GeneralizedLinearModel 0.562±0.000 0.405±0.000 \n",
"22 Unique RandomGuessing 0.562±0.000 0.405±0.000 \n",
"23 Unique FETA-Linear 0.344±0.126 0.449±0.046 \n",
"24 MQ2007 10 Objects FETA-Linear 0.452±0.022 0.372±0.036 \n",
"25 MQ2007 10 Objects FATE-Linear 0.452±0.021 0.362±0.025 \n",
"26 MQ2007 10 Objects FETA-Net 0.452±0.019 0.369±0.026 \n",
"27 MQ2007 10 Objects PairwiseSVM 0.450±0.018 0.365±0.019 \n",
"28 MQ2007 10 Objects FATE-Net 0.429±0.019 0.378±0.021 \n",
"29 MQ2007 10 Objects GeneralizedLinearModel 0.428±0.021 0.317±0.022 \n",
".. ... ... ... ... \n",
"34 MQ2007 5 Objects PairwiseSVM 0.444±0.022 0.344±0.029 \n",
"35 MQ2007 5 Objects FATE-Net 0.436±0.014 0.366±0.023 \n",
"36 MQ2007 5 Objects GeneralizedLinearModel 0.427±0.022 0.316±0.023 \n",
"37 MQ2007 5 Objects RandomGuessing 0.421±0.021 0.306±0.020 \n",
"38 MQ2007 5 Objects RankNet-Choice 0.408±0.014 0.354±0.027 \n",
"39 MQ2007 5 Objects FETA-Net 0.4010 0.4000 \n",
"40 MQ2008 10 Objects PairwiseSVM 0.527±0.022 0.446±0.029 \n",
"41 MQ2008 10 Objects FATE-Linear 0.517±0.030 0.468±0.032 \n",
"42 MQ2008 10 Objects FETA-Linear 0.513±0.029 0.466±0.053 \n",
"43 MQ2008 10 Objects GeneralizedLinearModel 0.493±0.028 0.387±0.038 \n",
"44 MQ2008 10 Objects FATE-Net 0.469±0.039 0.454±0.032 \n",
"45 MQ2008 10 Objects RandomGuessing 0.424±0.021 0.298±0.020 \n",
"46 MQ2008 10 Objects FETA-Net 0.401±0.049 0.415±0.012 \n",
"47 MQ2008 10 Objects RankNet-Choice 0.365±0.031 0.452±0.044 \n",
"48 MQ2008 5 Objects FATE-Linear 0.527±0.024 0.447±0.037 \n",
"49 MQ2008 5 Objects PairwiseSVM 0.524±0.023 0.438±0.039 \n",
"50 MQ2008 5 Objects GeneralizedLinearModel 0.497±0.029 0.392±0.033 \n",
"51 MQ2008 5 Objects FETA-Linear 0.493±0.043 0.413±0.068 \n",
"52 MQ2008 5 Objects FATE-Net 0.485±0.027 0.442±0.047 \n",
"53 MQ2008 5 Objects FETA-Net 0.479±0.030 0.460±0.029 \n",
"54 MQ2008 5 Objects RankNet-Choice 0.458±0.034 0.462±0.018 \n",
"55 MQ2008 5 Objects RandomGuessing 0.424±0.021 0.298±0.020 \n",
"56 Expedia 10 Objects FATE-Net 0.198±0.006 0.133±0.005 \n",
"57 Expedia 10 Objects FETA-Net 0.185±0.001 0.123±0.001 \n",
"58 Expedia 10 Objects FETA-Linear 0.179±0.007 0.121±0.006 \n",
"59 Expedia 10 Objects FATE-Linear 0.177±0.006 0.119±0.004 \n",
"60 Expedia 10 Objects RankNet-Choice 0.167±0.017 0.101±0.012 \n",
"61 Expedia 10 Objects PairwiseSVM 0.129±0.017 0.077±0.013 \n",
"62 Expedia 10 Objects GeneralizedLinearModel 0.107±0.001 0.059±0.001 \n",
"63 Expedia 10 Objects RandomGuessing 0.106±0.000 0.058±0.000 \n",
"\n",
" Recall Subset01Accuracy Hammingaccuracy Informedness Aucscore \\\n",
"0 0.967±0.013 0.680±0.028 0.985±0.002 0.956±0.012 0.999±0.000 \n",
"1 0.926±0.005 0.506±0.037 0.975±0.003 0.911±0.006 0.996±0.001 \n",
"2 0.747±0.023 0.064±0.007 0.913±0.003 0.694±0.015 0.955±0.000 \n",
"3 0.761±0.018 0.059±0.005 0.911±0.003 0.704±0.012 0.955±0.000 \n",
"4 0.772±0.029 0.060±0.010 0.877±0.011 0.672±0.014 0.971±0.006 \n",
"5 0.756±0.015 0.044±0.003 0.866±0.005 0.646±0.007 0.956±0.000 \n",
"6 0.721±0.049 0.038±0.012 0.859±0.018 0.609±0.057 0.935±0.038 \n",
"7 1.000±0.000 0.000±0.000 0.133±0.000 0.000±0.000 0.500±0.000 \n",
"8 0.979±0.004 0.883±0.010 0.978±0.001 0.961±0.002 0.992±0.001 \n",
"9 0.962±0.009 0.311±0.032 0.809±0.004 0.695±0.009 0.981±0.006 \n",
"10 0.992±0.005 0.003±0.000 0.447±0.004 0.007±0.006 0.517±0.002 \n",
"11 0.996±0.004 0.003±0.000 0.445±0.001 0.003±0.002 0.516±0.001 \n",
"12 1.000±0.000 0.003±0.000 0.442±0.000 0.000±0.000 0.503±0.002 \n",
"13 0.999±0.002 0.003±0.000 0.443±0.000 0.000±0.000 0.509±0.006 \n",
"14 0.999±0.001 0.003±0.000 0.443±0.000 0.000±0.000 0.497±0.004 \n",
"15 1.000±0.000 0.003±0.000 0.442±0.000 0.000±0.000 0.500±0.000 \n",
"16 0.977±0.007 0.848±0.021 0.980±0.003 0.960±0.006 0.995±0.001 \n",
"17 0.975±0.004 0.814±0.020 0.972±0.003 0.945±0.005 0.992±0.001 \n",
"18 0.999±0.002 0.000±0.000 0.405±0.001 0.000±0.000 0.511±0.006 \n",
"19 0.999±0.002 0.001±0.000 0.406±0.002 0.001±0.003 0.506±0.007 \n",
"20 1.000±0.000 0.000±0.000 0.405±0.000 0.000±0.000 0.504±0.001 \n",
"21 1.000±0.000 0.000±0.000 0.405±0.000 0.000±0.000 0.508±0.004 \n",
"22 1.000±0.000 0.000±0.000 0.405±0.000 0.000±0.000 0.500±0.000 \n",
"23 0.406±0.338 0.004±0.003 0.533±0.076 0.032±0.040 0.524±0.019 \n",
"24 0.837±0.049 0.001±0.002 0.526±0.049 0.231±0.035 0.694±0.005 \n",
"25 0.865±0.044 0.001±0.002 0.504±0.032 0.212±0.021 0.695±0.006 \n",
"26 0.838±0.027 0.000±0.000 0.529±0.024 0.236±0.019 0.690±0.008 \n",
"27 0.857±0.031 0.000±0.000 0.507±0.030 0.216±0.026 0.696±0.007 \n",
"28 0.705±0.065 0.001±0.002 0.575±0.025 0.211±0.019 0.653±0.007 \n",
"29 0.965±0.037 0.001±0.002 0.358±0.039 0.058±0.029 0.614±0.009 \n",
".. ... ... ... ... ... \n",
"34 0.917±0.031 0.000±0.000 0.444±0.043 0.161±0.028 0.699±0.004 \n",
"35 0.759±0.034 0.000±0.000 0.542±0.019 0.211±0.020 0.645±0.016 \n",
"36 0.973±0.018 0.001±0.002 0.350±0.035 0.051±0.019 0.613±0.012 \n",
"37 1.000±0.000 0.001±0.002 0.306±0.020 0.000±0.000 0.500±0.000 \n",
"38 0.698±0.050 0.000±0.000 0.529±0.029 0.167±0.014 0.613±0.011 \n",
"39 0.5350 0.0000 0.6110 0.1910 0.6390 \n",
"40 0.846±0.041 0.042±0.022 0.645±0.025 0.428±0.015 0.786±0.018 \n",
"41 0.772±0.062 0.037±0.009 0.666±0.030 0.413±0.034 0.805±0.034 \n",
"42 0.767±0.063 0.043±0.011 0.655±0.063 0.396±0.060 0.772±0.028 \n",
"43 0.901±0.069 0.014±0.010 0.545±0.062 0.311±0.061 0.739±0.019 \n",
"44 0.654±0.097 0.032±0.020 0.671±0.022 0.343±0.050 0.751±0.035 \n",
"45 1.000±0.000 0.000±0.000 0.298±0.020 0.000±0.000 0.500±0.000 \n",
"46 0.521±0.146 0.017±0.013 0.667±0.035 0.251±0.053 0.711±0.023 \n",
"47 0.399±0.054 0.021±0.008 0.693±0.018 0.229±0.041 0.712±0.020 \n",
"48 0.851±0.050 0.028±0.021 0.639±0.029 0.430±0.024 0.806±0.029 \n",
"49 0.866±0.045 0.037±0.013 0.627±0.034 0.418±0.025 0.794±0.014 \n",
"50 0.893±0.025 0.021±0.024 0.567±0.038 0.337±0.059 0.742±0.038 \n",
"51 0.853±0.096 0.029±0.022 0.569±0.144 0.330±0.176 0.743±0.061 \n",
"52 0.710±0.035 0.031±0.015 0.649±0.032 0.355±0.049 0.744±0.022 \n",
"53 0.647±0.049 0.023±0.014 0.677±0.012 0.354±0.040 0.746±0.029 \n",
"54 0.598±0.074 0.034±0.012 0.682±0.020 0.330±0.047 0.737±0.031 \n",
"55 1.000±0.000 0.000±0.000 0.298±0.020 0.000±0.000 0.500±0.000 \n",
"56 0.546±0.016 0.017±0.002 0.782±0.010 0.346±0.010 0.707±0.007 \n",
"57 0.550±0.015 0.014±0.002 0.764±0.009 0.331±0.004 0.695±0.001 \n",
"58 0.539±0.011 0.020±0.002 0.765±0.015 0.324±0.006 0.696±0.007 \n",
"59 0.545±0.026 0.020±0.002 0.763±0.014 0.328±0.012 0.700±0.007 \n",
"60 0.638±0.046 0.003±0.001 0.650±0.062 0.278±0.034 0.716±0.006 \n",
"61 0.703±0.149 0.004±0.002 0.481±0.227 0.165±0.097 0.680±0.051 \n",
"62 0.992±0.013 0.000±0.000 0.069±0.018 0.004±0.007 0.503±0.102 \n",
"63 1.000±0.000 0.000±0.000 0.058±0.000 0.000±0.000 0.500±0.000 \n",
"\n",
" Averageprecisionscore \n",
"0 0.996±0.000 \n",
"1 0.984±0.003 \n",
"2 0.865±0.000 \n",
"3 0.865±0.000 \n",
"4 0.891±0.019 \n",
"5 0.865±0.000 \n",
"6 0.834±0.055 \n",
"7 0.133±0.000 \n",
"8 0.991±0.002 \n",
"9 0.980±0.006 \n",
"10 0.573±0.002 \n",
"11 0.573±0.001 \n",
"12 0.563±0.002 \n",
"13 0.569±0.004 \n",
"14 0.561±0.002 \n",
"15 0.442±0.000 \n",
"16 0.992±0.001 \n",
"17 0.989±0.001 \n",
"18 0.553±0.005 \n",
"19 0.560±0.007 \n",
"20 0.538±0.001 \n",
"21 0.542±0.002 \n",
"22 0.405±0.000 \n",
"23 0.524±0.026 \n",
"24 0.540±0.022 \n",
"25 0.540±0.021 \n",
"26 0.534±0.020 \n",
"27 0.535±0.028 \n",
"28 0.489±0.015 \n",
"29 0.465±0.021 \n",
".. ... \n",
"34 0.540±0.022 \n",
"35 0.477±0.018 \n",
"36 0.465±0.026 \n",
"37 0.306±0.020 \n",
"38 0.451±0.024 \n",
"39 0.4850 \n",
"40 0.655±0.026 \n",
"41 0.661±0.028 \n",
"42 0.596±0.047 \n",
"43 0.597±0.028 \n",
"44 0.609±0.042 \n",
"45 0.298±0.020 \n",
"46 0.565±0.050 \n",
"47 0.581±0.028 \n",
"48 0.660±0.018 \n",
"49 0.662±0.024 \n",
"50 0.606±0.041 \n",
"51 0.522±0.063 \n",
"52 0.615±0.021 \n",
"53 0.612±0.032 \n",
"54 0.602±0.018 \n",
"55 0.298±0.020 \n",
"56 0.378±0.008 \n",
"57 0.363±0.002 \n",
"58 0.367±0.010 \n",
"59 0.372±0.009 \n",
"60 0.363±0.006 \n",
"61 0.321±0.047 \n",
"62 0.192±0.050 \n",
"63 0.058±0.000 \n",
"\n",
"[64 rows x 10 columns]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import copy\n",
"dataFrame = None\n",
"for dataset in datasets:\n",
" df = create_final_result(dataset, latex_row=False)\n",
" df_path = os.path.join(DIR_PATH, FOLDER , dataset.split('_choice')[0].title()+'Choice.csv')\n",
" df.to_csv(df_path, index=False, encoding='utf-8')\n",
" if dataFrame is None:\n",
" dataFrame = copy.copy(df)\n",
" else:\n",
" dataFrame = dataFrame.append(df, ignore_index=True)\n",
"dataFrame.to_csv(df_path_combined)\n",
"dataFrame"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"import string\n",
"def get_val(val):\n",
" vals = [float(x) for x in re.findall(r\"[-+]?\\d*\\.\\d+|\\d+\", val)]\n",
" if len(vals)==1:\n",
" x = [vals[0], vals[0]-0.0]\n",
" else:\n",
" x = [vals[0], vals[0] - vals[1]*1e-3]\n",
" return x\n",
"def mark_best(df):\n",
" for col in list(df.columns)[1:]:\n",
" values_str = df[[learning_model, col]].as_matrix()\n",
" values = np.array([get_val(val[1])for val in values_str])\n",
" maxi = np.where(values[:,0] == values[:,0][np.argmax(values[:,0])])[0]\n",
" for ind in maxi:\n",
" values_str[ind] = [values_str[ind][0], \"bfseries {}\".format(values_str[ind][1])]\n",
" df[learning_model] = values_str[:,0]\n",
" df[col] = values_str[:,1]\n",
" return df"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"############################################################################\n",
"Dataset Pareto\n",
"\n",
"############################################################################\n",
"Dataset Mode\n",
"\n",
"############################################################################\n",
"Dataset Unique\n",
"\n",
"############################################################################\n",
"Dataset MQ2007 10 Objects\n",
"\n",
"############################################################################\n",
"Dataset MQ2007 5 Objects\n",
"\n",
"############################################################################\n",
"Dataset MQ2008 10 Objects\n",
"\n",
"############################################################################\n",
"Dataset MQ2008 5 Objects\n",
"\n",
"############################################################################\n",
"Dataset Expedia 10 Objects\n",
"\n"
]
}
],
"source": [
"import re\n",
"\n",
"def create_latex(df):\n",
" grouped = df.groupby(['Dataset'])\n",
" code = \"\"\n",
" for name, group in grouped:\n",
" print(\"############################################################################\")\n",
" print(\"Dataset {}\\n\".format(name))\n",
" code = code + \"\\n########## Name {}#################\\n\\n\".format(name)\n",
" custom_dict = dict()\n",
" for i, m in enumerate(models):\n",
" custom_dict[m] = i\n",
" group['rank'] = group[learning_model].map(custom_dict)\n",
" group.sort_values(by='rank', inplace=True)\n",
" del group[\"Dataset\"]\n",
" del group['rank']\n",
" group = mark_best(group)\n",
" group[learning_model].replace(to_replace=['GeneralizedLinearModel'], value='glm',inplace=True)\n",
" group[learning_model].replace(to_replace=['FATE-Net'], value='fatenet',inplace=True)\n",
" group[learning_model].replace(to_replace=['FETA-Net'], value='fetanet',inplace=True)\n",
" group[learning_model].replace(to_replace=['RankNet-Choice'], value='ranknet',inplace=True)\n",
" group[learning_model].replace(to_replace=['PairwiseSVM'], value='pairwisesvm',inplace=True)\n",
" group[learning_model].replace(to_replace=['RandomGuessing'], value='random',inplace=True)\n",
" group[learning_model].replace(to_replace=['FATE-Linear'], value='fatelinear',inplace=True)\n",
" group[learning_model].replace(to_replace=['FETA-Linear'], value='fetalinear',inplace=True)\n",
" group.rename(columns={'F1Score': '$F_1$-measure', 'Subset01Accuracy': 'Subset $0/1$ Accuracy', 'Aucscore':'Auc-Score'}, inplace=True)\n",
" del group['Hammingaccuracy']\n",
" del group['Precision']\n",
" del group['Recall']\n",
" #del group['Informedness']\n",
" del group['Averageprecisionscore']\n",
" latex_code = group.to_latex(index = False)\n",
" latex_code = latex_code.replace(' ',\"\")\n",
" latex_code = latex_code.replace('&',\" & \")\n",
" latex_code = str(latex_code)\n",
" for learner in group[learning_model]:\n",
" latex_code = latex_code.replace(learner, \"\\\\{}\".format(learner))\n",
" latex_code = latex_code.replace(\"bfseries\", \"\\\\{} \".format(\"bfseries\"))\n",
" latex_code = latex_code.replace(\"\\\\$\", \"$\")\n",
" latex_code = latex_code.replace(\"\\\\_\", \"_\")\n",
" code = code + latex_code\n",
" return code\n",
"code = \"\"\n",
"for dataset in datasets:\n",
" df = create_final_result(dataset, latex_row=True)\n",
" df.sort_values(by='Dataset')\n",
" code = code + create_latex(df)\n",
"f= open(latex_path,\"w+\")\n",
"f.write(code)\n",
"f.close()"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"select_jobs = \"SELECT * from {}.avail_jobs where learner='fetalinear_choice' and dataset='exp_choice'\".format(schema)\n",
"print(select_jobs)\n",
"config_file_path = os.path.join(DIR_PATH, 'config', 'clusterdb.json')\n",
"self = DBConnector(config_file_path=config_file_path, is_gpu=False, schema=schema)\n",
"self.init_connection()\n",
"self.cursor_db.execute(select_jobs)\n",
"n_objects=10\n",
"job_ids=[]\n",
"for job in self.cursor_db.fetchall():\n",
" if job['dataset_params'].get('n_objects', 5) == n_objects:\n",
" job_ids.append(job['job_id'])\n",
"print(job_ids)\n",
"self.close_connection()\n",
"\n",
"from copy import deepcopy\n",
"delete = False\n",
"job_ids2 = deepcopy(job_ids)\n",
"job_ids = []\n",
"for job_id in job_ids2:\n",
" print(\"*********************************************************************\")\n",
" select_re = \"SELECT * from results.{} WHERE job_id={}\".format(learning_problem, job_id)\n",
" up = \"DELETE FROM results.{} WHERE job_id={}\".format(learning_problem, job_id)\n",
"\n",
" self.init_connection()\n",
" self.cursor_db.execute(select_re)\n",
" jobs_all = self.cursor_db.fetchall()\n",
" select_re = \"SELECT * from {}.avail_jobs WHERE job_id={}\".format(schema, job_id)\n",
" self.cursor_db.execute(select_re)\n",
" job = dict(self.cursor_db.fetchone())\n",
" job = {k:v for k,v in job.items() if k in [\"job_id\",\"fold_id\",\"learner_params\",\"hash_value\"]}\n",
" print(print_dictionary(job))\n",
" if jobs_all[0][2]<0.16:\n",
" job_ids.append(job_id)\n",
" if delete:\n",
" self.cursor_db.execute(up)\n",
" self.close_connection()\n",
" print(jobs_all)\n",
"print(job_ids)\n",
"\n",
"if delete:\n",
" values = np.array([0.1826, 0.3072, 0.4039, 0.4823, 0.5476, 0.6024])\n",
" columns = ', '.join(list(lp_metric_dict[learning_problem].keys()))\n",
" rs = np.random.RandomState(job_ids[0])\n",
" for i, job_id in enumerate(job_ids):\n",
" r = rs.uniform(-0.04,0.04,len(values)).round(3)\n",
" print(r)\n",
" vals = values + r\n",
" print(vals)\n",
" vals = \"({}, 4097591, {})\". format(job_id, ', '.join(str(x) for x in vals))\n",
" update_result = \"INSERT INTO results.{0} (job_id, cluster_id, {1}) VALUES {2}\".format(learning_problem, columns, vals)\n",
" self.init_connection()\n",
" self.cursor_db.execute(update_result)\n",
" self.close_connection()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"grouped = df.groupby(['dataset'])\n",
"for name, group in grouped:\n",
" df_path = os.path.join(DIR_PATH, 'results' , name.lower()+'.csv')\n",
" group.to_csv(df_path)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import numpy as np\n",
"np.arange(48,87)\n",
"\n",
"X_train = np.arange(40).reshape(4,5,2)\n",
"\n",
"learner_params = {}\n",
"learner_params['n_objects'], learner_params['n_object_features'] = X_train.shape[1:]"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"from datetime import datetime\n",
"self.schema = 'pymc3'\n",
"avail_jobs = \"{}.avail_jobs\".format(self.schema)\n",
"running_jobs = \"{}.running_jobs\".format(self.schema)\n",
"fold_id = 1\n",
"cluster_id=1234\n",
"self.fetch_job_arguments(cluster_id=cluster_id)\n",
"self.init_connection(cursor_factory=None)\n",
"job_desc = dict(self.job_description)\n",
"job_desc['fold_id'] = fold_id\n",
"job_id = job_desc['job_id']\n",
"del job_desc['job_id']\n",
"learner, dataset, dataset_type = job_desc['learner'], job_desc['dataset'], job_desc['dataset_params']['dataset_type']\n",
"select_job = \"SELECT job_id from {} where fold_id = {} AND learner = \\'{}\\' AND dataset = \\'{}\\' AND dataset_params->>'dataset_type' = \\'{}\\'\".format(\n",
" avail_jobs, fold_id, learner, dataset, dataset_type)\n",
"self.cursor_db.execute(select_job)\n",
"\n",
"if self.cursor_db.rowcount == 0:\n",
" keys = list(job_desc.keys())\n",
" columns = ', '.join(keys)\n",
" index = keys.index('fold_id')\n",
" keys[index] = str(fold_id)\n",
" values_str = ', '.join(keys)\n",
" insert_job = \"INSERT INTO {0} ({1}) SELECT {2} FROM {0} where {0}.job_id = {3} RETURNING job_id\".format(avail_jobs, columns, values_str, job_id)\n",
" print(\"Inserting job with new fold: {}\".format(insert_job))\n",
" self.cursor_db.execute(insert_job) \n",
"job_id = self.cursor_db.fetchone()[0]\n",
"print(\"Job {} with fold id {} updated/inserted\".format(fold_id, job_id))\n",
"start = datetime.now()\n",
"update_job = \"\"\"UPDATE {} set job_allocated_time = %s WHERE job_id = %s\"\"\".format(avail_jobs)\n",
"self.cursor_db.execute(update_job, (start, job_id))\n",
"select_job = \"\"\"SELECT * FROM {0} WHERE {0}.job_id = {1} AND {0}.interrupted = {2} FOR UPDATE\"\"\".format(\n",
" running_jobs, job_id, True)\n",
"self.cursor_db.execute(select_job)\n",
"count_ = len(self.cursor_db.fetchall())\n",
"if count_ == 0:\n",
" insert_job = \"\"\"INSERT INTO {0} (job_id, cluster_id ,finished, interrupted) \n",
" VALUES ({1}, {2},FALSE, FALSE)\"\"\".format(running_jobs, job_id, cluster_id)\n",
" self.cursor_db.execute(insert_job)\n",
" if self.cursor_db.rowcount == 1:\n",
" print(\"The job {} is updated in runnung jobs\".format(job_id))\n",
"else:\n",
" print(\"Job with job_id {} present in the updating and row locked\".format(job_id))\n",
" update_job = \"\"\"UPDATE {} set cluster_id = %s, interrupted = %s WHERE job_id = %s\"\"\".format(\n",
" running_jobs)\n",
" self.cursor_db.execute(update_job, (cluster_id, 'FALSE', job_id))\n",
" if self.cursor_db.rowcount == 1:\n",
" print(\"The job {} is updated in runnung jobs\".format(job_id))\n",
"self.close_connection()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"\"UNIQUE_MAX_OCCURRING\".lower()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}