0

Я использую Matlab для классификации данных с использованием LDA.Как исключить данные с 0 дисперсией в реализации Matlab линейного дискриминантного анализа

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))=[]; 
Смежные вопросы