Compare commits

..

No commits in common. "master" and "sap@v0.11.0" have entirely different histories.

15 changed files with 95 additions and 91 deletions

View file

@ -1,9 +0,0 @@
modules/ml-pipeline/src/pipeline/data/predictions
modules/ml-pipeline/src/pipeline/data/fit_predictions
modules/ml-pipeline/src/pipeline/data/prepared_data
modules/ml-pipeline/src/pipeline/data/model/allmodels
modules/ml-pipeline/src/pipeline/metrics
modules/ml-pipeline/src/pipeline/__pycache__
modules/ml-pipeline/src/pipeline/.dvc
modules/ml-pipeline/src/pipeline/analysis
modules/ml-pipeline/src/pipeline/metrics

View file

@ -19,8 +19,8 @@ jobs:
- name: Install Serverless and plugins - name: Install Serverless and plugins
run: | run: |
npm install -g serverless@^3.38.0 npm install -g serverless
npm install -g serverless-domain-manager@^7.3.8 npm install -g serverless-domain-manager
- name: Install DVC - name: Install DVC
run: | run: |

View file

@ -8,25 +8,25 @@
"active": true "active": true
}, },
"sap": { "sap": {
"version": "v0.14.0", "version": "v0.10.1",
"stage": { "stage": {
"dev": "v0.14.0" "dev": "v0.10.1"
}, },
"registered": true, "registered": true,
"active": true "active": true
}, },
"heat": { "heat": {
"version": "v0.5.0", "version": "v0.4.0",
"stage": { "stage": {
"dev": "v0.5.0" "dev": "v0.4.0"
}, },
"registered": true, "registered": true,
"active": true "active": true
}, },
"carbon": { "carbon": {
"version": "v0.5.0", "version": "v0.4.0",
"stage": { "stage": {
"dev": "v0.5.0" "dev": "v0.4.0"
}, },
"registered": true, "registered": true,
"active": true "active": true

View file

@ -1,9 +1,4 @@
modules/ml-pipeline/src/pipeline/data/predictions modules/ml-pipeline/src/pipeline/data/predictions*
modules/ml-pipeline/src/pipeline/data/fit_predictions modules/ml-pipeline/src/pipeline/data/prepared_data*
modules/ml-pipeline/src/pipeline/data/prepared_data modules/ml-pipeline/src/pipeline/data/model/allmodels*
modules/ml-pipeline/src/pipeline/data/model/allmodels modules/ml-pipeline/src/pipeline/metrics*
modules/ml-pipeline/src/pipeline/metrics
modules/ml-pipeline/src/__pycache__
modules/ml-pipeline/src/.dvc
modules/ml-pipeline/src/analysis
modules/ml-pipeline/src/metrics

View file

@ -1,8 +1,4 @@
pipeline/data/predictions pipeline/data/predictions*
pipeline/data/fit_predictions pipeline/data/prepared_data/train.parquet*
pipeline/data/prepared_data/train.parquet pipeline/data/model/allmodels*
pipeline/data/fit_predictions pipeline/metrics*
pipeline/data/model/allmodels
pipeline/metrics
pipeline/.dvc
pipeline/analysis

View file

@ -1,7 +1,7 @@
# Dockerfile that can be used to test loading a model to generate a prediction (part of CI/CD flow) # Dockerfile that can be used to test loading a model to generate a prediction (part of CI/CD flow)
FROM python:3.10.12-slim FROM python:3.10.12-slim
RUN apt-get update && apt-get install -y libgomp1 gcc python3-dev RUN apt-get update && apt-get install -y libgomp1
COPY pipeline/requirements/predictions/requirements.txt requirements.txt COPY pipeline/requirements/predictions/requirements.txt requirements.txt

View file

@ -78,18 +78,6 @@ def generate_scenario_predictions(
scenario_data = pd.DataFrame() scenario_data = pd.DataFrame()
# If we have no scenario data, we can save empty dataframes
if scenario_data_filepaths is None:
logger.info("No scenario data filepaths provided")
output_dataclient.save_data(
obj=scenario_data, location=comparison_output_filepath, save_config=None
)
output_dataclient.save_data(
obj=scenario_data, location=metrics_output_filepath, save_config=None
)
return
# Can have multiple scenario data files # Can have multiple scenario data files
for scenario_data_filepath in scenario_data_filepaths: for scenario_data_filepath in scenario_data_filepaths:
scenario_data = pd.concat( scenario_data = pd.concat(

View file

@ -5,9 +5,6 @@ default:
scenario_data_filepaths: scenario_data_filepaths:
# - s3://retrofit-data-dev/scenario_data/22-03-2024-19-20-09/recommendations_scoring_data.parquet # - s3://retrofit-data-dev/scenario_data/22-03-2024-19-20-09/recommendations_scoring_data.parquet
# - s3://retrofit-data-dev/scenario_data/24-03-2024-20-23-25/recommendations_scoring_data.parquet # - s3://retrofit-data-dev/scenario_data/24-03-2024-20-23-25/recommendations_scoring_data.parquet
# - s3://retrofit-data-dev/scenario_data/27-03-2024-11-38-15/recommendations_scoring_data.parquet - s3://retrofit-data-dev/scenario_data/27-03-2024-11-38-15/recommendations_scoring_data.parquet
# - s3://retrofit-data-dev/scenario_data/26-05-2024-08-47-45/recommendations_scoring_data.parquet
# - s3://retrofit-data-dev/scenario_data/26-05-2024-10-44-53/recommendations_scoring_data.parquet
- s3://retrofit-data-dev/scenario_data/28-05-2024-19-22-41/recommendations_scoring_data.parquet
comparison_output_filepath: ./metrics/scenario_table.md comparison_output_filepath: ./metrics/scenario_table.md
metrics_output_filepath: ./metrics/scenario_metrics.md metrics_output_filepath: ./metrics/scenario_metrics.md

View file

@ -18,10 +18,7 @@ default:
prepare_data: prepare_data:
input_dataclient_type: aws-s3 input_dataclient_type: aws-s3
output_dataclient_type: local output_dataclient_type: local
# data_filepath: s3://retrofit-data-dev/sap_change_model/2024-03-22-18-56-53/dataset_rooms.parquet data_filepath: s3://retrofit-data-dev/sap_change_model/2024-03-22-18-56-53/dataset_rooms.parquet
# data_filepath: s3://retrofit-data-dev/sap_change_model/2024-05-25-08-36-36/dataset_rooms.parquet
# data_filepath: s3://retrofit-data-dev/sap_change_model/2024-05-26-10-31-39/dataset_rooms.parquet
data_filepath: s3://retrofit-data-dev/sap_change_model/2024-05-28-19-08-25/dataset_rooms.parquet
train_proportion: 0.9 train_proportion: 0.9
output_train_filepath: ./data/prepared_data/train.parquet output_train_filepath: ./data/prepared_data/train.parquet
output_test_filepath: ./data/prepared_data/test.parquet output_test_filepath: ./data/prepared_data/test.parquet

View file

@ -35,12 +35,52 @@ stages:
- number_habitable_rooms - number_habitable_rooms
- number_heated_rooms - number_heated_rooms
default.feature_processor.feature_processor_config.retain_features: default.feature_processor.feature_processor_config.retain_features:
- uprn
- sap_starting
- hot_water_energy_eff_ending
- mainheat_energy_eff_ending
- constituency
- roof_energy_eff_ending
- walls_energy_eff_ending
- secondheat_description_ending
- property_type
- mainheatc_energy_eff_ending
- built_form
- walls_insulation_thickness_ending
- potential_energy_efficiency
- transaction_type_ending
- floor_thermal_transmittance_ending
- low_energy_lighting_ending
- heat_demand_starting
- photo_supply_ending
- carbon_starting
- walls_thermal_transmittance_ending
- roof_insulation_thickness_ending
- total_floor_area_ending
- number_open_fireplaces_ending
- windows_energy_eff_ending
- floor_height_ending
- extension_count_ending
- has_air_source_heat_pump_ending
- charging_system_ending
- construction_age_band
- glazed_type_ending
- roof_thermal_transmittance_ending
- floor_insulation_thickness_ending
- has_mains_gas_ending
- estimated_perimeter_starting
- energy_consumption_potential
- environment_impact_potential
- heater_type_ending
- multi_glaze_proportion_ending
- lighting_energy_eff_ending
- fixed_lighting_outlets_count
default.feature_processor.feature_processor_config.subsample_amount: default.feature_processor.feature_processor_config.subsample_amount:
default.feature_processor.feature_processor_config.subsample_seed: 0 default.feature_processor.feature_processor_config.subsample_seed: 0
default.feature_processor.feature_processor_config.target: sap_ending default.feature_processor.feature_processor_config.target: sap_ending
default.feature_processor.feature_processor_type: dataframe default.feature_processor.feature_processor_type: dataframe
default.prepare_data.data_filepath: default.prepare_data.data_filepath:
s3://retrofit-data-dev/sap_change_model/2024-05-28-19-08-25/dataset_rooms.parquet s3://retrofit-data-dev/sap_change_model/2024-03-22-18-56-53/dataset_rooms.parquet
default.prepare_data.input_dataclient_type: aws-s3 default.prepare_data.input_dataclient_type: aws-s3
default.prepare_data.output_dataclient_type: local default.prepare_data.output_dataclient_type: local
default.prepare_data.output_test_filepath: ./data/prepared_data/test.parquet default.prepare_data.output_test_filepath: ./data/prepared_data/test.parquet
@ -49,8 +89,8 @@ stages:
outs: outs:
- path: data/prepared_data/ - path: data/prepared_data/
hash: md5 hash: md5
md5: 80c9e138146a1d96b9d16091c207e2e8.dir md5: efa416abea618ae6220a0c3d597603cf.dir
size: 45056059 size: 44750997
nfiles: 2 nfiles: 2
build_model: build_model:
cmd: python 2_build_model.py cmd: python 2_build_model.py
@ -61,8 +101,8 @@ stages:
size: 4820 size: 4820
- path: data/prepared_data - path: data/prepared_data
hash: md5 hash: md5
md5: 80c9e138146a1d96b9d16091c207e2e8.dir md5: efa416abea618ae6220a0c3d597603cf.dir
size: 45056059 size: 44750997
nfiles: 2 nfiles: 2
params: params:
configs/build_model.yaml: configs/build_model.yaml:
@ -94,17 +134,17 @@ stages:
outs: outs:
- path: data/fit_predictions/ - path: data/fit_predictions/
hash: md5 hash: md5
md5: d9c9afc05e8780db47c0548b19bf7d19.dir md5: de46250d454c4d713ab580b10ff3fd31.dir
size: 3349989 size: 3349318
nfiles: 1 nfiles: 1
- path: data/model/ - path: data/model/
hash: md5 hash: md5
md5: 13c3100e1486c27a83a8a47491077842.dir md5: 18bd7a93ece75a65d3a950b7dfdab4fb.dir
size: 773523079 size: 735951861
nfiles: 36 nfiles: 35
- path: metrics/fit_metrics.json - path: metrics/fit_metrics.json
hash: md5 hash: md5
md5: 2ff70a2a45813e1bcdf2ea3aa8e07d4a md5: 8a952a5e884c268e6059357a627b9251
size: 224 size: 224
generate_predictions: generate_predictions:
cmd: python 3_generate_predictions.py cmd: python 3_generate_predictions.py
@ -115,13 +155,13 @@ stages:
size: 2464 size: 2464
- path: data/model - path: data/model
hash: md5 hash: md5
md5: 13c3100e1486c27a83a8a47491077842.dir md5: 18bd7a93ece75a65d3a950b7dfdab4fb.dir
size: 773523079 size: 735951861
nfiles: 36 nfiles: 35
- path: data/prepared_data - path: data/prepared_data
hash: md5 hash: md5
md5: 80c9e138146a1d96b9d16091c207e2e8.dir md5: efa416abea618ae6220a0c3d597603cf.dir
size: 45056059 size: 44750997
nfiles: 2 nfiles: 2
params: params:
configs/settings.yaml: configs/settings.yaml:
@ -133,8 +173,8 @@ stages:
outs: outs:
- path: data/predictions/ - path: data/predictions/
hash: md5 hash: md5
md5: 5d07bcebf3160a72bb18dfd79106e85c.dir md5: 07ef721a0dc94a52e3ba7a70ac45b8ff.dir
size: 463197 size: 463563
nfiles: 1 nfiles: 1
generate_metrics: generate_metrics:
cmd: python 4_generate_metrics.py cmd: python 4_generate_metrics.py
@ -145,13 +185,13 @@ stages:
size: 3484 size: 3484
- path: data/predictions - path: data/predictions
hash: md5 hash: md5
md5: 5d07bcebf3160a72bb18dfd79106e85c.dir md5: 07ef721a0dc94a52e3ba7a70ac45b8ff.dir
size: 463197 size: 463563
nfiles: 1 nfiles: 1
- path: data/prepared_data - path: data/prepared_data
hash: md5 hash: md5
md5: 80c9e138146a1d96b9d16091c207e2e8.dir md5: efa416abea618ae6220a0c3d597603cf.dir
size: 45056059 size: 44750997
nfiles: 2 nfiles: 2
params: params:
configs/settings.yaml: configs/settings.yaml:
@ -161,30 +201,30 @@ stages:
outs: outs:
- path: metrics/metrics.json - path: metrics/metrics.json
hash: md5 hash: md5
md5: 3e08df02fd5c5d094bcf936e1338d596 md5: 9f863f47799d42c101eba3b03a179455
size: 223 size: 224
generate_scenerio_metrics: generate_scenerio_metrics:
cmd: python 5_generate_scenarios.py cmd: python 5_generate_scenarios.py
deps: deps:
- path: 5_generate_scenarios.py - path: 5_generate_scenarios.py
hash: md5 hash: md5
md5: 40506749fefd926d47c60ff5b16db307 md5: a18f6c6ae2082f038df47386cf3e418e
size: 5337 size: 4896
params: params:
configs/scenarios.yaml: configs/scenarios.yaml:
default.scenarios: default.scenarios:
input_dataclient_type: aws-s3 input_dataclient_type: aws-s3
output_dataclient_type: local output_dataclient_type: local
scenario_data_filepaths: scenario_data_filepaths:
- s3://retrofit-data-dev/scenario_data/28-05-2024-19-22-41/recommendations_scoring_data.parquet - s3://retrofit-data-dev/scenario_data/27-03-2024-11-38-15/recommendations_scoring_data.parquet
comparison_output_filepath: ./metrics/scenario_table.md comparison_output_filepath: ./metrics/scenario_table.md
metrics_output_filepath: ./metrics/scenario_metrics.md metrics_output_filepath: ./metrics/scenario_metrics.md
outs: outs:
- path: metrics/scenario_metrics.md - path: metrics/scenario_metrics.md
hash: md5 hash: md5
md5: fa4d6d7bbd7818613800da5f8f37ea96 md5: 64e7db945ff655ae03c20c9845f19106
size: 363 size: 363
- path: metrics/scenario_table.md - path: metrics/scenario_table.md
hash: md5 hash: md5
md5: d6baf100a1623cc2467c2f8221d314c9 md5: d4f8afe07b774374aeaa48f1b7b8a5fc
size: 2133 size: 2133

View file

@ -1,7 +1,7 @@
joblib==1.3.2 joblib==1.3.2
boto3==1.28.17 boto3==1.28.17
pandas==2.1.4 pandas==2.1.4
autogluon.tabular[all]==1.0.0 autogluon==1.0.0
dynaconf==3.2.1 dynaconf==3.2.1
pyarrow==13.0.0 pyarrow==13.0.0
pre-commit==3.3.3 pre-commit==3.3.3

View file

@ -1,7 +1,7 @@
joblib==1.3.2 joblib==1.3.2
boto3==1.28.17 boto3==1.28.17
pandas==2.1.4 pandas==2.1.4
autogluon.tabular[all]==1.0.0 autogluon==1.0.0
dynaconf==3.2.1 dynaconf==3.2.1
pyarrow==13.0.0 pyarrow==13.0.0
PyYAML==6.0.1 PyYAML==6.0.1

View file

@ -1,7 +1,7 @@
joblib==1.3.2 joblib==1.3.2
boto3==1.28.17 boto3==1.28.17
pandas==2.1.4 pandas==2.1.4
autogluon.tabular[all]==1.0.0 autogluon==1.0.0
ray==2.6.3 ray==2.6.3
dynaconf==3.2.1 dynaconf==3.2.1
alibi==0.9.5 alibi==0.9.5

View file

@ -1,4 +1,4 @@
boto3==1.28.41 boto3==1.28.41
pandas==2.1.4 pandas==2.1.4
autogluon.tabular[all]==1.0.0 autogluon==1.0.0
dynaconf==3.2.1 dynaconf==3.2.1

View file

@ -1,4 +1,4 @@
dvc==3.51.0 dvc==3.36.0
dvc-s3==3.2.0 dvc-s3==3.0.1
gto==1.7.1 gto==1.6.1
pyOpenSSL==23.3.0 pyOpenSSL==23.3.0