我想對我的小數據集(65x8)執行簡單的LDA。我有65個實例(樣本),8個特徵(屬性)和4個類別。任何LDA的matlab代碼,因爲我知道Matlab Toolbox沒有LDA函數所以我需要編寫自己的代碼。任何幫助?MatLab中的任何LDA代碼示例?
我在網上找到這段代碼
load /Data;
All_data= Data(:,1:8);
All_data_label= Data(:,9);
testing_ind = [];
for i = 1:length(Data)
if rand>0.8
testing_ind = [testing_ind, i];
end
end
training_ind = setxor(1:length(Data), testing_ind);
[ldaClass,err,P,logp,coeff] = classify(Data(testing_ind,:),...
Data((training_ind),:),Data_label(training_ind,:),'linear');
[ldaResubCM,grpOrder] = confusionmat(All_data_label(testing_ind,:),ldaClass)
然後我得到這個結果 ldaClass =
3
2
3
2
1
4
3
3
1
2
1
1
2
ERR =
0.2963
P =
0.0001 0.0469 0.7302 0.2229
0.1178 0.5224 0.3178 0.0419
0.0004 0.2856 0.4916 0.2224
0.0591 0.6887 0.1524 0.0998
0.8327 0.1637 0.0030 0.0007
0.0002 0.1173 0.3897 0.4928
0.0000 0.0061 0.7683 0.2255
0.0000 0.0241 0.5783 0.3976
0.9571 0.0426 0.0003 0.0000
0.2719 0.5569 0.1630 0.0082
0.9999 0.0001 0.0000 0.0000
0.9736 0.0261 0.0003 0.0000
0.0842 0.6404 0.2634 0.0120
=係數_
4×4結構陣列字段: 類型 NAME1 NAME2 常量 線性
ldaResubCM =
4 0 0 0
0 3 1 0
0 1 1 0
0 0 2 1
grpOrder =
1
2
3
4
所以我有65個實例,8個屬性和4個類(1,2,3,4)。所以不知道如何解釋這些結果。任何幫助?
LDA在Statistics Toolbox的'classify'中實現。如果你沒有 - 呃,你有什麼嘗試? [LDA公式](https://en.wikipedia.org/wiki/Linear_discriminant_analysis)可以直接在Matlab中實現。你卡在哪裏? –
我編輯我的問題。我用分類,但不知道這些結果是什麼意思 – user3035413
我修改了這個問題。找到一個代碼,並使用分類,但不知道我得到的是平庸的,以及如何使用這些結果。 – user3035413