@ai-on-browser/data-analysis-models
Version:
Data analysis model package without any dependencies
92 lines (91 loc) • 2.42 kB
TypeScript
/**
* Linear discriminant analysis
*/
export class LinearDiscriminant {
_x: number[][];
_y: (1 | -1)[];
_w: Matrix<number>;
_w0: number;
_s(x: any): void;
/**
* Initialize this model.
* @param {Array<Array<number>>} train_x Training data
* @param {Array<1 | -1>} train_y Target values
*/
init(train_x: Array<Array<number>>, train_y: Array<1 | -1>): void;
/**
* Fit model parameters.
*/
fit(): void;
/**
* Returns predicted datas.
* @param {Array<Array<number>>} data Sample data
* @returns {(1 | -1)[]} Predicted values
*/
predict(data: Array<Array<number>>): (1 | -1)[];
}
/**
* Fishers linear discriminant analysis
*/
export class FishersLinearDiscriminant {
_x: number[][];
_y: (1 | -1)[];
_w: Matrix<number>;
_m: Matrix<number>;
/**
* Initialize this model.
* @param {Array<Array<number>>} train_x Training data
* @param {Array<1 | -1>} train_y Target values
*/
init(train_x: Array<Array<number>>, train_y: Array<1 | -1>): void;
/**
* Fit model parameters.
*/
fit(): void;
/**
* Returns predicted datas.
* @param {Array<Array<number>>} data Sample data
* @returns {(1 | -1)[]} Predicted values
*/
predict(data: Array<Array<number>>): (1 | -1)[];
}
/**
* Multiclass linear discriminant analysis
*/
export class MulticlassLinearDiscriminant {
/**
* Fit model.
* @param {Array<Array<number>>} x Training data
* @param {*[]} y Target values
*/
fit(x: Array<Array<number>>, y: any[]): void;
_c: any[];
_a: any[];
_m: any[];
_s: Matrix<number>;
_sinv: Matrix<number>;
/**
* Returns predicted categories.
* @param {Array<Array<number>>} data Sample data
* @returns {*[]} Predicted values
*/
predict(data: Array<Array<number>>): any[];
}
/**
* Linear discriminant analysis
*/
export class LinearDiscriminantAnalysis {
/**
* @param {number | null} [rd] Reduced dimension
*/
constructor(rd?: number | null);
_rd: number;
/**
* Returns reduced values.
* @param {Array<Array<number>>} x Training data
* @param {number[]} t Target values
* @returns {Array<Array<number>>} Predicted values
*/
predict(x: Array<Array<number>>, t: number[]): Array<Array<number>>;
}
import Matrix from '../util/matrix.js';