als-statistics
Version:
Modular JS statistics toolkit for Node.js and the browser: descriptive stats, correlations (Pearson/Spearman/Kendall), t-tests & ANOVA (Student/Welch), reliability (Cronbach’s alpha), regression (linear/logistic), clustering (DBSCAN/HDBSCAN), and table/co
46 lines (31 loc) • 1.56 kB
Markdown
<title>Analyze · Clustering</title>
<description>Density-based clustering over **columns** using precomputed distances between series.</description>
<keywords>analyze, clustering, class, dbscan, public, fields, hdbscan, js, new, data, record, string</keywords>
# Analyze · Clustering
Density-based clustering over **columns** using precomputed distances between series.
## Class: `Dbscan`
**Constructor**
```js
new Dbscan(data: Record<string, number[]>, options?: { eps?: number, minPts?: number, metric?: 'mad' })
```
- `eps` (default `0.4`), `minPts` (default `3`), `metric` (default `'mad'`).
### Public fields
- `metric: string`
- `eps: number` · `minPts: number`
- `labels: number[]` – `0` unvisited, `-1` noise, `1..` cluster id per column.
- `clusters: Array<{ id:number, columns:string[] }>` – built by `buildClusters`.
- `distances: number[][]` – symmetric distance matrix.
- Core methods (invoked by constructor): `findNeighbors(i)`, `expandCluster(i, clusterId)`, `run()`.
## Class: `Hdbscan`
**Constructor**
```js
new Hdbscan(data: Record<string, number[]>, options?: { metric?: 'mad', minClusterSize?: number })
```
- `minClusterSize` defaults to `2`.
### Public fields
- `metric: string`, `minClusterSize: number`
- `labels: number[]` – final labels per column.
- `clusters: Array<{ id:number, columns:string[] }>`
- `mreachDistances: number[][]` – mutual reachability distances.
- `mst: Array<[i,j,weight]>` – minimum spanning tree.
- `hierarchy: Array<{ clusterId, lambdaBirth, lambdaDeath, points, size, children }>`