@ai-on-browser/data-analysis-models
Version:
Data analysis model package without any dependencies
67 lines (66 loc) • 2.46 kB
TypeScript
/**
* 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;
}