資源簡介
使用matlab實(shí)現(xiàn)的線性判別分析代碼,輸入、輸出、關(guān)鍵代碼注釋以及示例都有詳細(xì)的說明。代碼正確性已經(jīng)得到驗(yàn)證!
代碼片段和文件信息
%%用LDA將數(shù)據(jù)降維
%?輸入?yún)?shù)
%?data:m*n的原始數(shù)據(jù),m為樣本個數(shù),n為維數(shù)
%?N:各個類別的樣本總數(shù),與data中的數(shù)據(jù)對應(yīng)
%?reduced_dim:新的數(shù)據(jù)維數(shù)
%?輸出參數(shù)
%?reduced_data:經(jīng)過LDA處理后的m*reduced_dim的新數(shù)據(jù)
%?示例
%?data=[2.95?6.63;?2.53?7.79;?3.57?5.65;3.16?5.47;2.58?4.46;?2.16?6.22;?3.27?3.52];
%?N=[4?3];
function?reduced_data=LDA(dataNreduced_dim)
C=length(N);
dim=size(data‘1);
%?計(jì)算每類樣本在data中的起始、終止行數(shù)
pos=zeros(C2);
for?i=1:C
????START=1;
????if?i>1
????????START=START+sum(N(1:i-1));
????end
????END=sum(N(1:i));
????pos(i:)=[START?END];
end
%?每類樣本均值
UI=[];
for?i=1:C
????if?pos(i1)==pos(i2)
????????%?pos(i1)==pos(i2)時,mean函數(shù)不能工作
????????U
評論
共有 條評論