From d3218aeb732df3302fb6ffec6f4a6ce3b2c26dd5 Mon Sep 17 00:00:00 2001 From: Lea Waller Date: Mon, 9 Mar 2026 20:38:02 +0100 Subject: [PATCH 1/3] Ensure equal sampling of age across cv folds We split age into five quantiles and then ensure that these are equally distributed across train and test using StratifiedShuffleSplit --- wonkyconn/features/age_sex_prediction.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/wonkyconn/features/age_sex_prediction.py b/wonkyconn/features/age_sex_prediction.py index a4461505..d2d82420 100644 --- a/wonkyconn/features/age_sex_prediction.py +++ b/wonkyconn/features/age_sex_prediction.py @@ -10,7 +10,7 @@ from sklearn.decomposition import PCA # type: ignore[import-not-found] from sklearn.impute import SimpleImputer # type: ignore[import-not-found] from sklearn.linear_model import LogisticRegression, Ridge # type: ignore[import-not-found] -from sklearn.model_selection import ShuffleSplit, StratifiedShuffleSplit, cross_validate # type: ignore[import-not-found] +from sklearn.model_selection import StratifiedShuffleSplit, cross_validate # type: ignore[import-not-found] from sklearn.pipeline import Pipeline # type: ignore[import-not-found] from sklearn.preprocessing import LabelEncoder, StandardScaler # type: ignore[import-not-found] @@ -51,7 +51,12 @@ def training_pipeline( else: y_train = np.asarray(target_labels) estimator = Ridge(alpha=1.0) - cv_strategy = ShuffleSplit(n_splits=n_splits, test_size=0.2, random_state=random_state) + + bins = pd.qcut(y_train, q=5, labels=False, duplicates="drop") + cv_strategy = StratifiedShuffleSplit(n_splits=n_splits, test_size=0.2, random_state=random_state) + splits = list(cv_strategy.split(np.zeros_like(bins), bins)) + cv_strategy = splits + scoring_metrics = {"mae": "neg_mean_absolute_error", "r2": "r2"} pipe = Pipeline( From 2af7de484044e103e07a23a696c1895fed09eb7a Mon Sep 17 00:00:00 2001 From: Lea Waller Date: Mon, 9 Mar 2026 20:47:35 +0100 Subject: [PATCH 2/3] Remove atlases from .dockerignore --- .dockerignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.dockerignore b/.dockerignore index 649a91d9..71df28d9 100644 --- a/.dockerignore +++ b/.dockerignore @@ -20,6 +20,5 @@ fmriprep.egg-info .git/datalad .git/objects -wonkyconn/data/atlases wonkyconn/data/giga_connectome wonkyconn/data/halfpipe From 038b8cf84b034d848cca447351a1b08926ee5755 Mon Sep 17 00:00:00 2001 From: Lea Waller Date: Mon, 9 Mar 2026 20:49:43 +0100 Subject: [PATCH 3/3] Update .dockerignore for new directory structure --- .dockerignore | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.dockerignore b/.dockerignore index 71df28d9..91fbb18b 100644 --- a/.dockerignore +++ b/.dockerignore @@ -20,5 +20,5 @@ fmriprep.egg-info .git/datalad .git/objects -wonkyconn/data/giga_connectome -wonkyconn/data/halfpipe +data/giga_connectome +data/halfpipe