| name | clustering |
| description | Discover patterns in unlabeled data using clustering, dimensionality reduction, and anomaly detection |
| version | 1.4.0 |
| sasmp_version | 1.4.0 |
| bonded_agent | 03-unsupervised-learning |
| bond_type | PRIMARY_BOND |
| parameters | {"required":[{"name":"X","type":"array","validation":"2D array, scaled numeric"}],"optional":[{"name":"n_clusters","type":"integer","default":null,"validation":"2 <= n <= 50"},{"name":"method","type":"string","default":"kmeans","validation":"[kmeans|dbscan|hierarchical|hdbscan]"}]} |
| retry_logic | {"strategy":"exponential_backoff","max_attempts":3,"base_delay_ms":1000} |
| logging | {"level":"info","metrics":["n_clusters","silhouette_score","execution_time"]} |
Clustering Skill
Discover hidden patterns and groupings in unlabeled data.
Quick Start
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import silhouette_score
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
kmeans = KMeans(n_clusters=5, random_state=42, n_init=10)
labels = kmeans.fit_predict(X_scaled)
score = silhouette_score(X_scaled, labels)
print(f"Silhouette Score: {score:.4f}")
Key Topics
1. Clustering Algorithms
| Algorithm | Best For | Key Params |
|---|
| K-Means | Spherical clusters | n_clusters |
| DBSCAN | Arbitrary shapes, noise | eps, min_samples |
| Hierarchical | Nested clusters | linkage |
| HDBSCAN | Variable density | min_cluster_size |
from sklearn.cluster import KMeans, DBSCAN, AgglomerativeClustering
import hdbscan
algorithms = {
'kmeans': KMeans(n_clusters=5, random_state=42),
'dbscan': DBSCAN(eps=0.5, min_samples=5),
'hierarchical': AgglomerativeClustering(n_clusters=5),
'hdbscan': hdbscan.HDBSCAN(min_cluster_size=15)
}