0

Ich verwende Matlab, um Daten mit LDA zu klassifizieren.Ausschließen von Daten mit 0 Varianz in Matlab-Implementierung der linearen Diskriminanzanalyse

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

bekomme ich folgende Fehlermeldung:

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

Ich möchte nicht 'pseudoLinear' oder 'diagLinear' verwenden, da sie die Leistung verschlechtert. Wie kann ich den Nullprädiktor ausschließen?

Antwort

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 

Die Schleife prüft die Varianz jeder Spalte. Die Werte mit niedriger Varianz werden dann gelöscht durch:

dbimgs1(:,delete_id_1(i))=[]; 
Verwandte Themen