Add Excel tests

This commit is contained in:
2022-04-25 00:46:18 +02:00
parent 840dbec94b
commit a3b4b59b48
20 changed files with 588 additions and 19 deletions

2
.flake8 Normal file
View File

@@ -0,0 +1,2 @@
[flake8]
exclude = .git,__init__.py

View File

@@ -348,10 +348,12 @@ class GridSearch:
platform, platform,
progress_bar=True, progress_bar=True,
folds=5, folds=5,
test=False,
): ):
today = datetime.now() today = datetime.now()
self.time = today.strftime("%H:%M:%S") self.test = test
self.date = today.strftime("%Y-%m-%d") self.time = "12:00:00" if test else today.strftime("%H:%M:%S")
self.date = "2022-02-22" if test else today.strftime("%Y-%m-%d")
self.output_file = os.path.join( self.output_file = os.path.join(
Folders.results, Folders.results,
Files.grid_output( Files.grid_output(
@@ -412,7 +414,7 @@ class GridSearch:
return f"{duration/3600:.3f}h" return f"{duration/3600:.3f}h"
def _store_result(self, name, grid, duration): def _store_result(self, name, grid, duration):
d_message = self._duration_message(duration) d_message = "1s" if self.test else self._duration_message(duration)
message = ( message = (
f"v. {self.version}, Computed on {self.platform} on " f"v. {self.version}, Computed on {self.platform} on "
f"{self.date} at {self.time} " f"{self.date} at {self.time} "

View File

@@ -18,8 +18,8 @@ class BaseReport(abc.ABC):
if not os.path.isfile(os.path.join(Folders.results, file_name)): if not os.path.isfile(os.path.join(Folders.results, file_name)):
raise FileNotFoundError(f"{file_name} does not exists!") raise FileNotFoundError(f"{file_name} does not exists!")
else: else:
file_name = os.path.join(Folders.results, file_name) self.file_name = os.path.join(Folders.results, file_name)
with open(file_name) as f: with open(self.file_name) as f:
self.data = json.load(f) self.data = json.load(f)
self.best_acc_file = best_file self.best_acc_file = best_file
self.lines = self.data if best_file else self.data["results"] self.lines = self.data if best_file else self.data["results"]
@@ -205,7 +205,6 @@ class ReportBest(BaseReport):
self.grid = grid self.grid = grid
file_name = os.path.join(Folders.results, name) file_name = os.path.join(Folders.results, name)
super().__init__(file_name, best_file=True) super().__init__(file_name, best_file=True)
self.compare = False
self.score_name = score self.score_name = score
self.model = model self.model = model
@@ -246,11 +245,6 @@ class ReportBest(BaseReport):
def footer(self, accuracy): def footer(self, accuracy):
self.header_line("*") self.header_line("*")
if self.compare:
for key, value in self._compare_totals.items():
self.header_line(
f" {key} {self._status_meaning(key)} .....: {value:2d}"
)
self.header_line( self.header_line(
f" Scores compared to stree_default accuracy (liblinear-ovr) .: " f" Scores compared to stree_default accuracy (liblinear-ovr) .: "
f"{accuracy/BEST_ACCURACY_STREE:7.4f}" f"{accuracy/BEST_ACCURACY_STREE:7.4f}"

View File

@@ -0,0 +1,81 @@
import os
import csv
import unittest
from openpyxl import load_workbook
from xlsxwriter import Workbook
from ..Results import Excel
from ..Utils import Folders
class ExcelTest(unittest.TestCase):
def __init__(self, *args, **kwargs):
os.chdir(os.path.dirname(os.path.abspath(__file__)))
super().__init__(*args, **kwargs)
def tearDown(self) -> None:
files = [
"results_accuracy_STree_iMac27_2021-09-30_11:42:07_0.xlsx",
"results_accuracy_STree_iMac27_2021-10-27_09:40:40_0.xlsx",
"results_accuracy_ODTE_Galgo_2022-04-20_10:52:20_0.xlsx",
]
for file_name in files:
file_name = os.path.join(Folders.results, file_name)
if os.path.exists(file_name):
os.remove(file_name)
return super().tearDown()
def check_excel_sheet(self, sheet, file_name):
with open(file_name, "r") as f:
expected = csv.reader(f, delimiter=";")
for row, col, value in expected:
if value.isdigit():
value = int(value)
else:
try:
value = float(value)
except ValueError:
pass
self.assertEqual(sheet.cell(int(row), int(col)).value, value)
def test_report_excel_compared(self):
file_name = (
"results/results_accuracy_STree_iMac27_2021-09-30_11:42:07_0.json"
)
report = Excel(file_name, compare=True)
report.report()
file_output = report.get_file_name()
book = load_workbook(file_output)
sheet = book["STree"]
self.check_excel_sheet(sheet, "test_files/excel_compared.test")
def test_report_excel(self):
file_name = (
"results/results_accuracy_STree_iMac27_2021-09-30_11:42:07_0.json"
)
report = Excel(file_name, compare=False)
report.report()
file_output = report.get_file_name()
book = load_workbook(file_output)
sheet = book["STree"]
self.check_excel_sheet(sheet, "test_files/excel.test")
def test_Excel_Add_sheet(self):
file_name = (
"results/results_accuracy_STree_iMac27_2021-10-27_09:40:40_0.json"
)
excel_file_name = file_name.replace(".json", ".xlsx")
book = Workbook(excel_file_name)
excel = Excel(file_name=file_name, book=book)
excel.report()
report = Excel(
file_name="results/results_accuracy_ODTE_Galgo_2022-04-20_10:52:20"
"_0.json",
book=book,
)
report.report()
book.close()
book = load_workbook(excel_file_name)
sheet = book["STree"]
self.check_excel_sheet(sheet, "test_files/excel_add_STree.test")
sheet = book["ODTE"]
self.check_excel_sheet(sheet, "test_files/excel_add_ODTE.test")

View File

@@ -24,6 +24,7 @@ class GridSearchTest(unittest.TestCase):
"progress_bar": False, "progress_bar": False,
"platform": "Test", "platform": "Test",
"folds": 2, "folds": 2,
"test": True,
} }
return GridSearch(**params) return GridSearch(**params)
@@ -66,18 +67,15 @@ class GridSearchTest(unittest.TestCase):
"kernel": "liblinear", "kernel": "liblinear",
"multiclass_strategy": "ovr", "multiclass_strategy": "ovr",
}, },
"", "v. 1.2.4, Computed on Test on 2022-02-22 at 12:00:00 took 1s",
], ],
"balloons": [ "balloons": [
0.625, 0.625,
{"C": 1.0, "kernel": "linear", "multiclass_strategy": "ovr"}, {"C": 1.0, "kernel": "linear", "multiclass_strategy": "ovr"},
"", "v. 1.2.4, Computed on Test on 2022-02-22 at 12:00:00 took 1s",
], ],
} }
dt = Datasets() self.assertSequenceEqual(data, expected)
for dataset in dt:
self.assertEqual(data[dataset][0], expected[dataset][0])
self.assertSequenceEqual(data[dataset][1], expected[dataset][1])
def test_duration_message(self): def test_duration_message(self):
expected = ["47.234s", "5.421m", "1.177h"] expected = ["47.234s", "5.421m", "1.177h"]

View File

@@ -0,0 +1,99 @@
import os
import unittest
from io import StringIO
from unittest.mock import patch
from ..Results import Report, BaseReport, ReportBest
from ..Utils import Symbols
class ReportTest(unittest.TestCase):
def __init__(self, *args, **kwargs):
os.chdir(os.path.dirname(os.path.abspath(__file__)))
super().__init__(*args, **kwargs)
def test_BaseReport(self):
with patch.multiple(BaseReport, __abstractmethods__=set()):
file_name = (
"results/results_accuracy_STree_iMac27_2021-09-30_11:"
"42:07_0.json"
)
a = BaseReport(file_name)
self.assertIsNone(a.header())
self.assertIsNone(a.print_line(None))
self.assertIsNone(a.footer(accuracy=1.0))
def test_report_with_folder(self):
report = Report(
file_name="results/results_accuracy_STree_iMac27_2021-09-30_11:"
"42:07_0.json"
)
with patch("sys.stdout", new=StringIO()) as fake_out:
report.report()
with open("test_files/report.test", "r") as f:
expected = f.read()
self.assertEqual(fake_out.getvalue(), expected)
def test_report_without_folder(self):
report = Report(
file_name="results_accuracy_STree_iMac27_2021-09-30_11:42:07_0"
".json"
)
with patch("sys.stdout", new=StringIO()) as fake_out:
report.report()
with open("test_files/report.test", "r") as f:
expected = f.read()
self.assertEqual(fake_out.getvalue(), expected)
def test_report_compared(self):
report = Report(
file_name="results_accuracy_STree_iMac27_2021-09-30_11:42:07_0"
".json",
compare=True,
)
with patch("sys.stdout", new=StringIO()) as fake_out:
report.report()
with open("test_files/report_compared.test", "r") as f:
expected = f.read()
self.assertEqual(fake_out.getvalue(), expected)
def test_compute_status(self):
file_name = "results_accuracy_STree_iMac27_2021-10-27_09:40:40_0.json"
report = Report(
file_name=file_name,
compare=True,
)
with patch("sys.stdout", new=StringIO()):
report.report()
res = report._compute_status("balloons", 0.99)
self.assertEqual(res, Symbols.better_best)
res = report._compute_status("balloons", 1.0)
self.assertEqual(res, Symbols.better_best)
def test_report_file_not_found(self):
with self.assertRaises(FileNotFoundError):
_ = Report("unknown_file")
def test_report_best(self):
report = ReportBest("accuracy", "STree", best=True, grid=False)
with patch("sys.stdout", new=StringIO()) as fake_out:
report.report()
with open("test_files/report_best.test", "r") as f:
expected = f.read()
self.assertEqual(fake_out.getvalue(), expected)
def test_report_grid(self):
report = ReportBest("accuracy", "STree", best=False, grid=True)
with patch("sys.stdout", new=StringIO()) as fake_out:
report.report()
with open("test_files/report_grid.test", "r") as f:
expected = f.read()
self.assertEqual(fake_out.getvalue(), expected)
def test_report_best_both(self):
report = ReportBest("accuracy", "STree", best=True, grid=True)
with patch("sys.stdout", new=StringIO()) as fake_out:
report.report()
with open("test_files/report_best.test", "r") as f:
expected = f.read()
self.assertEqual(fake_out.getvalue(), expected)

View File

@@ -0,0 +1,81 @@
import os
import csv
import unittest
from openpyxl import load_workbook
from xlsxwriter import Workbook
from ..Results import Excel
from ..Utils import Folders
class SQLTest(unittest.TestCase):
def __init__(self, *args, **kwargs):
os.chdir(os.path.dirname(os.path.abspath(__file__)))
super().__init__(*args, **kwargs)
def tearDown(self) -> None:
files = [
"results_accuracy_STree_iMac27_2021-09-30_11:42:07_0.xlsx",
"results_accuracy_STree_iMac27_2021-10-27_09:40:40_0.xlsx",
"results_accuracy_ODTE_Galgo_2022-04-20_10:52:20_0.sql",
]
for file_name in files:
file_name = os.path.join(Folders.results, file_name)
if os.path.exists(file_name):
os.remove(file_name)
return super().tearDown()
def check_excel_sheet(self, sheet, file_name):
with open(file_name, "r") as f:
expected = csv.reader(f, delimiter=";")
for row, col, value in expected:
if value.isdigit():
value = int(value)
else:
try:
value = float(value)
except ValueError:
pass
self.assertEqual(sheet.cell(int(row), int(col)).value, value)
def test_report_excel_compared(self):
file_name = (
"results/results_accuracy_STree_iMac27_2021-09-30_11:42:07_0.json"
)
report = Excel(file_name, compare=True)
report.report()
file_output = report.get_file_name()
book = load_workbook(file_output)
sheet = book["STree"]
self.check_excel_sheet(sheet, "test_files/excel_compared.test")
def test_report_excel(self):
file_name = (
"results/results_accuracy_STree_iMac27_2021-09-30_11:42:07_0.json"
)
report = Excel(file_name, compare=False)
report.report()
file_output = report.get_file_name()
book = load_workbook(file_output)
sheet = book["STree"]
self.check_excel_sheet(sheet, "test_files/excel.test")
def test_Excel_Add_sheet(self):
file_name = (
"results/results_accuracy_STree_iMac27_2021-10-27_09:40:40_0.json"
)
excel_file_name = file_name.replace(".json", ".xlsx")
book = Workbook(excel_file_name)
excel = Excel(file_name=file_name, book=book)
excel.report()
report = Excel(
file_name="results/results_accuracy_ODTE_Galgo_2022-04-20_10:52:20"
"_0.json",
book=book,
)
report.report()
book.close()
book = load_workbook(excel_file_name)
sheet = book["STree"]
self.check_excel_sheet(sheet, "test_files/excel_add_STree.test")
sheet = book["ODTE"]
self.check_excel_sheet(sheet, "test_files/excel_add_ODTE.test")

View File

@@ -121,6 +121,7 @@ class UtilTest(unittest.TestCase):
"results_accuracy_STree_iMac27_2021-09-30_11:42:07_0.json", "results_accuracy_STree_iMac27_2021-09-30_11:42:07_0.json",
"results_accuracy_STree_macbook-pro_2021-11-01_19:17:07_0." "results_accuracy_STree_macbook-pro_2021-11-01_19:17:07_0."
"json", "json",
"results_accuracy_ODTE_Galgo_2022-04-20_10:52:20_0.json",
], ],
) )
self.assertCountEqual( self.assertCountEqual(

View File

@@ -4,6 +4,9 @@ from .Dataset_test import DatasetTest
from .BestResults_test import BestResultTest from .BestResults_test import BestResultTest
from .Experiment_test import ExperimentTest from .Experiment_test import ExperimentTest
from .GridSearch_test import GridSearchTest from .GridSearch_test import GridSearchTest
from .Report_test import ReportTest
from .Excel_test import ExcelTest
from .SQL_test import SQLTest
all = [ all = [
"UtilTest", "UtilTest",
@@ -12,4 +15,7 @@ all = [
"BestResultTest", "BestResultTest",
"ExperimentTest", "ExperimentTest",
"GridSearchTest", "GridSearchTest",
"ReportTest",
"ExcelTest",
"SQLTest",
] ]

View File

@@ -6,7 +6,7 @@
"kernel": "liblinear", "kernel": "liblinear",
"multiclass_strategy": "ovr" "multiclass_strategy": "ovr"
}, },
"v. 1.2.4, Computed on Test on 2022-04-24 at 00:18:17 took 0.261s" "v. 1.2.4, Computed on Test on 2022-02-22 at 12:00:00 took 1s"
], ],
"balloons": [ "balloons": [
0.625, 0.625,
@@ -15,6 +15,6 @@
"kernel": "linear", "kernel": "linear",
"multiclass_strategy": "ovr" "multiclass_strategy": "ovr"
}, },
"v. 1.2.4, Computed on Test on 2022-04-24 at 00:18:17 took 0.478s" "v. 1.2.4, Computed on Test on 2022-02-22 at 12:00:00 took 1s"
] ]
} }

View File

@@ -0,0 +1,57 @@
{
"score_name": "accuracy",
"title": "Gridsearched hyperparams v022.1b random_init",
"model": "ODTE",
"version": "0.3.2",
"stratified": false,
"folds": 5,
"date": "2022-04-20",
"time": "10:52:20",
"duration": 22591.471411943436,
"seeds": [57, 31, 1714, 17, 23, 79, 83, 97, 7, 1],
"platform": "Galgo",
"results": [
{
"dataset": "balance-scale",
"samples": 625,
"features": 4,
"classes": 3,
"hyperparameters": {
"base_estimator__C": 57,
"base_estimator__gamma": 0.1,
"base_estimator__kernel": "rbf",
"base_estimator__multiclass_strategy": "ovr",
"n_estimators": 100,
"n_jobs": -1
},
"nodes": 7.361199999999999,
"leaves": 4.180599999999999,
"depth": 3.536,
"score": 0.96352,
"score_std": 0.024949741481626608,
"time": 0.31663217544555666,
"time_std": 0.19918813895255585
},
{
"dataset": "balloons",
"samples": 16,
"features": 4,
"classes": 2,
"hyperparameters": {
"base_estimator__C": 5,
"base_estimator__gamma": 0.14,
"base_estimator__kernel": "rbf",
"base_estimator__multiclass_strategy": "ovr",
"n_estimators": 100,
"n_jobs": -1
},
"nodes": 2.9951999999999996,
"leaves": 1.9975999999999998,
"depth": 1.9975999999999998,
"score": 0.785,
"score_std": 0.2461311755051675,
"time": 0.11560620784759522,
"time_std": 0.012784241828599895
}
]
}

View File

@@ -0,0 +1,48 @@
1;1;" Report STree ver. 1.2.3 with 5 Folds cross validation and 10 random seeds. 2021-09-30 11:42:07"
2;1;" With gridsearched hyperparameters"
3;1;" Score is accuracy"
3;2;" Execution time"
3;5;" 624.25 s"
3;7;" "
3;8;"Platform"
3;9;"iMac27"
3;10;"Random seeds: [57, 31, 1714, 17, 23, 79, 83, 97, 7, 1]"
4;5;" 0.17 h"
4;10;"Stratified: False"
6;1;"Dataset"
6;2;"Samples"
6;3;"Features"
6;4;"Classes"
6;5;"Nodes"
6;6;"Leaves"
6;7;"Depth"
6;8;"Score"
6;9;"Score Std."
6;10;"Time"
6;11;"Time Std."
6;12;"Hyperparameters"
7;1;"balance-scale"
7;2;"625"
7;3;"4"
7;4;"3"
7;5;"7"
7;6;"4"
7;7;"3"
7;8;"0.97056"
7;9;"0.0150468069702512"
7;10;"0.01404867172241211"
7;11;"0.002026269126958884"
7;12;"{'C': 10000.0, 'gamma': 0.1, 'kernel': 'rbf', 'max_iter': 10000.0, 'multiclass_strategy': 'ovr'}"
8;1;"balloons"
8;2;"16"
8;3;"4"
8;4;"2"
8;5;"3"
8;6;"2"
8;7;"2"
8;8;"0.86"
8;9;"0.2850146195080759"
8;10;"0.0008541679382324218"
8;11;"3.629469326417878e-05"
8;12;"{'C': 7, 'gamma': 0.1, 'kernel': 'rbf', 'max_iter': 10000.0, 'multiclass_strategy': 'ovr'}"
10;1;"** Accuracy compared to stree_default (liblinear-ovr) .: 0.0454"

View File

@@ -0,0 +1,48 @@
1;1;" Report ODTE ver. 0.3.2 with 5 Folds cross validation and 10 random seeds. 2022-04-20 10:52:20"
2;1;" Gridsearched hyperparams v022.1b random_init"
3;1;" Score is accuracy"
3;2;" Execution time"
3;5;"22,591.47 s"
3;7;" "
3;8;"Platform"
3;9;"Galgo"
3;10;"Random seeds: [57, 31, 1714, 17, 23, 79, 83, 97, 7, 1]"
4;5;" 6.28 h"
4;10;"Stratified: False"
6;1;"Dataset"
6;2;"Samples"
6;3;"Features"
6;4;"Classes"
6;5;"Nodes"
6;6;"Leaves"
6;7;"Depth"
6;8;"Score"
6;9;"Score Std."
6;10;"Time"
6;11;"Time Std."
6;12;"Hyperparameters"
7;1;"balance-scale"
7;2;"625"
7;3;"4"
7;4;"3"
7;5;"7.361199999999999"
7;6;"4.180599999999999"
7;7;"3.536"
7;8;"0.96352"
7;9;"0.02494974148162661"
7;10;"0.3166321754455567"
7;11;"0.1991881389525559"
7;12;"{'base_estimator__C': 57, 'base_estimator__gamma': 0.1, 'base_estimator__kernel': 'rbf', 'base_estimator__multiclass_strategy': 'ovr', 'n_estimators': 100, 'n_jobs': -1}"
8;1;"balloons"
8;2;"16"
8;3;"4"
8;4;"2"
8;5;"2.9952"
8;6;"1.9976"
8;7;"1.9976"
8;8;"0.785"
8;9;"0.2461311755051675"
8;10;"0.1156062078475952"
8;11;"0.0127842418285999"
8;12;"{'base_estimator__C': 5, 'base_estimator__gamma': 0.14, 'base_estimator__kernel': 'rbf', 'base_estimator__multiclass_strategy': 'ovr', 'n_estimators': 100, 'n_jobs': -1}"
10;1;"** Accuracy compared to stree_default (liblinear-ovr) .: 0.0434"

View File

@@ -0,0 +1,46 @@
1;1;" Report STree ver. 1.2.3 with 5 Folds cross validation and 10 random seeds. 2021-10-27 09:40:40"
2;1;" default A"
3;1;" Score is accuracy"
3;2;" Execution time"
3;5;"3,395.01 s"
3;7;" "
3;8;"Platform"
3;9;"iMac27"
3;10;"Random seeds: [57, 31, 1714, 17, 23, 79, 83, 97, 7, 1]"
4;5;" 0.94 h"
4;10;"Stratified: False"
6;1;"Dataset"
6;2;"Samples"
6;3;"Features"
6;4;"Classes"
6;5;"Nodes"
6;6;"Leaves"
6;7;"Depth"
6;8;"Score"
6;9;"Score Std."
6;10;"Time"
6;11;"Time Std."
7;1;"balance-scale"
7;2;"625"
7;3;"4"
7;4;"3"
7;5;"11.08"
7;6;"5.9"
7;7;"5.9"
7;8;"0.98"
7;9;"0.001"
7;10;"0.2852065515518188"
7;11;"0.06031593282605064"
8;1;"balloons"
8;2;"16"
8;3;"4"
8;4;"2"
8;5;"4.12"
8;6;"2.56"
8;7;"2.56"
8;8;"0.695"
8;9;"0.2756860130252853"
8;10;"0.02120100021362305"
8;11;"0.003526023309468471"
8;12;"{'splitter': 'iwss', 'max_features': 'auto'}"
10;1;"** Accuracy compared to stree_default (liblinear-ovr) .: 0.0416"

View File

@@ -0,0 +1,52 @@
1;1;" Report STree ver. 1.2.3 with 5 Folds cross validation and 10 random seeds. 2021-09-30 11:42:07"
2;1;" With gridsearched hyperparameters"
3;1;" Score is accuracy"
3;2;" Execution time"
3;5;" 624.25 s"
3;8;"Platform"
3;9;"iMac27"
3;10;"Random seeds: [57, 31, 1714, 17, 23, 79, 83, 97, 7, 1]"
4;10;"Stratified: False"
6;1;"Dataset"
6;2;"Samples"
6;3;"Features"
6;4;"Classes"
6;5;"Nodes"
6;6;"Leaves"
6;7;"Depth"
6;8;"Score"
6;9;"Stat"
6;10;"Score Std."
6;11;"Time"
6;12;"Time Std."
6;13;"Hyperparameters"
7;1;"balance-scale"
7;2;625
7;3;4
7;4;3
7;5;7
7;6;4
7;7;3
7;8;0.97056
7;9;" "
7;10;0.0150468069702512
7;11;0.01404867172241211
7;12;0.002026269126958884
7;13;"{'C': 10000.0, 'gamma': 0.1, 'kernel': 'rbf', 'max_iter': 10000.0, 'multiclass_strategy': 'ovr'}"
8;1;"balloons"
8;2;16
8;3;4
8;4;2
8;5;3
8;6;2
8;7;2
8;8;0.86
8;9;"✔"
8;10;0.2850146195080759
8;11;0.0008541679382324218
8;12;3.629469326417878e-05
8;13;"{'C': 7, 'gamma': 0.1, 'kernel': 'rbf', 'max_iter': 10000.0, 'multiclass_strategy': 'ovr'}"
11;2;"✔"
11;3;1
11;4;"Equal to best"
13;1;"** Accuracy compared to stree_default (liblinear-ovr) .: 0.0454"

View File

@@ -0,0 +1,15 @@
***********************************************************************************************************************
* Report STree ver. 1.2.3 with 5 Folds cross validation and 10 random seeds. 2021-09-30 11:42:07 *
* With gridsearched hyperparameters *
* Random seeds: [57, 31, 1714, 17, 23, 79, 83, 97, 7, 1] Stratified: False *
* Execution took 624.25 seconds, 0.17 hours, on iMac27 *
* Score is accuracy *
***********************************************************************************************************************
Dataset Samp Feat. Cls Nodes Leaves Depth Score Time Hyperparameters
============================== ===== ===== === ======= ======= ======= =============== ================ ===============
balance-scale 625 4 3 7.00 4.00 3.00 0.970560±0.0150 0.014049±0.0020 {'C': 10000.0, 'gamma': 0.1, 'kernel': 'rbf', 'max_iter': 10000.0, 'multiclass_strategy': 'ovr'}
balloons 16 4 2 3.00 2.00 2.00 0.860000±0.2850 0.000854±0.0000 {'C': 7, 'gamma': 0.1, 'kernel': 'rbf', 'max_iter': 10000.0, 'multiclass_strategy': 'ovr'}
***********************************************************************************************************************
* Accuracy compared to stree_default (liblinear-ovr) .: 0.0454 *
***********************************************************************************************************************

View File

@@ -0,0 +1,11 @@
******************************************************************************************************************************************************************
* Report Best accuracy Scores with STree in any platform *
******************************************************************************************************************************************************************
Dataset Score File/Message Hyperparameters
============================== ======== ============================================================================ =============================================
balance-scale 0.980000 results_accuracy_STree_iMac27_2021-10-27_09:40:40_0.json {'splitter': 'iwss', 'max_features': 'auto'}
balloons 0.860000 results_accuracy_STree_iMac27_2021-09-30_11:42:07_0.json {'C': 7, 'gamma': 0.1, 'kernel': 'rbf', 'max_iter': 10000.0, 'multiclass_strategy': 'ovr'}
******************************************************************************************************************************************************************
* Scores compared to stree_default accuracy (liblinear-ovr) .: 0.0457 *
******************************************************************************************************************************************************************

View File

@@ -0,0 +1,16 @@
***********************************************************************************************************************
* Report STree ver. 1.2.3 with 5 Folds cross validation and 10 random seeds. 2021-09-30 11:42:07 *
* With gridsearched hyperparameters *
* Random seeds: [57, 31, 1714, 17, 23, 79, 83, 97, 7, 1] Stratified: False *
* Execution took 624.25 seconds, 0.17 hours, on iMac27 *
* Score is accuracy *
***********************************************************************************************************************
Dataset Samp Feat. Cls Nodes Leaves Depth Score Time Hyperparameters
============================== ===== ===== === ======= ======= ======= =============== ================ ===============
balance-scale 625 4 3 7.00 4.00 3.00 0.970560±0.0150 0.014049±0.0020 {'C': 10000.0, 'gamma': 0.1, 'kernel': 'rbf', 'max_iter': 10000.0, 'multiclass_strategy': 'ovr'}
balloons 16 4 2 3.00 2.00 2.00 0.860000±0.2850✔ 0.000854±0.0000 {'C': 7, 'gamma': 0.1, 'kernel': 'rbf', 'max_iter': 10000.0, 'multiclass_strategy': 'ovr'}
***********************************************************************************************************************
* ✔ Equal to best .....: 1 *
* Accuracy compared to stree_default (liblinear-ovr) .: 0.0454 *
***********************************************************************************************************************

View File

@@ -0,0 +1,11 @@
******************************************************************************************************************************************************************
* Report Grid accuracy Scores with STree in any platform *
******************************************************************************************************************************************************************
Dataset Score File/Message Hyperparameters
============================== ======== ============================================================================ =============================================
balance-scale 0.919995 v. 1.2.4, Computed on Test on 2022-02-22 at 12:00:00 took 1s {'C': 1.0, 'kernel': 'liblinear', 'multiclass_strategy': 'ovr'}
balloons 0.625000 v. 1.2.4, Computed on Test on 2022-02-22 at 12:00:00 took 1s {'C': 1.0, 'kernel': 'linear', 'multiclass_strategy': 'ovr'}
******************************************************************************************************************************************************************
* Scores compared to stree_default accuracy (liblinear-ovr) .: 0.0384 *
******************************************************************************************************************************************************************

View File

@@ -3,4 +3,5 @@ scikit-learn
odte odte
mufs mufs
xlsxwriter xlsxwriter
openpyxl
tqdm tqdm