Create benchmark

This commit is contained in:
2021-09-24 11:18:38 +02:00
parent ebe768f566
commit 2fc188adca
65 changed files with 27900 additions and 0 deletions

81
src/report.py Normal file
View File

@@ -0,0 +1,81 @@
import argparse
import numpy as np
from Experiments import Datasets
from Results import Report, Excel, SQL, ReportBest
"""Build report on screen of a result file, optionally generate excel and sql
file, and can compare results of report with best results obtained by model
If no argument is set, displays the datasets and its characteristics
"""
def parse_arguments():
ap = argparse.ArgumentParser()
ap.add_argument(
"-f",
"--file",
type=str,
required=False,
help="Result file",
)
ap.add_argument(
"-x",
"--excel",
type=bool,
required=False,
help="Generate Excel file",
)
ap.add_argument(
"-q",
"--sql",
type=bool,
required=False,
help="Generate sql file",
)
ap.add_argument(
"-c",
"--compare",
type=bool,
required=False,
help="Compare accuracy with best results",
)
ap.add_argument(
"-b",
"--best",
type=str,
required=False,
help="best results of models",
)
args = ap.parse_args()
return (args.file, args.excel, args.sql, args.compare, args.best)
def default_report():
sets = Datasets()
print(f"{'Dataset':30s} Samp. Feat Cls")
print("=" * 30 + " ===== ==== ===")
for line in sets:
X, y = sets.load(line)
print(
f"{line:30s} {X.shape[0]:5,d} {X.shape[1]:4d} "
f"{len(np.unique(y)):3d}"
)
(file, excel, sql, compare, best) = parse_arguments()
if file is None and best is None:
default_report()
else:
if best is not None:
report = ReportBest(best)
report.report()
else:
report = Report(file, compare)
report.report()
if excel:
excel = Excel(file, compare)
excel.report()
if sql:
sql = SQL(file)
sql.report()