UNPKG

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

Version:

Data analysis model package without any dependencies

67 lines (66 loc) 2.46 kB
/** * Implicit online Learning with Kernels */ export class ILK { /** * @param {number} [eta] Learning rate * @param {number} [lambda] Regularization constant * @param {number} [c] Penalty imposed on point prediction violations. * @param {'gaussian' | 'polynomial' | { name: 'gaussian', s?: number } | { name: 'polynomial', d?: number } | function (number[], number[]): number} [kernel] Kernel name * @param {'square' | 'hinge' | 'logistic'} [loss] Loss type name */ constructor(eta?: number, lambda?: number, c?: number, kernel?: 'gaussian' | 'polynomial' | { name: 'gaussian'; s?: number; } | { name: 'polynomial'; d?: number; } | ((arg0: number[], arg1: number[]) => number), loss?: 'square' | 'hinge' | 'logistic'); _eta: number; _lambda: number; _c: number; _kernel: any; _loss: (f: any, k: any, y: any) => number; _rho: number; _sv: any[]; _a: any[]; /** * Update model parameters with one data. * @param {number[]} x Training data * @param {1 | -1} y Target value */ update(x: number[], y: 1 | -1): void; /** * Fit model. * @param {Array<Array<number>>} x Training data * @param {Array<1 | -1>} y Target values */ fit(x: Array<Array<number>>, y: Array<1 | -1>): void; /** * Returns predicted values. * @param {Array<Array<number>>} data Sample data * @returns {(1 | -1)[]} Predicted values */ predict(data: Array<Array<number>>): (1 | -1)[]; } /** * Sparse Implicit online Learning with Kernels */ export class SILK extends ILK { /** * @param {number} [eta] Learning rate * @param {number} [lambda] Regularization constant * @param {number} [c] Penalty imposed on point prediction violations. * @param {number} [w] Buffer size * @param {'gaussian' | 'polynomial' | { name: 'gaussian', s?: number } | { name: 'polynomial', d?: number } | function (number[], number[]): number} [kernel] Kernel name * @param {'square' | 'hinge' | 'graph' | 'logistic'} [loss] Loss type name */ constructor(eta?: number, lambda?: number, c?: number, w?: number, kernel?: 'gaussian' | 'polynomial' | { name: 'gaussian'; s?: number; } | { name: 'polynomial'; d?: number; } | ((arg0: number[], arg1: number[]) => number), loss?: 'square' | 'hinge' | 'graph' | 'logistic'); _w: number; }