Skip to content

Commit eee6d40

Browse files
configs(hdbscan): add the datasets experiment
Real datasets, synthetic shapes and large tall or wide data, so the data situations are covered next to the parameter sweeps in hdbscan_parameters. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Alexandr-Solovev <aleksandr.solovev@intel.com>
1 parent 899922a commit eee6d40

2 files changed

Lines changed: 158 additions & 0 deletions

File tree

‎configs/experiments/README.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
`daal4py_svd`: tests performance scalability of `daal4py.svd` algorithm
44

5+
`hdbscan_datasets`: runs `HDBSCAN` over real datasets, synthetic shapes and large tall or wide data, to cover different data situations rather than parameters.
6+
57
`hdbscan_gpu_boundaries`: compares `HDBSCAN` on CPU and GPU over `n_samples`, `n_features`, dtypes and metrics, up to sizes stock `sklearn` does not finish.
68

79
`hdbscan_parameters`: sweeps the `HDBSCAN` parameter space (metrics, cluster selection, density thresholds, stored centers, dtypes and data formats) over the `sklearn` and `sklearnex` implementations.
Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
{
2+
"INCLUDE": ["../common/sklearn.json", "../common/hdbscan.json"],
3+
"PARAMETERS_SETS": {
4+
"sklearnex only [cpu,gpu]": [
5+
{ "algorithm": { "library": "sklearnex", "device": "cpu" } },
6+
{
7+
"algorithm": {
8+
"library": "sklearnex",
9+
"device": "gpu",
10+
"sklearn_context": { "array_api_dispatch": true }
11+
},
12+
"data": { "format": "dpnp", "order": "C" }
13+
}
14+
],
15+
"hdbscan datasets limits": {
16+
"bench": { "n_runs": 3, "time_limit": 600 }
17+
},
18+
"hdbscan brute and kd_tree methods": {
19+
"algorithm": { "estimator_params": { "algorithm": ["brute", "kd_tree"], "leaf_size": 40 } }
20+
},
21+
"moderate real datasets": {
22+
"data": [
23+
{
24+
"dataset": ["letters", "california_housing", "digits"],
25+
"preprocessing_kwargs": { "normalize": "standard" }
26+
},
27+
{
28+
"dataset": ["skin_segmentation", "road_network"],
29+
"split_kwargs": { "train_size": 50000 },
30+
"preprocessing_kwargs": { "normalize": "standard" }
31+
},
32+
{
33+
"dataset": ["covtype", "sensit", "year_prediction_msd"],
34+
"split_kwargs": { "train_size": 20000 },
35+
"preprocessing_kwargs": { "normalize": "standard" }
36+
},
37+
{
38+
"dataset": "creditcard",
39+
"split_kwargs": { "train_size": 30000 },
40+
"preprocessing_kwargs": { "normalize": "standard" }
41+
},
42+
{
43+
"dataset": "fashion_mnist",
44+
"split_kwargs": { "train_size": 10000 },
45+
"preprocessing_kwargs": { "normalize": "standard" }
46+
}
47+
]
48+
},
49+
"synthetic shapes": {
50+
"data": [
51+
{
52+
"source": "make_moons",
53+
"generation_kwargs": { "n_samples": 20000, "noise": 0.05, "random_state": 42 },
54+
"split_kwargs": { "ignore": true }
55+
},
56+
{
57+
"source": "make_circles",
58+
"generation_kwargs": { "n_samples": 20000, "noise": 0.05, "factor": 0.5, "random_state": 42 },
59+
"split_kwargs": { "ignore": true }
60+
},
61+
{
62+
"source": "make_blobs",
63+
"generation_kwargs": {
64+
"centers": 50,
65+
"n_samples": 20000,
66+
"n_features": 8,
67+
"cluster_std": [0.5, 8.0],
68+
"random_state": 42
69+
},
70+
"split_kwargs": { "ignore": true }
71+
},
72+
{
73+
"source": "make_classification",
74+
"generation_kwargs": {
75+
"n_samples": 20000,
76+
"n_features": 20,
77+
"n_informative": 10,
78+
"n_classes": 5,
79+
"random_state": 42
80+
},
81+
"split_kwargs": { "ignore": true }
82+
}
83+
]
84+
},
85+
"large tall datasets": {
86+
"data": [
87+
{
88+
"dataset": [
89+
"skin_segmentation",
90+
"road_network",
91+
"covtype",
92+
"creditcard",
93+
"year_prediction_msd",
94+
"sensit"
95+
],
96+
"preprocessing_kwargs": { "normalize": "standard" }
97+
},
98+
{
99+
"dataset": ["susy", "higgs"],
100+
"split_kwargs": { "train_size": 1000000 },
101+
"preprocessing_kwargs": { "normalize": "standard" }
102+
}
103+
]
104+
},
105+
"large wide datasets": {
106+
"data": [
107+
{ "dataset": ["mnist", "fashion_mnist"], "preprocessing_kwargs": { "normalize": "standard" } },
108+
{
109+
"dataset": "cifar",
110+
"split_kwargs": { "train_size": 30000 },
111+
"preprocessing_kwargs": { "normalize": "standard" }
112+
}
113+
]
114+
}
115+
},
116+
"TEMPLATES": {
117+
"hdbscan real datasets [all methods]": {
118+
"SETS": [
119+
"sklearn-ex[cpu,gpu] implementations",
120+
"common hdbscan parameters",
121+
"sklearn hdbscan parameters",
122+
"hdbscan all methods",
123+
"moderate real datasets",
124+
"hdbscan datasets limits"
125+
]
126+
},
127+
"hdbscan synthetic shapes [all methods]": {
128+
"SETS": [
129+
"sklearn-ex[cpu,gpu] implementations",
130+
"common hdbscan parameters",
131+
"sklearn hdbscan parameters",
132+
"hdbscan all methods",
133+
"synthetic shapes",
134+
"hdbscan datasets limits"
135+
]
136+
},
137+
"hdbscan large tall datasets [kd_tree]": {
138+
"SETS": [
139+
"sklearnex only [cpu,gpu]",
140+
"common hdbscan parameters",
141+
"hdbscan kd_tree method",
142+
"large tall datasets",
143+
"hdbscan datasets limits"
144+
]
145+
},
146+
"hdbscan large wide datasets [brute, kd_tree]": {
147+
"SETS": [
148+
"sklearnex only [cpu,gpu]",
149+
"common hdbscan parameters",
150+
"hdbscan brute and kd_tree methods",
151+
"large wide datasets",
152+
"hdbscan datasets limits"
153+
]
154+
}
155+
}
156+
}

0 commit comments

Comments
 (0)