Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
105 commits
Select commit Hold shift + click to select a range
9c2d77c
add method for selection base on FDR
lionelkusch Aug 28, 2025
5314c37
fix default of the qunatile aggragation
lionelkusch Aug 28, 2025
be837e0
fix selection
lionelkusch Aug 28, 2025
1a42592
update docstring
lionelkusch Aug 28, 2025
5854f2e
fix docstring
lionelkusch Aug 28, 2025
3c08f75
Add test for 1 test_score
lionelkusch Aug 29, 2025
7f3a117
change the usage of test fdr without aggregation
lionelkusch Sep 1, 2025
21250b4
remove a print in test
lionelkusch Sep 1, 2025
17d9d95
Update selection
lionelkusch Sep 2, 2025
4b7abd6
update Desparsified Lasso
lionelkusch Sep 4, 2025
ac987d8
fix desparsified lasso and the example
lionelkusch Sep 5, 2025
bfa5718
fix example
lionelkusch Sep 8, 2025
4bcca60
Merge branch 'main' into PR_desparsified_lasso
lionelkusch Sep 8, 2025
fc1f941
add tests
lionelkusch Sep 8, 2025
3e64588
Add Encldel and Cluster
lionelkusch Sep 8, 2025
37b9fa5
fix merge
lionelkusch Sep 8, 2025
e4d1c44
update docstring
lionelkusch Sep 8, 2025
33973a5
merge cluster and EnCLuDL
lionelkusch Sep 8, 2025
076148e
change signal noise ratio
lionelkusch Sep 9, 2025
f28126c
change name for model
lionelkusch Sep 9, 2025
b525de6
Merge remote-tracking branch 'origin/PR_selection' into PR_EnCluDL
lionelkusch Sep 9, 2025
e8134d8
remove function for knockoff
lionelkusch Sep 9, 2025
51685e8
update selection_fdr
lionelkusch Sep 9, 2025
b8d0d4b
Merge remote-tracking branch 'origin/PR_selection' into PR_EnCluDL
lionelkusch Sep 9, 2025
77f6391
ifix some bugs
lionelkusch Sep 9, 2025
3dd668d
fix test
lionelkusch Sep 9, 2025
3b1f945
fix api
lionelkusch Sep 9, 2025
6f94495
fix example
lionelkusch Sep 9, 2025
d8c0f80
smal modification
lionelkusch Sep 10, 2025
631cf87
fix name variable
lionelkusch Sep 10, 2025
b54fe16
fix docstring
lionelkusch Sep 10, 2025
4135740
fix example and test
lionelkusch Sep 10, 2025
fc90820
Merge branch 'main' into PR_desparsified_lasso
lionelkusch Sep 10, 2025
70c74a4
put _subsampling in encludl
lionelkusch Sep 10, 2025
60e7a59
Merge branch 'main' into PR_desparsified_lasso
lionelkusch Oct 13, 2025
571e306
fix commit
lionelkusch Oct 13, 2025
af12949
rename variable
lionelkusch Oct 13, 2025
fae39ee
fix format
lionelkusch Oct 13, 2025
cc1a85a
fix example
lionelkusch Oct 13, 2025
3666fdf
update docstring
lionelkusch Oct 13, 2025
7034a3b
add warning
lionelkusch Oct 13, 2025
283e760
add warning
lionelkusch Oct 13, 2025
7ab50a7
fix docstring
lionelkusch Oct 13, 2025
a008b89
fix docstring
lionelkusch Oct 14, 2025
ac0291d
Merge branch 'main' into PR_desparsified_lasso
lionelkusch Oct 14, 2025
6c47187
add options alphas
lionelkusch Oct 14, 2025
d58cad5
update comments
lionelkusch Oct 15, 2025
3a53abd
remove shuffle in cv
lionelkusch Oct 15, 2025
763c786
Merge branch 'main' into PR_desparsified_lasso
lionelkusch Oct 15, 2025
7d0c2ca
Fix comment
lionelkusch Oct 15, 2025
33ef1cc
change cv in EnClDL
lionelkusch Oct 15, 2025
365b56e
improve coverage
lionelkusch Oct 15, 2025
4ab75f3
Update src/hidimstat/noise_std.py
lionelkusch Oct 16, 2025
e4c209a
Update test/test_desparsified_lasso.py
lionelkusch Oct 16, 2025
8458341
replace n_time by n_task
lionelkusch Oct 16, 2025
74a1636
replace n_time by n_task
lionelkusch Oct 16, 2025
88cf047
Move reid in desparsified lasso
lionelkusch Oct 16, 2025
90534e2
fix import
lionelkusch Oct 16, 2025
aa6a7bd
fix import
lionelkusch Oct 16, 2025
9791c10
fix definition of the covariance
lionelkusch Oct 16, 2025
19bdf14
add an exception
lionelkusch Oct 16, 2025
15912da
fix import order
lionelkusch Oct 16, 2025
ddb0b1b
format
lionelkusch Oct 16, 2025
ff709aa
change default value of the n_job
lionelkusch Oct 16, 2025
eda35b3
fix bg
lionelkusch Oct 16, 2025
1da00fd
Merge branch 'main' into PR_desparsified_lasso
lionelkusch Oct 17, 2025
991deb1
Merge branch 'main' into PR_desparsified_lasso
lionelkusch Oct 23, 2025
0ed3f9c
Update src/hidimstat/ensemble_clustered_inference.py
lionelkusch Oct 24, 2025
db86141
Update src/hidimstat/ensemble_clustered_inference.py
lionelkusch Oct 24, 2025
56073e8
Update src/hidimstat/ensemble_clustered_inference.py
lionelkusch Oct 24, 2025
a4182a7
Update src/hidimstat/ensemble_clustered_inference.py
lionelkusch Oct 24, 2025
8231b35
Update src/hidimstat/ensemble_clustered_inference.py
lionelkusch Oct 24, 2025
fbad071
Update src/hidimstat/ensemble_clustered_inference.py
lionelkusch Oct 24, 2025
0429b90
Update src/hidimstat/ensemble_clustered_inference.py
lionelkusch Oct 24, 2025
3298f28
Update src/hidimstat/ensemble_clustered_inference.py
lionelkusch Oct 24, 2025
dd98062
Update src/hidimstat/ensemble_clustered_inference.py
lionelkusch Oct 24, 2025
7913b21
Update src/hidimstat/ensemble_clustered_inference.py
lionelkusch Oct 24, 2025
a9332a2
Update src/hidimstat/ensemble_clustered_inference.py
lionelkusch Oct 24, 2025
2aeef95
Update src/hidimstat/desparsified_lasso.py
lionelkusch Oct 24, 2025
f81b79d
Update src/hidimstat/desparsified_lasso.py
lionelkusch Oct 24, 2025
a2d817a
Update src/hidimstat/desparsified_lasso.py
lionelkusch Oct 24, 2025
cf24ca7
Update test/test_desparsified_lasso.py
lionelkusch Oct 24, 2025
cee28e0
Update test/test_desparsified_lasso.py
lionelkusch Oct 24, 2025
0654edf
Update test/test_desparsified_lasso.py
lionelkusch Oct 24, 2025
1f41c87
Update test/test_desparsified_lasso.py
lionelkusch Oct 24, 2025
d63e220
Update test/test_desparsified_lasso.py
lionelkusch Oct 24, 2025
0e23703
Update test/test_desparsified_lasso.py
lionelkusch Oct 24, 2025
f4e54e9
Update test/test_desparsified_lasso.py
lionelkusch Oct 24, 2025
680365e
fix multitasklassocv change name
lionelkusch Oct 24, 2025
e3a73d3
Update src/hidimstat/desparsified_lasso.py
lionelkusch Oct 24, 2025
aea6003
Add shape in docstring
lionelkusch Oct 24, 2025
79effbf
Add new workflow for maintenance (#501)
lionelkusch Oct 23, 2025
bb09246
Pr ci maint (#502)
lionelkusch Oct 23, 2025
6316626
Remove parallel generation of example (#497)
lionelkusch Oct 24, 2025
e9f01ff
Merge branch 'main' into PR_desparsified_lasso
lionelkusch Oct 24, 2025
be52459
fix example?
lionelkusch Oct 24, 2025
440eea7
remove warnings
lionelkusch Oct 27, 2025
7f04ebd
remove memory issue
lionelkusch Oct 27, 2025
4bb343e
Merge branch 'PR_desparsified_lasso' into PR_EnCluDL
lionelkusch Oct 27, 2025
ae3aa73
fix test
lionelkusch Oct 27, 2025
3406819
fix format
lionelkusch Oct 27, 2025
cc2f4f0
fix example
lionelkusch Oct 31, 2025
0d4b68c
remove cv from fit
lionelkusch Oct 31, 2025
73778be
Merge branch 'main' of github.com:mind-inria/hidimstat into PR_EnCluDL
jpaillard Nov 7, 2025
2666166
add to API
jpaillard Nov 7, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/src/api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ Feature Importance Classes
D0CRT
ModelXKnockoff
DesparsifiedLasso
EnsembleClusteredInference

Feature Importance functions
============================
Expand Down
36 changes: 12 additions & 24 deletions examples/plot_2D_simulation_example.py
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,7 @@ def weight_map_2D_extended(shape, roi_size, delta):
from sklearn.preprocessing import StandardScaler

from hidimstat.ensemble_clustered_inference import (
EnsembleClusteredInference,
clustered_inference,
clustered_inference_pvalue,
)
Expand All @@ -221,21 +222,16 @@ def weight_map_2D_extended(shape, roi_size, delta):
)

# clustered desparsified lasso (CluDL)
ward_, desparsified_lasso_ = clustered_inference(
X_init, y, ward, scaler_sampling=StandardScaler(), random_state=0
)
beta_hat, pval, pval_corr, one_minus_pval, one_minus_pval_corr = (
clustered_inference_pvalue(n_samples, False, ward_, desparsified_lasso_)
clustered_inference = EnsembleClusteredInference(
ward=ward, scaler_sampling=StandardScaler(), n_bootstraps=1
)
clustered_inference.fit_importance(X_init, y)

# compute estimated support (first method)
zscore = zscore_from_pval(pval, one_minus_pval)
selected_cdl = zscore > thr_c # use the "clustering threshold"

# compute estimated support (second method)
selected_cdl = np.logical_or(
pval_corr < fwer_target / 2, one_minus_pval_corr < fwer_target / 2
zscore = zscore_from_pval(
clustered_inference.pvalues_, 1 - clustered_inference.pvalues_
)
selected_cdl = zscore > thr_c # use the "clustering threshold"


# %%
Expand All @@ -251,20 +247,12 @@ def weight_map_2D_extended(shape, roi_size, delta):
)

# ensemble of clustered desparsified lasso (EnCluDL)
list_ward, list_desparsified_lasso = ensemble_clustered_inference(
X_init,
y,
ward,
scaler_sampling=StandardScaler(),
random_state=0,
n_jobs=n_jobs,
ensemble_clustered_inference = EnsembleClusteredInference(
ward=ward, scaler_sampling=StandardScaler(), n_bootstraps=5
)
beta_hat, selected_ecdl = ensemble_clustered_inference_pvalue(
n_samples,
False,
list_ward,
list_desparsified_lasso,
fdr=fwer_target,
ensemble_clustered_inference.fit_importance(X_init, y)
selected_ecdl = ensemble_clustered_inference.fdr_selection(
fdr=fwer_target, alternative_hypothesis=None
)


Expand Down
61 changes: 29 additions & 32 deletions examples/plot_fmri_data_example.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,7 @@
from sklearn.utils import Bunch

from hidimstat.desparsified_lasso import DesparsifiedLasso
from hidimstat.ensemble_clustered_inference import (
clustered_inference,
clustered_inference_pvalue,
ensemble_clustered_inference,
ensemble_clustered_inference_pvalue,
)
from hidimstat.ensemble_clustered_inference import EnsembleClusteredInference
from hidimstat.statistical_tools.p_values import zscore_from_pval

# Remove warnings during loading data
Expand Down Expand Up @@ -183,19 +178,22 @@ def preprocess_haxby(subject=2, memory=None):
# %%
# Now, the clustered inference algorithm which combines parcellation
# and high-dimensional inference (c.f. References).
ward_, cl_desparsified_lasso = clustered_inference(
X,
y,
ward,
clustered_inference = EnsembleClusteredInference(
variable_importance=DesparsifiedLasso(
noise_method="median",
estimator=clone(estimator),
tolerance_reid=1e-2,
n_jobs=1,
),
ward=ward,
scaler_sampling=StandardScaler(),
estimator=clone(estimator),
tolerance_reid=1e-2,
random_state=1,
n_jobs=n_jobs,
)
beta_hat, pval_cdl, _, one_minus_pval_cdl, _ = clustered_inference_pvalue(
X.shape[0], None, ward_, cl_desparsified_lasso
n_bootstraps=1,
n_jobs=1,
random_state=0,
)
beta_hat = clustered_inference.fit_importance(X, y)
pval_cdl = clustered_inference.pvalues_
one_minus_pval_cdl = 1 - clustered_inference.pvalues_

# %%
# Below, we run the ensemble clustered inference algorithm which adds a
Expand All @@ -205,24 +203,23 @@ def preprocess_haxby(subject=2, memory=None):
# then 5 statistical maps are produced and aggregated into one.
# However you might benefit from clustering randomization taking
# `n_bootstraps=25` or `n_bootstraps=100`, also we set `n_jobs=n_jobs`.
list_ward, list_cl_desparsified_lasso = ensemble_clustered_inference(
X,
y,
ward,
groups=groups,
ensemble_clustered_inference = EnsembleClusteredInference(
variable_importance=DesparsifiedLasso(
noise_method="median",
estimator=clone(estimator),
tolerance_reid=1e-2,
n_jobs=1,
),
ward=ward,
scaler_sampling=StandardScaler(),
n_bootstraps=5,
estimator=clone(estimator),
tolerance_reid=1e-2,
random_state=2,
n_jobs=n_jobs,
n_jobs=1,
random_state=0,
)
beta_hat, selected = ensemble_clustered_inference_pvalue(
X.shape[0],
False,
list_ward,
list_cl_desparsified_lasso,
fdr=0.1,
beta_hat = ensemble_clustered_inference.fit_importance(X, y)
pval_cdl = ensemble_clustered_inference.pvalues_
selected = ensemble_clustered_inference.fdr_selection(
fdr=0.1, alternative_hypothesis=None
)

# %%
Expand Down
2 changes: 2 additions & 0 deletions src/hidimstat/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from .desparsified_lasso import DesparsifiedLasso, desparsified_lasso, reid
from .distilled_conditional_randomization_test import D0CRT, d0crt
from .ensemble_clustered_inference import (
EnsembleClusteredInference,
clustered_inference,
clustered_inference_pvalue,
ensemble_clustered_inference,
Expand All @@ -25,6 +26,7 @@
"DesparsifiedLasso",
"d0crt",
"D0CRT",
"EnsembleClusteredInference",
"ensemble_clustered_inference",
"ensemble_clustered_inference_pvalue",
"reid",
Expand Down
35 changes: 0 additions & 35 deletions src/hidimstat/_utils/bootstrap.py

This file was deleted.

Loading
Loading