2016-04-26 12 views
0

私はLDAを使用してデータを分類するためにMatlabを使用しています。matlabの線形判別分析の実装で0分散のデータを除外する方法

mdl = fitcdiscr(dbimgs1,indx,'DiscrimType','linear'); 
    C=predict(mdl,testimgs1); 

私は次のエラーを取得する:

Predictor x741 has zero variance. Either exclude this predictor or set 'discrimType' to 'pseudoLinear' or 'diagLinear'.

私はそれがパフォーマンスを低下させて「擬似線形」または「diagLinear」を使用したくありません。ゼロ予測子を除外するにはどうすればよいですか?

答えて

0
delete_id=[]; 
    for id_var_chk=1:size(dbimgs1,2) 
     if(var(dbimgs1(:,id_var_chk))<1) 
      delete_id=[delete_id,id_var_chk] 
     end 
    end 

ループは各列の分散をチェックします。分散が小さい値は、次に削除されます。

dbimgs1(:,delete_id_1(i))=[]; 
関連する問題