File tree Expand file tree Collapse file tree 1 file changed +22
-0
lines changed Expand file tree Collapse file tree 1 file changed +22
-0
lines changed Original file line number Diff line number Diff line change 16
16
from skglm .solvers import GroupProxNewton
17
17
from skglm .utils .data import make_correlated_data , grp_converter
18
18
19
+ import matplotlib .pyplot as plt
20
+
19
21
n_features = 30
20
22
X , y , _ = make_correlated_data (
21
23
n_samples = 10 , n_features = 30 , random_state = 0 )
42
44
# %%
43
45
# Fit check that groups are either all 0 or all non zero
44
46
print (clf .coef_ .reshape (- 1 , grp_size ))
47
+
48
+ # %%
49
+ # Visualise group-level sparsity
50
+
51
+ coef_by_group = clf .coef_ .reshape (- 1 , grp_size )
52
+ group_norms = np .linalg .norm (coef_by_group , axis = 1 )
53
+
54
+ plt .figure (figsize = (8 , 4 ))
55
+ plt .bar (np .arange (n_groups ), group_norms )
56
+ plt .xlabel ("Group index" )
57
+ plt .ylabel ("L2 norm of coefficients" )
58
+ plt .title ("Group Sparsity Pattern" )
59
+ plt .tight_layout ()
60
+ plt .show ()
61
+
62
+ # %%
63
+ # This plot shows the L2 norm of the coefficients for each group.
64
+ # Groups with a zero norm have been set inactive by the model,
65
+ # illustrating how Group Logistic Regression enforces sparsity at the group level.
66
+ # (Note: This example uses a tiny synthetic dataset, so the pattern has limited interpretability.)
You can’t perform that action at this time.
0 commit comments