summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorBirte Kristina Friesel <birte.friesel@uos.de>2023-12-20 12:16:51 +0100
committerBirte Kristina Friesel <birte.friesel@uos.de>2023-12-20 12:16:51 +0100
commitc4c14295b205a8a780fc625b7c3bf6e2be96a0ee (patch)
tree2f052bc59b6715e7b8bf9f3bd223d350c0bb972f /bin
parent66c2fe62fbde3344161e1de385760cf41284045a (diff)
Do not run XV on LUT model; it's not helpful.
--show-quality=table now always compares LUT (training data) to model (training or XV) and static (training or XV)
Diffstat (limited to 'bin')
-rwxr-xr-xbin/analyze-archive.py25
-rwxr-xr-xbin/analyze-kconfig.py22
-rwxr-xr-xbin/analyze-log.py8
3 files changed, 22 insertions, 33 deletions
diff --git a/bin/analyze-archive.py b/bin/analyze-archive.py
index d939c44..64792fd 100755
--- a/bin/analyze-archive.py
+++ b/bin/analyze-archive.py
@@ -626,15 +626,7 @@ if __name__ == "__main__":
if len(show_models):
print("--- LUT ---")
lut_model = model.get_param_lut()
-
- if xv_method == "montecarlo":
- lut_quality, _ = xv.montecarlo(
- lambda m: m.get_param_lut(fallback=True), xv_count
- )
- elif xv_method == "kfold":
- lut_quality, _ = xv.kfold(lambda m: m.get_param_lut(fallback=True), xv_count)
- else:
- lut_quality = model.assess(lut_model)
+ lut_quality = model.assess(lut_model)
if len(show_models):
print("--- param model ---")
@@ -772,9 +764,11 @@ if __name__ == "__main__":
if "table" in show_quality or "all" in show_quality:
dfatool.cli.model_quality_table(
- ["static", "parameterized", "LUT"],
- [static_quality, analytic_quality, lut_quality],
- [None, param_info, None],
+ lut=lut_quality,
+ model=analytic_quality,
+ static=static_quality,
+ model_info=param_info,
+ xv_method=xv_method,
)
if args.with_substates:
for submodel in model.submodel_by_name.values():
@@ -785,9 +779,10 @@ if __name__ == "__main__":
sub_param_model, sub_param_info = submodel.get_fitted()
sub_analytic_quality = submodel.assess(sub_param_model)
dfatool.cli.model_quality_table(
- ["static", "parameterized", "LUT"],
- [sub_static_quality, sub_analytic_quality, sub_lut_quality],
- [None, sub_param_info, None],
+ lut=sub_lut_quality,
+ model=sub_analytic_quality,
+ static=sub_static_quality,
+ model_info=sub_param_info,
)
if "overall" in show_quality or "all" in show_quality:
diff --git a/bin/analyze-kconfig.py b/bin/analyze-kconfig.py
index 0900255..7eb63c8 100755
--- a/bin/analyze-kconfig.py
+++ b/bin/analyze-kconfig.py
@@ -418,6 +418,7 @@ def main():
static_model = model.get_static()
try:
lut_model = model.get_param_lut()
+ lut_quality = model.assess(lut_model)
except RuntimeError as e:
if args.force_tree:
# this is to be expected
@@ -425,6 +426,7 @@ def main():
else:
logging.warning(f"Skipping LUT model: {e}")
lut_model = None
+ lut_quality = None
if args.export_csv:
for name in model.names:
@@ -444,24 +446,12 @@ def main():
static_quality, _ = xv.montecarlo(
lambda m: m.get_static(), xv_count, static=True
)
- if lut_model:
- lut_quality, _ = xv.montecarlo(
- lambda m: m.get_param_lut(fallback=True), xv_count, static=True
- )
- else:
- lut_quality = None
xv.export_filename = args.export_xv
analytic_quality, xv_analytic_models = xv.montecarlo(
lambda m: m.get_fitted()[0], xv_count
)
elif xv_method == "kfold":
static_quality, _ = xv.kfold(lambda m: m.get_static(), xv_count, static=True)
- if lut_model:
- lut_quality, _ = xv.kfold(
- lambda m: m.get_param_lut(fallback=True), xv_count, static=True
- )
- else:
- lut_quality = None
xv.export_filename = args.export_xv
analytic_quality, xv_analytic_models = xv.kfold(
lambda m: m.get_fitted()[0], xv_count
@@ -521,9 +511,11 @@ def main():
else:
print("Model error on training data:")
dfatool.cli.model_quality_table(
- ["static", "parameterized", "LUT"],
- [static_quality, analytic_quality, lut_quality],
- [None, param_info, None],
+ lut=lut_quality,
+ model=analytic_quality,
+ static=static_quality,
+ model_info=param_info,
+ xv_method=xv_method,
)
if not args.show_quality:
diff --git a/bin/analyze-log.py b/bin/analyze-log.py
index 4a74116..4f5e420 100755
--- a/bin/analyze-log.py
+++ b/bin/analyze-log.py
@@ -284,9 +284,11 @@ def main():
else:
print("Model error on training data:")
dfatool.cli.model_quality_table(
- ["static", "parameterized", "LUT"],
- [static_quality, analytic_quality, lut_quality],
- [None, param_info, None],
+ lut=lut_quality,
+ model=analytic_quality,
+ static=static_quality,
+ model_info=param_info,
+ xv_method=xv_method,
)
if args.export_model: