@ai-on-browser/data-analysis-models
Version:
Data analysis model package without any dependencies
97 lines (96 loc) • 3.04 kB
TypeScript
/**
* Hidden Markov model
*/
export class HMM extends HMMBase {
_b: any;
_x_cand: any[];
_type: string;
_bt(x: any, t: any): Matrix<T>;
/**
* Fit model.
* @param {Array<Array<*>>} datas Training data
* @param {boolean} scaled Do scaled calculation or not
*/
fit(datas: Array<Array<any>>, scaled?: boolean): void;
/**
* Returns probability of the datas.
* @param {Array<Array<*>>} datas Sample data
* @returns {number[]} Predicted values
*/
probability(datas: Array<Array<any>>): number[];
/**
* Returns best path of the datas.
* @param {Array<Array<*>>} data Sample data
* @returns {Array<Array<number>>} Predicted path
*/
bestPath(data: Array<Array<any>>): Array<Array<number>>;
}
/**
* Continuous hidden Markov model
*/
export class ContinuousHMM extends HMMBase {
_k: number;
_d: number;
_c: Matrix<T>;
_m: any[];
_s: any[];
_btk(o: any, t: any, k: any): Matrix<T>;
_bt(o: any, t: any): Matrix<T>;
/**
* Fit model.
* @param {Array<Array<number>> | Array<Array<Array<number>>>} x Training data
* @param {boolean} scaled Do scaled calculation or not
*/
fit(x: Array<Array<number>> | Array<Array<Array<number>>>, scaled?: boolean): void;
/**
* Returns probability of the datas.
* @param {Array<Array<number>> | Array<Array<Array<number>>>} datas Sample data
* @returns {number[]} Predicted values
*/
probability(datas: Array<Array<number>> | Array<Array<Array<number>>>): number[];
/**
* Returns best path of the datas.
* @param {Array<Array<number>> | Array<Array<Array<number>>>} data Sample data
* @returns {Array<Array<number>>} Predicted path
*/
bestPath(data: Array<Array<number>> | Array<Array<Array<number>>>): Array<Array<number>>;
/**
* Returns generated values.
* @param {number} n Number of generated data
* @param {number} length Path length
* @returns {Array<Array<Array<number>>>} Generated values
*/
generate(n?: number, length?: number): Array<Array<Array<number>>>;
}
/**
* Hidden Markov model
*/
declare class HMMBase {
/**
* @param {number} n Number of states
*/
constructor(n: number);
_n: number;
_a: Matrix<number>;
_p: Matrix<T>;
_bt(x: any, t: any): void;
_forward(x: any, scaled?: boolean): (Matrix<T> | Matrix<T>[])[];
_backward(x: any, c?: any, prob?: boolean): Matrix<number>[];
_gamma(alpha: any, beta: any): Matrix<number>[];
_xi(x: any, alpha: any, beta: any, c: any): any[][];
_update(gamma: any, xi: any): void;
/**
* Returns probability of the datas.
* @param {Matrix} x Sample data
* @returns {Matrix} Predicted values
*/
probability(x: Matrix): Matrix;
/**
* Returns best path of the datas.
* @param {Matrix} x Sample data
* @returns {Matrix} Predicted path
*/
bestPath(x: Matrix): Matrix;
}
import Matrix from '../util/matrix.js';
export {};