Skip to content

Instantly share code, notes, and snippets.

@jogonba2
Created April 26, 2015 19:09
Show Gist options
  • Save jogonba2/0ca3c5a832d404a2cd26 to your computer and use it in GitHub Desktop.
Save jogonba2/0ca3c5a832d404a2cd26 to your computer and use it in GitHub Desktop.
Gauss MLE classifier for 2 classes (Octave)
# Gauss MLE classifier - 2 classes - #
# Author: Overxfl0w13 #
function [c] = gauss(X,Y,x)
[mX,sigmaX] = matcov(X);
[mY,sigmaY] = matcov(Y);
pX = columns(X) / (columns(X) + columns(Y));
pY = columns(Y) / (columns(X) + columns(Y));
g1 = x'*((-1/2)*inv(sigmaX))*x+(inv(sigmaX)*mX)'*x+log(pX)-(1/2)*log(det(sigmaX))-(1/2)*mX'*inv(sigmaX)*mX;
g2 = x'*((-1/2)*inv(sigmaY))*x+(inv(sigmaY)*mY)'*x+log(pY)-(1/2)*log(det(sigmaY))-(1/2)*mY'*inv(sigmaY)*mY;
if(g1>g2) c = "Clase 1";
else c = "Clase 2";
end
end
function [m,matrizCovarianza] = matcov(X)
m = (1/size(X,2)) * sum(X,2);
t = X .- repmat(m,1,size(X,2));
matrizCovarianza = (1/size(t,2)) * (t*t');
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment