SVM-RFE与SVM-RFECV都是用于对特征进行缩减,用于找到数目最优的特征数。RFECV基于RFE基础上,添加了交叉验证,使得在每个step中,都可以对现有的特征数目进行评估,以确定比较好的数目。RFE中需要指定n_features_to_select,而RFECV中需要指定min_features_to_select,二者虽然都要运行到指定挑选特征数目时才停止筛选,但RFECV的每步交叉验证得到特定数目特征的acc,从而可以得到acc达到最大时的最少特征个数。同时,RFECV提供ranking_数组,可以挑选出被选中的特征。
一般来说,RFECV中使用的评估器为SVC,以linear核作为SVC的核,考虑到linear核不如rbf核效率好,尝试换rbf。但使用rbf核的SVC会报一下错误。
回到SVM-RFECV的源码中发现,它需要利用与特征重要性有关的信息:
此外,通过对estimator的注解可以看到,RFECV对estimato有如下要求: