Linear discriminant analysis -test data
Mostrar comentarios más antiguos
Hello, Please I would like to check my new point to see if my algorithm works well. I don't have complete understanding on : if a new data is tested, what code I should write or equation I should use to test the new point? Here is the code.
% This example deals with 2 classes
c1=[1 2;2 3;3 3;4 5;5 5] % the first class 5 observations
c2=[1 0;2 1;3 1;3 2;5 3;6 5] % the second class 6 observations
scatter(c1(:,1),c1(:,2),6,'r'),hold on;
scatter(c2(:,1),c2(:,2),6,'b'),
% Number of observations of each class
n1=size(c1,1)
n2=size(c2,1)
%Mean of each class
mu1=mean(c1)
mu2=mean(c2)
% Average of the mean of all classes
mu=(mu1+mu2)/2
% Center the data (data-mean)
d1=c1-repmat(mu1,5,1)
d2=c2-repmat(mu2,6,1)
% Calculate the within class variance (SW)
s1=d1'*d1
s2=d2'*d2
sw=s1+s2
invsw=inv(sw)
% in case of two classes only use v-direction of projection
v=invsw*(mu1-mu2)'
% if more than 2 classes calculate between class variance (SB)
sb1=n1*(mu1-mu)'*(mu1-mu)
sb2=n2*(mu2-mu)'*(mu2-mu)
SB=sb1+sb2
v=invsw*SB
% find eigne values and eigen vectors of the (v)
[evec,eval]=eig(v)
% Sort eigen vectors according to eigen values (descending order) and
% neglect eigen vectors according to small eigen values
% v=evec(greater eigen value)
% or use all the eigen vectors
% project the data of the first and second class respectively
y2=c2*v
y1=c1*v
unique(c1)
Respuestas (0)
Categorías
Más información sobre Dimensionality Reduction and Feature Extraction en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!