diff --git a/machine_learning/config/prox_comm_PANAS_features.yaml b/machine_learning/config/prox_comm_PANAS_features.yaml new file mode 100644 index 0000000..f3dd145 --- /dev/null +++ b/machine_learning/config/prox_comm_PANAS_features.yaml @@ -0,0 +1,6 @@ +grouping_variable: [date_lj] +features: + proximity: + all + communication: + all diff --git a/machine_learning/config/prox_comm_PANAS_labels.yaml b/machine_learning/config/prox_comm_PANAS_labels.yaml new file mode 100644 index 0000000..6d6dcc3 --- /dev/null +++ b/machine_learning/config/prox_comm_PANAS_labels.yaml @@ -0,0 +1,5 @@ +grouping_variable: [date_lj] +labels: + PANAS: + - PA + - NA diff --git a/machine_learning/pipeline.py b/machine_learning/pipeline.py index c328423..56c1d0c 100644 --- a/machine_learning/pipeline.py +++ b/machine_learning/pipeline.py @@ -1,7 +1,10 @@ import datetime from collections.abc import Collection +import numpy as np import pandas as pd +import yaml +from sklearn import linear_model from sklearn.model_selection import LeaveOneGroupOut, cross_val_score import participants.query_db @@ -343,3 +346,29 @@ class MachineLearningPipeline: cv=self.validation_method, n_jobs=-1, ) + + +if __name__ == "__main__": + with open("./config/prox_comm_PANAS_features.yaml", "r") as file: + sensor_features_params = yaml.safe_load(file) + sensor_features = SensorFeatures(**sensor_features_params) + sensor_features.set_sensor_data() + sensor_features.calculate_features() + + with open("./config/prox_comm_PANAS_labels.yaml", "r") as file: + labels_params = yaml.safe_load(file) + labels = Labels(**labels_params) + labels.set_labels() + labels.aggregate_labels() + + model_validation = ModelValidation( + sensor_features.get_features("all", "all"), + labels.get_aggregated_labels(), + group_variable="participant_id", + cv_name="loso", + ) + model_validation.model = linear_model.LinearRegression() + model_validation.set_cv_method() + model_loso_r2 = model_validation.cross_validate() + print(model_loso_r2) + print(np.mean(model_loso_r2))