@ai-on-browser/data-analysis-models
Version:
Data analysis model package without any dependencies
58 lines (57 loc) • 1.76 kB
TypeScript
/**
* Weighted Blurring Mean shift
*/
export default class WeightedBlurringMeanShift {
/**
* @param {number} h Smoothing parameter for the kernel
* @param {number} lambda Distance threshold for determining same cluster
* @param {number} threshold Distance threshold for determining same cluster
* @param {'gaussian' | 'rectangular' | 'triangular' | 'epanechnikov' | 'biweight' | 'triweight' | { name: 'gaussian' } | { name: 'rectangular' } | { name: 'triangular' } | { name: 'epanechnikov' } | { name: 'biweight' } | { name: 'triweight' } | function (number): number} [kernel] Kernel name
*/
constructor(h: number, lambda: number, threshold: number, kernel?: "gaussian" | "rectangular" | "triangular" | "epanechnikov" | "biweight" | "triweight" | {
name: "gaussian";
} | {
name: "rectangular";
} | {
name: "triangular";
} | {
name: "epanechnikov";
} | {
name: "biweight";
} | {
name: "triweight";
} | ((arg0: number) => number));
_x: number[][];
_c: any[];
_h: number;
_lambda: number;
_threshold: number;
_kernel: any;
/**
* Category list
* @type {number[]}
*/
get categories(): number[];
/**
* Number of clusters
* @type {number}
*/
get size(): number;
_distance(a: any, b: any): number;
/**
* Initialize model.
* @param {Array<Array<number>>} data Training data
*/
init(data: Array<Array<number>>): void;
_w: any;
/**
* Returns predicted categories.
* @returns {number[]} Predicted values
*/
predict(): number[];
/**
* Fit model.
* @returns {boolean} `true` if any centroids has moved
*/
fit(): boolean;
}