我有871个科目的271个功能,涵盖两个班级。并非我的功能集中的所有功能都是必需的。因此,我尝试使用MATLAB的“ sequentialfs”,这是一种顺序特征选择算法。我使用了向后顺序功能选择。因此,首次使用该算法时,该算法丢弃了约25个特征。准确性有所提高。我再次对先前选择的特征运行了特征选择算法,并再次放弃了一些特征。我反复进行了迭代,最终找到了最佳特征子集。为什么“ sequentialfs”算法在达到最佳特征子集之前就停止了?我要添加一部分代码。
obs=Features; %These are the 271 features
grp=LABELS; %Label of the features (Two classes only)
c = cvpartition(grp,'k',10);
opts = statset('display','iter');
fun = @(xtrain,ytrain,xtest,ytest) sum(ytest ~=predict(fitcdiscr(xtrain,ytrain),xtest)); %Criterion
[fs,history] = sequentialfs(fun,obs,grp,'cv',c,'options',opts, 'direction','backward'); %Calling the backward sequential feature selection