BreezeML

Clustering

Finding groups when you have NO labels (customer segments, anomalies, topics). Nine algorithms, each returning labels plus a quality score.

Test any modelRun here

Pick a model, press Run, and it trains and cross-validates on the spot, in your browser.

Results will appear here.

All 9 clusterers

call as breezeml.clustering.<name>(df).

ModelCallGood for
K-MeanskmeansFast, round clusters when you know how many (k).
AgglomerativeagglomerativeBuilds a hierarchy of nested groups.
DBSCANdbscanFinds dense blobs of any shape; flags noise.
HDBSCANhdbscanDBSCAN that picks the density for you.
Gaussian Mixturegaussian_mixtureSoft, elliptical clusters with probabilities.
BIRCHbirchMemory-friendly clustering for large data.
SpectralspectralGraph-based; great on non-convex shapes.
Mean ShiftmeanshiftFinds clusters without setting k.
OPTICSopticsDensity clustering across varying scales.

clustering.kmeans()

clustering.kmeans(df, n_clusters=3) -> dict

Returns the cluster labels and a silhouette score (how well-separated the groups are).

In plain English: Sorts rows into k groups by similarity and tells you how cleanly they separated.

Exampleruns locally after pip install
import breezeml

df = breezeml.datasets.iris().drop(columns=["species"])
res = breezeml.clustering.kmeans(df, n_clusters=3)
print("silhouette:", round(res["silhouette"], 3))

See clusters form from nothing

unsupervised groupingRun here

Clustering gets NO answer column. It groups points purely by how close they are. Press Run to watch it rediscover the flower groups using only two measurements, no labels at all.

In plain English: No answer key at all. It groups points just by how close together they sit, and often rediscovers the real groups on its own.

Try it yourself
Output

Press Run to execute this snippet.

All sections