MATLAB实现LDA(线性判别分析),以两个类别数目为例

%LDA 线性判别分析,以两个类别数目为例
function [w,c] = myLDA(X,Y) %X-数据矩阵,Y-类标签
idx0 = find(Y==0);idx1 = find(Y==1);
[n0 nn0]= size(idx0);[n1 nn1] = size(idx1);
X0 = X(idx0,:);X1 = X(idx1,:);
Sb = (X0'*ones(n0,1)/n0-X1'*ones(n1,1)/n1)*(X0'*ones(n0,1)/n0-X1'*ones(n1,1)/n1)';
Sw = X0'*(eye(n0)-ones(n0)/n0)*X0+X1'*(eye(n1)-ones(n1)/n1)*X1;
[w,c]=eig(Sb,Sw);

你可能感兴趣的:(数据挖掘)