我一直在阅读一些关于特征选择和交叉验证的帖子,但我仍然对正确的程序有疑问。
假设我有一个包含 10 个特征的数据集,我想选择最好的特征。还假设我正在使用最近邻分类器。我可以使用交叉验证执行详尽的搜索来估计错误率作为选择最佳特征的指南吗?类似于以下伪代码
for i=1:( 2^10 -1)
error(i)= crossval(1-nn, selected_fetures(i))
end
i=find(erro(i)==min(error(i));
selected_fetures= selected_features(i);
我试图在这个伪代码中解释的是,我正在对所有可能的特征组合运行交叉验证,并选择误差最小的组合。
我认为这个过程是正确的,因为我正在执行详尽的搜索。特征的选择不是基于整个数据集,而是基于每个分区的平均误差。我是否用这种特征选择过度拟合模型?