Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
54 changes: 54 additions & 0 deletions configs/common/hdbscan.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
{
"PARAMETERS_SETS": {
"hdbscan sklearn-ex[cpu] implementations": {
"algorithm": [
{ "library": "sklearn", "device": "cpu" },
{ "library": "sklearnex.preview.cluster", "device": "cpu" }
]
},
"common hdbscan parameters": {
"algorithm": {
"estimator": "HDBSCAN",
"estimator_params": {
"min_cluster_size": 5,
"min_samples": 5,
"metric": "euclidean",
"cluster_selection_method": "eom",
"allow_single_cluster": false,
"store_centers": null,
"copy": false
},
"estimator_methods": { "training": "fit" }
},
"data": { "format": "numpy", "order": "C", "dtype": "float64" },
"bench": { "n_runs": 3, "time_limit": 1200 }
},
"sklearn hdbscan parameters": {
"algorithm": {
"estimator_params": { "n_jobs": "[SPECIAL_VALUE]physical_cpus" }
}
},
"hdbscan brute method": {
"algorithm": { "estimator_params": { "algorithm": "brute" } }
},
"hdbscan kd_tree method": {
"algorithm": { "estimator_params": { "algorithm": "kd_tree", "leaf_size": 40 } }
},
"hdbscan ball_tree method": {
"algorithm": { "estimator_params": { "algorithm": "ball_tree", "leaf_size": 40 } }
},
"hdbscan tree methods": {
"algorithm": {
"estimator_params": { "algorithm": ["kd_tree", "ball_tree"], "leaf_size": 40 }
}
},
"hdbscan all methods": {
"algorithm": {
"estimator_params": {
"algorithm": ["brute", "kd_tree", "ball_tree"],
"leaf_size": 40
}
}
}
}
}
4 changes: 4 additions & 0 deletions configs/experiments/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,8 @@

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

`hdbscan_parameters`: sweeps the `HDBSCAN` parameter space (metrics, cluster selection, density thresholds, stored centers, dtypes and data formats) over the `sklearn` and `sklearnex` implementations.

`hdbscan_scaling`: tests thread, NUMA, `n_samples` and `n_features` scalability of `HDBSCAN`.

`nearest_neighbors`: tests performance of neighbors search implementations from `sklearnex`, `sklearn`, `raft`, `faiss` and `svs`.
169 changes: 169 additions & 0 deletions configs/experiments/hdbscan_parameters.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,169 @@
{
"INCLUDE": ["../common/hdbscan.json"],
"PARAMETERS_SETS": {
"hdbscan tree metrics": {
"algorithm": {
"estimator_params": { "metric": ["euclidean", "manhattan", "chebyshev"] }
}
},
"hdbscan minkowski metric": {
"algorithm": {
"estimator_params": { "metric": "minkowski", "metric_params": { "p": 3 } }
}
},
"hdbscan cosine metric": {
"algorithm": {
"estimator_params": { "metric": "cosine", "algorithm": "brute" }
}
},
"hdbscan cluster selection sweep": {
"algorithm": {
"estimator_params": { "cluster_selection_method": ["eom", "leaf"] }
}
},
"hdbscan density sweep": {
"algorithm": {
"estimator_params": { "min_cluster_size": [5, 25, 100], "min_samples": [5, 25] }
}
},
"hdbscan store centers sweep": {
"algorithm": {
"estimator_params": { "store_centers": [null, "centroid", "medoid", "both"] }
}
},
"hdbscan dtype sweep": {
"data": { "dtype": ["float32", "float64"] }
},
"hdbscan data format sweep": {
"data": [
{ "format": "numpy", "order": "C" },
{ "format": "numpy", "order": "F" },
{ "format": "pandas", "order": "F" }
]
},
"hdbscan parameters data [tree]": {
"data": {
"source": "make_blobs",
"generation_kwargs": {
"centers": 10,
"n_samples": 100000,
"n_features": 8,
"cluster_std": 2.0,
"random_state": 42
},
"split_kwargs": { "ignore": true }
}
},
"hdbscan parameters data [brute]": {
"data": {
"source": "make_blobs",
"generation_kwargs": {
"centers": 10,
"n_samples": 25000,
"n_features": 64,
"cluster_std": 4.0,
"random_state": 42
},
"split_kwargs": { "ignore": true }
}
},
"hdbscan parameters data [real]": {
"data": {
"dataset": "skin_segmentation",
"split_kwargs": { "train_size": 30000 },
"preprocessing_kwargs": { "normalize": "standard" }
}
}
},
"TEMPLATES": {
"hdbscan metrics [tree]": {
"SETS": [
"hdbscan sklearn-ex[cpu] implementations",
"common hdbscan parameters",
"sklearn hdbscan parameters",
"hdbscan tree methods",
"hdbscan tree metrics",
"hdbscan parameters data [tree]"
]
},
"hdbscan minkowski [tree]": {
"SETS": [
"hdbscan sklearn-ex[cpu] implementations",
"common hdbscan parameters",
"sklearn hdbscan parameters",
"hdbscan kd_tree method",
"hdbscan minkowski metric",
"hdbscan parameters data [tree]"
]
},
"hdbscan metrics [brute]": {
"SETS": [
"hdbscan sklearn-ex[cpu] implementations",
"common hdbscan parameters",
"sklearn hdbscan parameters",
"hdbscan brute method",
"hdbscan tree metrics",
"hdbscan parameters data [brute]"
]
},
"hdbscan cosine [brute]": {
"SETS": [
"hdbscan sklearn-ex[cpu] implementations",
"common hdbscan parameters",
"sklearn hdbscan parameters",
"hdbscan cosine metric",
"hdbscan parameters data [brute]"
]
},
"hdbscan cluster selection": {
"SETS": [
"hdbscan sklearn-ex[cpu] implementations",
"common hdbscan parameters",
"sklearn hdbscan parameters",
"hdbscan kd_tree method",
"hdbscan cluster selection sweep",
"hdbscan parameters data [tree]"
]
},
"hdbscan density": {
"SETS": [
"hdbscan sklearn-ex[cpu] implementations",
"common hdbscan parameters",
"sklearn hdbscan parameters",
"hdbscan kd_tree method",
"hdbscan density sweep",
"hdbscan parameters data [tree]"
]
},
"hdbscan store centers": {
"SETS": [
"hdbscan sklearn-ex[cpu] implementations",
"common hdbscan parameters",
"sklearn hdbscan parameters",
"hdbscan kd_tree method",
"hdbscan store centers sweep",
"hdbscan parameters data [tree]"
]
},
"hdbscan dtypes": {
"SETS": [
"hdbscan sklearn-ex[cpu] implementations",
"common hdbscan parameters",
"sklearn hdbscan parameters",
"hdbscan all methods",
"hdbscan dtype sweep",
"hdbscan parameters data [real]"
]
},
"hdbscan data formats": {
"SETS": [
"hdbscan sklearn-ex[cpu] implementations",
"common hdbscan parameters",
"sklearn hdbscan parameters",
"hdbscan kd_tree method",
"hdbscan data format sweep",
"hdbscan parameters data [tree]"
]
}
}
}
Loading
Loading