21 lines
561 B
Matlab
Executable File
21 lines
561 B
Matlab
Executable File
function model = nbGauss(X, t)
|
|
% Naive bayes classifier with indepenet Gaussian, each dimension of data is
|
|
% assumed from a 1d Gaussian distribution with independent mean and variance.
|
|
% Input:
|
|
% X: d x n data matrix
|
|
% t: 1 x n label (1~k)
|
|
% Output:
|
|
% model: trained model structure
|
|
% Written by Mo Chen (sth4nth@gmail.com).
|
|
n = size(X,2);
|
|
k = max(t);
|
|
E = sparse(t,1:n,1,k,n,n);
|
|
nk = full(sum(E,2));
|
|
w = nk/n;
|
|
R = E'*spdiags(1./nk,0,k,k);
|
|
mu = X*R;
|
|
var = X.^2*R-mu.^2;
|
|
|
|
model.mu = mu; % d x k means
|
|
model.var = var; % d x k variances
|
|
model.w = w; |