資源簡介
使用matlab實現的線性判別分析代碼,輸入、輸出、關鍵代碼注釋以及示例都有詳細的說明。代碼正確性已經得到驗證!
代碼片段和文件信息
%%用LDA將數據降維
%?輸入參數
%?data:m*n的原始數據,m為樣本個數,n為維數
%?N:各個類別的樣本總數,與data中的數據對應
%?reduced_dim:新的數據維數
%?輸出參數
%?reduced_data:經過LDA處理后的m*reduced_dim的新數據
%?示例
%?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);
%?計算每類樣本在data中的起始、終止行數
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函數不能工作
????????U
評論
共有 條評論