| name | unsupervised-learning |
| description | Unsupervised learning techniques |
| license | MIT |
| compatibility | opencode |
| metadata | {"audience":"machine-learning-engineers","category":"artificial-intelligence"} |
What I do
- Find patterns in unlabeled data
- Cluster similar data points
- Reduce data dimensionality
- Detect anomalies
- Learn representations
- Segment data populations
When to use me
Use me when:
- Data has no labels
- Exploratory analysis needed
- Dimensionality reduction required
- Anomaly detection needed
- Customer segmentation
- Data compression
Key Concepts
Clustering Methods
import numpy as np
from sklearn.cluster import KMeans, DBSCAN, AgglomerativeClustering
from sklearn.mixture import GaussianMixture
from sklearn.metrics import silhouette_score
kmeans = KMeans(n_clusters=3, random_state=42)
labels = kmeans.fit_predict(X)
centers = kmeans.cluster_centers_
silhouette_scores = []
for k in range(2, 10):
kmeans = KMeans(n_clusters=k)
score = silhouette_score(X, kmeans.fit_predict(X))
silhouette_scores.append(score)
dbscan = DBSCAN(eps=0.5, min_samples=5)
labels = dbscan.fit_predict(X)
hierarchical = AgglomerativeClustering(n_clusters=3)
labels = hierarchical.fit_predict(X)
gmm = GaussianMixture(n_components=3)
gmm.fit(X)
labels = gmm.predict(X)
probs = gmm.predict_proba(X)
Dimensionality Reduction
from sklearn.decomposition import PCA, TruncatedSVD
from sklearn.manifold import TSNE
pca = PCA(n_components=0.95)
X_pca = pca.fit_transform(X)
tsne = TSNE(n_components=2, perplexity=30)
X_tsne = tsne.fit_transform(X)
svd = TruncatedSVD(n_components=100)
X_svd = svd.fit_transform(X)
Anomaly Detection
from sklearn.ensemble import IsolationForest
from sklearn.neighbors import LocalOutlierFactor
iso = IsolationForest(contamination=0.1)
outliers = iso.fit_predict(X)
lof = LocalOutlierFactor(n_neighbors=20, contamination=0.1)
outliers = lof.fit_predict(X)