From 01e725a93eeb7ad76e8843e0cfe83205a57282dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricardo=20Montan=CC=83ana?= Date: Thu, 1 Apr 2021 01:52:08 +0200 Subject: [PATCH] Reformat table.tex in analysis_mysql --- .gitignore | 3 +- analysis_mysql.py | 108 +++++++++++++++++++++++++++++++++++++++++++--- report.csv | 53 ++++++++++++++++++++++- 3 files changed, 154 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 2fea4c8..0bdb8a9 100644 --- a/.gitignore +++ b/.gitignore @@ -135,4 +135,5 @@ experimentation/.myconfig experimentation/.tunnel results report_score.sql -datasets_types \ No newline at end of file +datasets_types +table.tex \ No newline at end of file diff --git a/analysis_mysql.py b/analysis_mysql.py index 2c0d692..be65f9d 100644 --- a/analysis_mysql.py +++ b/analysis_mysql.py @@ -6,6 +6,7 @@ from experimentation.Utils import TextColor from experimentation.Database import MySQL report_csv = "report.csv" +table_tex = "table.tex" models_tree = [ "stree", "stree_default", @@ -47,6 +48,13 @@ def parse_arguments() -> Tuple[str, str, str, bool, bool]: required=False, default=False, ) + ap.add_argument( + "-t", + "--tex-output", + type=bool, + required=False, + default=False, + ) ap.add_argument( "-o", "--compare", @@ -55,7 +63,74 @@ def parse_arguments() -> Tuple[str, str, str, bool, bool]: default=False, ) args = ap.parse_args() - return (args.experiment, args.model, args.csv_output, args.compare) + return ( + args.experiment, + args.model, + args.csv_output, + args.tex_output, + args.compare, + ) + + +def print_header_tex(file_tex, second=False): + # old_header = ( + # "\\begin{table}[ht]\n" + # "\\centering" + # "\\resizebox{\\textwidth}{!}{\\begin{tabular}{|r|l|r|r|r|c|c|c|c|c|c| + # c" + # "|}" + # "\\hline\n" + # "\\# & Dataset & Samples & Features & Classes & stree & stree def. & + # " + # "wodt & j48svm & oc1 & cart & baseRaF\\\\\n" + # "\\hline" + # ) + cont = "" + num = "" + if second: + cont = " (cont.)" + num = "2" + header = ( + "\\begin{sidewaystable}[ht]\n" + "\\centering\n" + "\\renewcommand{\\arraystretch}{1.2}\n" + "\\renewcommand{\\tabcolsep}{0.07cm}\n" + "\\caption{Datasets used during the experimentation" + cont + "}\n" + "\\label{table:datasets" + num + "}\n" + "\\resizebox{0.95\\textwidth}{!}{\n" + "\\begin{tabular}{rlrrrccccccc}\\hline\n" + "\\# & Dataset & \\#S & \\#F & \\#L & stree & stree default & wodt & " + "j48svm & oc1 & cart & baseRaF\\\\\n" + "\\hline\n" + ) + print(header, file=file_tex) + + +def print_line_tex(number, dataset, line, file_tex): + dataset_name = dataset.replace("_", "\\_") + print_line = ( + f"{number} & {dataset_name} & {line['samp']} & {line['var']} " + f"& {line['cls']}" + ) + for model in models: + item = line[model] + print_line += f" & {item}" + print_line += "\\\\" + print(f"{print_line}", file=file_tex) + + +def print_footer_tex(file_tex): + # old_footer = ( + # "\\hline\n" + # "\\csname @@input\\endcsname wintieloss\n" + # "\\hline\n" + # "\\end{tabular}}\n" + # "\\caption{Datasets used during the experimentation}\n" + # "\\label{table:datasets}\n" + # "\\end{table}" + # ) + footer = "\\hline\n\\end{tabular}}\n\\end{sidewaystable}\n" + print(f"{footer}", file=file_tex) def report_header_content(title, experiment, model_type): @@ -110,7 +185,7 @@ def report_footer(agg): ) -(experiment, model_type, csv_output, compare) = parse_arguments() +(experiment, model_type, csv_output, tex_output, compare) = parse_arguments() dbh = MySQL() database = dbh.get_connection() dt = Datasets(False, False, "tanveer") @@ -123,6 +198,9 @@ fields = ( "Lea", "Dep", ) +if tex_output: + # We need the stree_std column for the tex output + compare = True if not compare: # remove stree_default from fields list and lengths models_tree.pop(1) @@ -140,9 +218,12 @@ for item in [ agg[item] = {} agg[item]["best"] = 0 if csv_output: - f = open(report_csv, "w") - print("dataset, classifier, accuracy", file=f) -for dataset in dt: + file_csv = open(report_csv, "w") + print("dataset, classifier, accuracy", file=file_csv) +if tex_output: + file_tex = open(table_tex, "w") + print_header_tex(file_tex, second=False) +for number, dataset in enumerate(dt): find_one = False # Look for max accuracy for any given dataset line = {"dataset": color + dataset[0]} @@ -154,6 +235,7 @@ for dataset in dt: line["nodes"] = 0 line["leaves"] = 0 line["depth"] = 0 + line_tex = line.copy() for model in models: record = dbh.find_best(dataset[0], model, experiment) if record is None: @@ -168,6 +250,9 @@ for dataset in dt: acc_std = record[11] find_one = True item = f"{accuracy:.4f}±{acc_std:.3f}" + line_tex[model] = item + if round(accuracy, 4) == round(max_accuracy, 4): + line_tex[model] = "\\textbf{" + item + "}" if accuracy == max_accuracy: line[model] = ( TextColor.GREEN + TextColor.BOLD + item + TextColor.ENDC @@ -176,7 +261,12 @@ for dataset in dt: else: line[model] = color + item if csv_output: - print(f"{dataset[0]}, {model}, {accuracy}", file=f) + print(f"{dataset[0]}, {model}, {accuracy}", file=file_csv) + if tex_output: + print_line_tex(number + 1, dataset[0], line_tex, file_tex) + if number == 24: + print_footer_tex(file_tex) + print_header_tex(file_tex, second=True) if not find_one: print(TextColor.FAIL + f"*No results found for {dataset[0]}") else: @@ -186,6 +276,10 @@ for dataset in dt: print(report_line(line)) report_footer(agg) if csv_output: - f.close() + file_csv.close() print(f"{report_csv} file generated") +if tex_output: + print_footer_tex(file_tex) + file_tex.close() + print(f"{table_tex} file generated") dbh.close() diff --git a/report.csv b/report.csv index 48aef0a..8718ed5 100644 --- a/report.csv +++ b/report.csv @@ -1,293 +1,342 @@ dataset, classifier, accuracy balance-scale, stree, 0.97056 +balance-scale, stree_default, 0.91184 balance-scale, wodt, 0.912 balance-scale, j48svm, 0.94 balance-scale, oc1, 0.9192 balance-scale, cart, 0.78816 balance-scale, baseRaF, 0.706738 balloons, stree, 0.86 +balloons, stree_default, 0.653333 balloons, wodt, 0.688333 balloons, j48svm, 0.595 balloons, oc1, 0.62 balloons, cart, 0.671667 balloons, baseRaF, 0.605 breast-cancer-wisc-diag, stree, 0.972764 +breast-cancer-wisc-diag, stree_default, 0.968898 breast-cancer-wisc-diag, wodt, 0.967317 breast-cancer-wisc-diag, j48svm, 0.952878 breast-cancer-wisc-diag, oc1, 0.933477 breast-cancer-wisc-diag, cart, 0.93953 breast-cancer-wisc-diag, baseRaF, 0.965694 breast-cancer-wisc-prog, stree, 0.811128 +breast-cancer-wisc-prog, stree_default, 0.802051 breast-cancer-wisc-prog, wodt, 0.710141 breast-cancer-wisc-prog, j48svm, 0.724038 breast-cancer-wisc-prog, oc1, 0.71 breast-cancer-wisc-prog, cart, 0.699833 breast-cancer-wisc-prog, baseRaF, 0.74485 breast-cancer-wisc, stree, 0.966661 +breast-cancer-wisc, stree_default, 0.966661 breast-cancer-wisc, wodt, 0.946208 breast-cancer-wisc, j48svm, 0.967674 breast-cancer-wisc, oc1, 0.940194 breast-cancer-wisc, cart, 0.940629 breast-cancer-wisc, baseRaF, 0.942857 breast-cancer, stree, 0.734211 +breast-cancer, stree_default, 0.734211 breast-cancer, wodt, 0.650236 breast-cancer, j48svm, 0.707719 breast-cancer, oc1, 0.649728 breast-cancer, cart, 0.65444 breast-cancer, baseRaF, 0.656438 cardiotocography-10clases, stree, 0.712009 +cardiotocography-10clases, stree_default, 0.552558 cardiotocography-10clases, wodt, 0.773706 cardiotocography-10clases, j48svm, 0.830812 cardiotocography-10clases, oc1, 0.795528 cardiotocography-10clases, cart, 0.818864 cardiotocography-10clases, baseRaF, 0.774788 cardiotocography-3clases, stree, 0.891956 +cardiotocography-3clases, stree_default, 0.35207 cardiotocography-3clases, wodt, 0.897509 cardiotocography-3clases, j48svm, 0.927327 cardiotocography-3clases, oc1, 0.899811 cardiotocography-3clases, cart, 0.929258 cardiotocography-3clases, baseRaF, 0.896715 conn-bench-sonar-mines-rocks, stree, 0.755528 +conn-bench-sonar-mines-rocks, stree_default, 0.755528 conn-bench-sonar-mines-rocks, wodt, 0.824959 conn-bench-sonar-mines-rocks, j48svm, 0.73892 conn-bench-sonar-mines-rocks, oc1, 0.710798 conn-bench-sonar-mines-rocks, cart, 0.728711 conn-bench-sonar-mines-rocks, baseRaF, 0.772981 cylinder-bands, stree, 0.715049 +cylinder-bands, stree_default, 0.715049 cylinder-bands, wodt, 0.704074 cylinder-bands, j48svm, 0.726351 cylinder-bands, oc1, 0.67106 cylinder-bands, cart, 0.712703 cylinder-bands, baseRaF, 0.675117 dermatology, stree, 0.971833 +dermatology, stree_default, 0.966087 dermatology, wodt, 0.965557 dermatology, j48svm, 0.955735 dermatology, oc1, 0.916087 dermatology, cart, 0.932766 dermatology, baseRaF, 0.970723 echocardiogram, stree, 0.814758 +echocardiogram, stree_default, 0.808832 echocardiogram, wodt, 0.733875 echocardiogram, j48svm, 0.805527 echocardiogram, oc1, 0.748291 echocardiogram, cart, 0.745043 echocardiogram, baseRaF, 0.753522 fertility, stree, 0.88 +fertility, stree_default, 0.866 fertility, wodt, 0.785 fertility, j48svm, 0.857 fertility, oc1, 0.793 fertility, cart, 0.8 fertility, baseRaF, 0.798 haberman-survival, stree, 0.735637 +haberman-survival, stree_default, 0.735637 haberman-survival, wodt, 0.664707 haberman-survival, j48svm, 0.714056 haberman-survival, oc1, 0.651634 haberman-survival, cart, 0.65 haberman-survival, baseRaF, 0.720133 heart-hungarian, stree, 0.827522 +heart-hungarian, stree_default, 0.817674 heart-hungarian, wodt, 0.764909 heart-hungarian, j48svm, 0.785026 heart-hungarian, oc1, 0.758298 heart-hungarian, cart, 0.760508 heart-hungarian, baseRaF, 0.779804 hepatitis, stree, 0.824516 +hepatitis, stree_default, 0.796129 hepatitis, wodt, 0.785806 hepatitis, j48svm, 0.761935 hepatitis, oc1, 0.756774 hepatitis, cart, 0.765161 hepatitis, baseRaF, 0.773671 ilpd-indian-liver, stree, 0.723498 +ilpd-indian-liver, stree_default, 0.723498 ilpd-indian-liver, wodt, 0.676176 ilpd-indian-liver, j48svm, 0.690339 ilpd-indian-liver, oc1, 0.660139 ilpd-indian-liver, cart, 0.663423 ilpd-indian-liver, baseRaF, 0.696685 ionosphere, stree, 0.953276 +ionosphere, stree_default, 0.866056 ionosphere, wodt, 0.88008 ionosphere, j48svm, 0.891984 ionosphere, oc1, 0.879742 ionosphere, cart, 0.895771 ionosphere, baseRaF, 0.875389 iris, stree, 0.965333 +iris, stree_default, 0.965333 iris, wodt, 0.946 iris, j48svm, 0.947333 iris, oc1, 0.948 iris, cart, 0.938667 iris, baseRaF, 0.953413 led-display, stree, 0.703 +led-display, stree_default, 0.7007 led-display, wodt, 0.7049 led-display, j48svm, 0.7204 led-display, oc1, 0.6993 led-display, cart, 0.7037 led-display, baseRaF, 0.70178 libras, stree, 0.788333 +libras, stree_default, 0.747778 libras, wodt, 0.764167 libras, j48svm, 0.66 libras, oc1, 0.645 libras, cart, 0.655 libras, baseRaF, 0.726722 low-res-spect, stree, 0.865713 +low-res-spect, stree_default, 0.853102 low-res-spect, wodt, 0.856459 low-res-spect, j48svm, 0.83358 low-res-spect, oc1, 0.824671 low-res-spect, cart, 0.829206 low-res-spect, baseRaF, 0.790875 lymphography, stree, 0.823425 +lymphography, stree_default, 0.77046 lymphography, wodt, 0.808782 lymphography, j48svm, 0.778552 lymphography, oc1, 0.734634 lymphography, cart, 0.766276 lymphography, baseRaF, 0.761622 mammographic, stree, 0.81915 +mammographic, stree_default, 0.81915 mammographic, wodt, 0.759839 mammographic, j48svm, 0.821435 mammographic, oc1, 0.768805 mammographic, cart, 0.757131 mammographic, baseRaF, 0.780206 molec-biol-promoter, stree, 0.767056 +molec-biol-promoter, stree_default, 0.764416 molec-biol-promoter, wodt, 0.798528 molec-biol-promoter, j48svm, 0.744935 molec-biol-promoter, oc1, 0.734805 molec-biol-promoter, cart, 0.748701 molec-biol-promoter, baseRaF, 0.667239 musk-1, stree, 0.916388 +musk-1, stree_default, 0.843463 musk-1, wodt, 0.838914 musk-1, j48svm, 0.82693 musk-1, oc1, 0.776401 musk-1, cart, 0.780215 musk-1, baseRaF, 0.834034 oocytes_merluccius_nucleus_4d, stree, 0.835125 +oocytes_merluccius_nucleus_4d, stree_default, 0.810657 oocytes_merluccius_nucleus_4d, wodt, 0.737673 oocytes_merluccius_nucleus_4d, j48svm, 0.741766 oocytes_merluccius_nucleus_4d, oc1, 0.743199 oocytes_merluccius_nucleus_4d, cart, 0.728265 oocytes_merluccius_nucleus_4d, baseRaF, 0.792313 oocytes_merluccius_states_2f, stree, 0.912434 +oocytes_merluccius_states_2f, stree_default, 0.912434 oocytes_merluccius_states_2f, wodt, 0.895115 oocytes_merluccius_states_2f, j48svm, 0.901374 oocytes_merluccius_states_2f, oc1, 0.889223 oocytes_merluccius_states_2f, cart, 0.891193 oocytes_merluccius_states_2f, baseRaF, 0.910551 oocytes_trisopterus_nucleus_2f, stree, 0.800986 +oocytes_trisopterus_nucleus_2f, stree_default, 0.800986 oocytes_trisopterus_nucleus_2f, wodt, 0.751431 oocytes_trisopterus_nucleus_2f, j48svm, 0.756587 oocytes_trisopterus_nucleus_2f, oc1, 0.747697 oocytes_trisopterus_nucleus_2f, cart, 0.734313 oocytes_trisopterus_nucleus_2f, baseRaF, 0.76193 oocytes_trisopterus_states_5b, stree, 0.924441 +oocytes_trisopterus_states_5b, stree_default, 0.9023 oocytes_trisopterus_states_5b, wodt, 0.89165 oocytes_trisopterus_states_5b, j48svm, 0.887943 oocytes_trisopterus_states_5b, oc1, 0.86393 oocytes_trisopterus_states_5b, cart, 0.870263 oocytes_trisopterus_states_5b, baseRaF, 0.922149 parkinsons, stree, 0.882051 +parkinsons, stree_default, 0.882051 parkinsons, wodt, 0.901538 parkinsons, j48svm, 0.844615 parkinsons, oc1, 0.865641 parkinsons, cart, 0.855897 parkinsons, baseRaF, 0.87924 pima, stree, 0.766651 +pima, stree_default, 0.766651 pima, wodt, 0.681591 pima, j48svm, 0.749876 pima, oc1, 0.693027 pima, cart, 0.701172 pima, baseRaF, 0.697005 pittsburg-bridges-MATERIAL, stree, 0.867749 +pittsburg-bridges-MATERIAL, stree_default, 0.787446 pittsburg-bridges-MATERIAL, wodt, 0.79961 pittsburg-bridges-MATERIAL, j48svm, 0.855844 pittsburg-bridges-MATERIAL, oc1, 0.81026 pittsburg-bridges-MATERIAL, cart, 0.783593 pittsburg-bridges-MATERIAL, baseRaF, 0.81136 pittsburg-bridges-REL-L, stree, 0.62519 +pittsburg-bridges-REL-L, stree_default, 0.62519 pittsburg-bridges-REL-L, wodt, 0.617143 pittsburg-bridges-REL-L, j48svm, 0.645048 pittsburg-bridges-REL-L, oc1, 0.604957 pittsburg-bridges-REL-L, cart, 0.625333 pittsburg-bridges-REL-L, baseRaF, 0.622107 pittsburg-bridges-SPAN, stree, 0.658713 +pittsburg-bridges-SPAN, stree_default, 0.630234 pittsburg-bridges-SPAN, wodt, 0.606959 pittsburg-bridges-SPAN, j48svm, 0.621579 pittsburg-bridges-SPAN, oc1, 0.579333 pittsburg-bridges-SPAN, cart, 0.557544 pittsburg-bridges-SPAN, baseRaF, 0.630217 pittsburg-bridges-T-OR-D, stree, 0.861619 +pittsburg-bridges-T-OR-D, stree_default, 0.861619 pittsburg-bridges-T-OR-D, wodt, 0.818429 pittsburg-bridges-T-OR-D, j48svm, 0.838333 pittsburg-bridges-T-OR-D, oc1, 0.831545 pittsburg-bridges-T-OR-D, cart, 0.821619 pittsburg-bridges-T-OR-D, baseRaF, 0.821007 planning, stree, 0.73527 +planning, stree_default, 0.70455 planning, wodt, 0.576847 planning, j48svm, 0.711381 planning, oc1, 0.566988 planning, cart, 0.586712 planning, baseRaF, 0.590586 post-operative, stree, 0.703333 +post-operative, stree_default, 0.573333 post-operative, wodt, 0.535556 post-operative, j48svm, 0.701111 post-operative, oc1, 0.542222 post-operative, cart, 0.567778 post-operative, baseRaF, 0.539375 seeds, stree, 0.952857 +seeds, stree_default, 0.949048 seeds, wodt, 0.940476 seeds, j48svm, 0.909524 seeds, oc1, 0.932381 seeds, cart, 0.900476 seeds, baseRaF, 0.942518 statlog-australian-credit, stree, 0.678261 +statlog-australian-credit, stree_default, 0.667246 statlog-australian-credit, wodt, 0.561594 statlog-australian-credit, j48svm, 0.66029 statlog-australian-credit, oc1, 0.573913 statlog-australian-credit, cart, 0.595507 statlog-australian-credit, baseRaF, 0.678261 statlog-german-credit, stree, 0.7625 +statlog-german-credit, stree_default, 0.7625 statlog-german-credit, wodt, 0.6929 statlog-german-credit, j48svm, 0.7244 statlog-german-credit, oc1, 0.6874 statlog-german-credit, cart, 0.6738 statlog-german-credit, baseRaF, 0.68762 statlog-heart, stree, 0.822963 +statlog-heart, stree_default, 0.822963 statlog-heart, wodt, 0.777778 statlog-heart, j48svm, 0.795926 statlog-heart, oc1, 0.749259 statlog-heart, cart, 0.762222 statlog-heart, baseRaF, 0.747605 statlog-image, stree, 0.956623 +statlog-image, stree_default, 0.850649 statlog-image, wodt, 0.954632 statlog-image, j48svm, 0.967403 statlog-image, oc1, 0.95013 statlog-image, cart, 0.964892 statlog-image, baseRaF, 0.953604 statlog-vehicle, stree, 0.788537 +statlog-vehicle, stree_default, 0.695151 statlog-vehicle, wodt, 0.726492 statlog-vehicle, j48svm, 0.729651 statlog-vehicle, oc1, 0.708496 statlog-vehicle, cart, 0.728367 statlog-vehicle, baseRaF, 0.789572 synthetic-control, stree, 0.95 +synthetic-control, stree_default, 0.938833 synthetic-control, wodt, 0.973167 synthetic-control, j48svm, 0.922333 synthetic-control, oc1, 0.863167 synthetic-control, cart, 0.908333 synthetic-control, baseRaF, 0.971567 tic-tac-toe, stree, 0.984444 +tic-tac-toe, stree_default, 0.983296 tic-tac-toe, wodt, 0.93905 tic-tac-toe, j48svm, 0.983295 tic-tac-toe, oc1, 0.91849 tic-tac-toe, cart, 0.951558 tic-tac-toe, baseRaF, 0.974906 vertebral-column-2clases, stree, 0.852903 +vertebral-column-2clases, stree_default, 0.852903 vertebral-column-2clases, wodt, 0.801935 vertebral-column-2clases, j48svm, 0.84871 vertebral-column-2clases, oc1, 0.815161 vertebral-column-2clases, cart, 0.784839 vertebral-column-2clases, baseRaF, 0.822601 -wine, stree, 0.97581 +wine, stree, 0.979159 +wine, stree_default, 0.97581 wine, wodt, 0.973048 wine, j48svm, 0.979143 wine, oc1, 0.916165 wine, cart, 0.921937 wine, baseRaF, 0.97748 -zoo, stree, 0.955524 +zoo, stree, 0.957524 +zoo, stree_default, 0.947619 zoo, wodt, 0.954429 zoo, j48svm, 0.92381 zoo, oc1, 0.890952