diff --git a/exploration/ex_ml_pipeline.py b/exploration/ex_ml_pipeline.py new file mode 100644 index 0000000..b613a81 --- /dev/null +++ b/exploration/ex_ml_pipeline.py @@ -0,0 +1,72 @@ +# --- +# jupyter: +# jupytext: +# formats: ipynb,py:percent +# text_representation: +# extension: .py +# format_name: percent +# format_version: '1.3' +# jupytext_version: 1.11.4 +# kernelspec: +# display_name: straw2analysis +# language: python +# name: straw2analysis +# --- + +# %% +# %matplotlib inline +import datetime +import os +import sys + +import seaborn as sns + +nb_dir = os.path.split(os.getcwd())[0] +if nb_dir not in sys.path: + sys.path.append(nb_dir) + +# %% +import participants.query_db +from features import esm, proximity + +# %% [markdown] +# # 1. Get the relevant data + +# %% +participants_inactive_usernames = participants.query_db.get_usernames( + collection_start=datetime.date.fromisoformat("2020-08-01") +) +# Consider only two participants to simplify. +ptcp_2 = participants_inactive_usernames[0:2] + +# %% [markdown] +# ## 1.1 Labels + +# %% +df_esm = esm.get_esm_data(ptcp_2) +df_esm_preprocessed = esm.preprocess_esm(df_esm) + +# %% +df_esm_PANAS = df_esm_preprocessed[ + (df_esm_preprocessed["questionnaire_id"] == 8) + | (df_esm_preprocessed["questionnaire_id"] == 9) +] +df_esm_PANAS_clean = esm.clean_up_esm(df_esm_PANAS) + +# %% [markdown] +# ## 1.2 Sensor data + +# %% +df_proximity = proximity.get_proximity_data(ptcp_2) +df_proximity = proximity.recode_proximity(df_proximity) + +# %% [markdown] +# # 2. Grouping/segmentation + +# %% +df_esm_PANAS_daily_means = ( + df_esm_PANAS_clean.groupby(["participant_id", "date_lj", "questionnaire_id"]) + .esm_user_answer_numeric.agg("mean") + .reset_index() + .rename(columns={"esm_user_answer_numeric": "esm_numeric_mean"}) +) diff --git a/machine_learning/__init__.py b/machine_learning/__init__.py new file mode 100644 index 0000000..e69de29