UNPKG

@ai-on-browser/data-analysis-models

Version:

Data analysis model package without any dependencies

79 lines (78 loc) 1.82 kB
/** * @typedef {object} ROCKNode * @property {number[]} [point] Data point of leaf node * @property {number} [index] Data index of leaf node * @property {number} g Number of leaf nodes * @property {number} [distance] Distance between children nodes * @property {ROCKNode[]} [children] Children nodes * @property {ROCKNode[]} leafs Leaf nodes */ /** * RObust Clustering using linKs */ export default class ROCK { /** * @param {number} th Threshold * @param {number} k Number of clusters */ constructor(th: number, k: number); _th: number; _k: number; _f(): number; _g(c1: any, c2: any, links: any): number; _sim(a: any, b: any): number; _link(data: any): Link; /** * Fit model. * @param {Array<Array<number>>} data Training data */ fit(data: Array<Array<number>>): void; _root: { g: number; children: any[]; readonly leafs: any[]; }; /** * Returns the specified number of clusters. * @param {number} number Number of clusters * @returns {ROCKNode[]} Cluster nodes */ getClusters(number: number): ROCKNode[]; /** * Returns predicted categories. * @returns {number[]} Predicted values */ predict(): number[]; } export type ROCKNode = { /** * Data point of leaf node */ point?: number[]; /** * Data index of leaf node */ index?: number; /** * Number of leaf nodes */ g: number; /** * Distance between children nodes */ distance?: number; /** * Children nodes */ children?: ROCKNode[]; /** * Leaf nodes */ leafs: ROCKNode[]; }; declare class Link { _link: any[]; at(i: any, j: any): any; set(i: any, j: any, value: any): void; } export {};