mirror of
https://github.com/Doctorado-ML/benchmark.git
synced 2025-08-17 00:15:55 +00:00
109 lines
2.5 KiB
Python
Executable File
109 lines
2.5 KiB
Python
Executable File
#!/usr/bin/env python
|
|
import argparse
|
|
import numpy as np
|
|
from Experiments import Datasets
|
|
from Results import Report, Excel, SQL, ReportBest
|
|
from Utils import Files, TextColor
|
|
|
|
"""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",
|
|
)
|
|
ap.add_argument(
|
|
"-s",
|
|
"--score",
|
|
type=str,
|
|
required=False,
|
|
default="accuracy",
|
|
help="score used in best results model",
|
|
)
|
|
args = ap.parse_args()
|
|
|
|
return (
|
|
args.file,
|
|
args.excel,
|
|
args.sql,
|
|
args.compare,
|
|
args.best,
|
|
args.score,
|
|
)
|
|
|
|
|
|
def default_report():
|
|
sets = Datasets()
|
|
color_line = TextColor.LINE1
|
|
print(color_line, end="")
|
|
print(f"{'Dataset':30s} Samp. Feat Cls")
|
|
print("=" * 30 + " ===== ==== ===")
|
|
for line in sets:
|
|
X, y = sets.load(line)
|
|
color_line = (
|
|
TextColor.LINE2
|
|
if color_line == TextColor.LINE1
|
|
else TextColor.LINE1
|
|
)
|
|
print(color_line, end="")
|
|
print(
|
|
f"{line:30s} {X.shape[0]:5,d} {X.shape[1]:4d} "
|
|
f"{len(np.unique(y)):3d}"
|
|
)
|
|
|
|
|
|
(file, excel, sql, compare, best, score) = parse_arguments()
|
|
|
|
if file is None and best is None:
|
|
default_report()
|
|
else:
|
|
if best is not None:
|
|
report = ReportBest(score, best)
|
|
report.report()
|
|
else:
|
|
report = Report(file, compare)
|
|
report.report()
|
|
if excel:
|
|
excel = Excel(file, compare)
|
|
excel.report()
|
|
Files.open(excel.get_file_name())
|
|
if sql:
|
|
sql = SQL(file)
|
|
sql.report()
|