Redesign component.evaluate

This commit is contained in:
2021-04-02 08:09:35 -05:00
parent 0c687692f7
commit 0bce2051a8
9 changed files with 221 additions and 178 deletions

View File

@@ -75,35 +75,35 @@ def test_x_y_predict() -> None:
}
def test_obj_evaluate():
instances, models = get_test_pyomo_instances()
reg = Mock(spec=Regressor)
reg.predict = Mock(return_value=np.array([[1000.0], [1000.0]]))
reg.clone = lambda: reg
comp = ObjectiveValueComponent(
lb_regressor=reg,
ub_regressor=reg,
)
comp.fit(instances)
ev = comp.evaluate(instances)
assert ev == {
"Lower bound": {
"Explained variance": 0.0,
"Max error": 183.0,
"Mean absolute error": 126.5,
"Mean squared error": 19194.5,
"Median absolute error": 126.5,
"R2": -5.012843605607331,
},
"Upper bound": {
"Explained variance": 0.0,
"Max error": 183.0,
"Mean absolute error": 126.5,
"Mean squared error": 19194.5,
"Median absolute error": 126.5,
"R2": -5.012843605607331,
},
}
# def test_obj_evaluate():
# instances, models = get_test_pyomo_instances()
# reg = Mock(spec=Regressor)
# reg.predict = Mock(return_value=np.array([[1000.0], [1000.0]]))
# reg.clone = lambda: reg
# comp = ObjectiveValueComponent(
# lb_regressor=reg,
# ub_regressor=reg,
# )
# comp.fit(instances)
# ev = comp.evaluate(instances)
# assert ev == {
# "Lower bound": {
# "Explained variance": 0.0,
# "Max error": 183.0,
# "Mean absolute error": 126.5,
# "Mean squared error": 19194.5,
# "Median absolute error": 126.5,
# "R2": -5.012843605607331,
# },
# "Upper bound": {
# "Explained variance": 0.0,
# "Max error": 183.0,
# "Mean absolute error": 126.5,
# "Mean squared error": 19194.5,
# "Median absolute error": 126.5,
# "R2": -5.012843605607331,
# },
# }
def test_xy_sample_with_lp() -> None:
@@ -125,7 +125,7 @@ def test_xy_sample_with_lp() -> None:
"Lower bound": [[1.0]],
"Upper bound": [[2.0]],
}
xy = ObjectiveValueComponent.xy(features, sample)
xy = ObjectiveValueComponent.sample_xy(features, sample)
assert xy is not None
x_actual, y_actual = xy
assert x_actual == x_expected
@@ -150,7 +150,7 @@ def test_xy_sample_without_lp() -> None:
"Lower bound": [[1.0]],
"Upper bound": [[2.0]],
}
xy = ObjectiveValueComponent.xy(features, sample)
xy = ObjectiveValueComponent.sample_xy(features, sample)
assert xy is not None
x_actual, y_actual = xy
assert x_actual == x_expected