increasing the number of tests in generate_scenarios_data

This commit is contained in:
Khalim Conn-Kowlessar 2024-10-16 19:55:15 +01:00
parent 15bcd46e24
commit 135831febb

View file

@ -71,6 +71,18 @@ scenario_properties = [
{}, {},
[0], [0],
], ],
[
["internal_wall_insulation", "suspended_floor_insulation"],
"13",
{},
[0, 1],
],
[
["external_wall_insulation", "suspended_floor_insulation"],
"13",
{},
[0, 1],
],
[["solar", "windows"], "15", {"photo_supply_ending": 50}, [0, 1]], [["solar", "windows"], "15", {"photo_supply_ending": 50}, [0, 1]],
], ],
}, },
@ -85,6 +97,24 @@ scenario_properties = [
{}, {},
[0, 1], [0, 1],
], ],
[
["loft_insulation"],
"2",
{},
[0],
],
[
["cavity_wall_insulation", "loft_insulation", "solid_floor_insulation"],
"12",
{},
[0],
],
[
["cavity_wall_insulation", "loft_insulation", "solid_floor_insulation", "low_energy_lighting"],
"13",
{},
[0],
],
], ],
}, },
{ {
@ -287,7 +317,19 @@ scenario_properties = [
], ],
[ [
["double_glazing", "internal_wall_insulation", "suspended_floor_insulation"], ["double_glazing", "internal_wall_insulation", "suspended_floor_insulation"],
"11", "10",
{},
[0, 1, 2]
],
[
["internal_wall_insulation"],
"5",
{},
[0]
],
[
["internal_wall_insulation", "suspended_floor_insulation"],
"7",
{}, {},
[0, 1, 2] [0, 1, 2]
], ],
@ -533,6 +575,18 @@ scenario_properties = [
{}, {},
[0, 1, 2] [0, 1, 2]
], ],
[
["internal_wall_insulation"],
"5",
{},
[0]
],
[
["internal_wall_insulation", "low_energy_lighting"],
"5",
{},
[0, 1]
],
], ],
}, },
@ -653,17 +707,35 @@ scenario_properties = [
"measures": [ "measures": [
[["secondary_glazing", "low_energy_lighting"], "2", {}, [0, 1]], [["secondary_glazing", "low_energy_lighting"], "2", {}, [0, 1]],
[ [
["secondary_glazing", "low_energy_lighting", "internal_wall_insulation", "suspending_floor_insulation"], ["secondary_glazing", "low_energy_lighting", "internal_wall_insulation", "suspended_floor_insulation"],
"9", "9",
{}, {},
[0, 1, 2, 3] [0, 1, 2, 3]
], ],
[ [
["double_glazing", "low_energy_lighting", "internal_wall_insulation", "suspending_floor_insulation"], ["double_glazing", "low_energy_lighting", "internal_wall_insulation", "suspended_floor_insulation"],
"11", "11",
{}, {},
[0, 1, 2, 3] [0, 1, 2, 3]
], ],
[
["internal_wall_insulation"],
"6",
{},
[0]
],
[
["internal_wall_insulation", "suspended_floor_insulation"],
"7",
{},
[0, 1]
],
[
["internal_wall_insulation", "suspended_floor_insulation", "low_energy_lighting"],
"8",
{},
[0, 1, 2]
],
], ],
}, },
@ -795,6 +867,18 @@ scenario_properties = [
{}, {},
[0, 1, 2] [0, 1, 2]
], ],
[
["internal_wall_insulation"],
"8",
{},
[0]
],
[
["low_energy_lighting", "internal_wall_insulation"],
"10",
{},
[0, 1, 2]
],
], ],
}, },
@ -963,6 +1047,18 @@ scenario_properties = [
{}, {},
[0, 1, 2] [0, 1, 2]
], ],
[
["internal_wall_insulation"],
"6",
{},
[0, 1, 2]
],
[
["internal_wall_insulation", "low_energy_lighting"],
"7",
{},
[0, 1, 2]
],
], ],
}, },
@ -1164,7 +1260,6 @@ scenario_properties = [
], ],
}, },
] ]
recommendations_scoring_data = [] recommendations_scoring_data = []
for scenario_property in tqdm(scenario_properties): for scenario_property in tqdm(scenario_properties):
@ -1230,20 +1325,7 @@ for scenario_property in tqdm(scenario_properties):
) )
} }
recommender = Recommendations(property_instance=p, materials=materials, default_u_values=True)
property_recommendations = recommender.recommend()
wall_recommendations = recommender.wall_recomender.recommendations
loft_recommendations = recommender.roof_recommender.recommendations
floor_recommendations = recommender.floor_recommender.recommendations
solar_recommendations = recommender.solar_recommender.recommendation
windows_recommendations = recommender.windows_recommender.recommendation
led_recommendations = recommender.lighting_recommender.recommendation
p.create_base_difference_epc_record(cleaned_lookup=cleaned)
scoring_list = [] scoring_list = []
# Create the record for each of the different measures # Create the record for each of the different measures
for measure_impact_override in scenario_property["measures"]: for measure_impact_override in scenario_property["measures"]:
@ -1251,6 +1333,20 @@ for scenario_property in tqdm(scenario_properties):
impact = measure_impact_override[1] impact = measure_impact_override[1]
override = measure_impact_override[2] override = measure_impact_override[2]
recommender = Recommendations(
property_instance=p, materials=materials, default_u_values=True, inclusions=measure
)
property_recommendations = recommender.recommend()
wall_recommendations = recommender.wall_recomender.recommendations.copy()
loft_recommendations = recommender.roof_recommender.recommendations.copy()
floor_recommendations = recommender.floor_recommender.recommendations.copy()
solar_recommendations = recommender.solar_recommender.recommendation.copy()
windows_recommendations = recommender.windows_recommender.recommendation.copy()
led_recommendations = recommender.lighting_recommender.recommendation.copy()
p.create_base_difference_epc_record(cleaned_lookup=cleaned)
wall_recs = [] wall_recs = []
loft_recs = [] loft_recs = []
floor_recs = [] floor_recs = []
@ -1299,7 +1395,12 @@ for scenario_property in tqdm(scenario_properties):
if rec["type"] == "suspended_floor_insulation": if rec["type"] == "suspended_floor_insulation":
floor_recs.append(rec) floor_recs.append(rec)
combi_list = [wall_recs, loft_recs, solar_recs, windows_recs, lighting_recs, floor_recs] if "solid_floor_insulation" in measure:
for rec in floor_recommendations:
if rec["type"] == "solid_floor_insulation":
floor_recs.append(rec)
combi_list = [wall_recs, loft_recs, floor_recs, solar_recs, windows_recs, lighting_recs]
combi_list = [element for element in combi_list if len(element) != 0] combi_list = [element for element in combi_list if len(element) != 0]
all_combi_recommendations = list(itertools.product(*combi_list)) all_combi_recommendations = list(itertools.product(*combi_list))
@ -1312,7 +1413,7 @@ for scenario_property in tqdm(scenario_properties):
property_id=i, property_id=i,
primary_recommendation_id=i, primary_recommendation_id=i,
recommendation_record=recommendation_record, recommendation_record=recommendation_record,
recommendations=combi, recommendations=list(combi),
) )
if override is not None: if override is not None:
@ -1372,11 +1473,11 @@ sap_impact = sap_impact[
# Get some metrics - MAPE for local testing # Get some metrics - MAPE for local testing
mae = mean_absolute_error(sap_impact["actual_post_sap"], sap_impact["predicted_post_sap"]) mae = mean_absolute_error(sap_impact["actual_post_sap"], sap_impact["predicted_post_sap"])
# 2.2958333333333347 # 1.6828571428571433
mape = mean_absolute_percentage_error(sap_impact["actual_post_sap"], sap_impact["predicted_post_sap"]) mape = mean_absolute_percentage_error(sap_impact["actual_post_sap"], sap_impact["predicted_post_sap"])
# 0.034359867214274246 # 0.02510877585853886
mape_impact = mean_absolute_percentage_error(sap_impact["actual_impact"], sap_impact["predicted_impact"]) mape_impact = mean_absolute_percentage_error(sap_impact["actual_impact"], sap_impact["predicted_impact"])
# 0.4853675375550377 # 0.35805350998208146
save_dataframe_to_s3_parquet( save_dataframe_to_s3_parquet(
recommendations_scoring_data, recommendations_scoring_data,