小さなデータ セット (65x8) で単純な LDA を実行したいと考えています。65 個のインスタンス (サンプル)、8 個の機能 (属性)、および 4 個のクラスがあります。Matlab Toolbox には LDA 関数がないことがわかっているため、 LDA の matlab コードはすべて、独自のコードを記述する必要があります。何か助けはありますか?
私はウェブ上でこのコードを見つけます
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
エラー =
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
係数 =
フィールドを持つ 4x4 構造体配列: type name1 name2 const linear
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) があります。したがって、これらの結果を解釈する方法がわかりません。何か助けはありますか?