import { IMlModel, Type1DMatrix, Type2DMatrix } from '../types'; /** * Multinomial naive bayes machine learning algorithm * * The Naive is an intuitive method that uses probabilistic of each attribute * being in each class to make a prediction. It uses multinomial function to estimate * probability of a given class. * * @example * import { MultinomialNB } from 'machinelearn/naive_bayes'; * * const nb = new MultinomialNB(); * const X = [[1, 20], [2, 21], [3, 22], [4, 22]]; * const y = [1, 0, 1, 0]; * nb.fit({ X, y }); * nb.predict({ X: [[1, 20]] }); // returns [ 1 ] * */ export declare class MultinomialNB implements IMlModel { /** * List of classes * @example * Given [1, 0, 1, 0, 2, 2, 2], categories are * [0, 1, 2] */ private classCategories; /** * Multinomial distribution values. It is always two dimensional values. */ private multinomialDist; private priorProbability; private alpha; /** * Fit date to build Gaussian Distribution summary * * @param {Type2DMatrix} X - training values * @param {ReadonlyArray} y - target values * @returns void */ fit(X?: Type2DMatrix, y?: Type1DMatrix): void; /** * Predict multiple rows * * @param {Type2DMatrix} X - values to predict in Matrix format * @returns T */ predict(X?: Type2DMatrix): T[]; /** * Returns a model checkpoint * * @returns InterfaceFitModelAsArray */ toJSON(): { /** * List of class categories */ classCategories: T[]; /** * Multinomial distribution values over classes */ multinomialDist: Type2DMatrix; /** * Learned prior class probabilities */ priorProbability: Type1DMatrix; }; /** * Restore the model from states * @param multinomialDist - Multinomial distribution values over classes * @param priorProbability - Learned prior class probabilities * @param classCategories - List of unique class categories */ fromJSON({ multinomialDist, priorProbability, classCategories, }?: { multinomialDist: Type2DMatrix; priorProbability: Type1DMatrix; classCategories: Type1DMatrix; }): void; /** * Make a prediction * * @param {ReadonlyArray} predictRow * @returns T */ private singlePredict; /** * Summarise the dataset per class * * @param {Type2DMatrix} X - input distribution * @param {ReadonlyArray} y - classes to train */ private fitModel; }