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有如下要求:

所以,estimator中必须有一个fit方法,且包含于特征重要有关的信息——cofe_或者feature importances_。</

SVM-RFE和RFECV用于特征缩减,RFECV通过交叉验证评估特征数目。RFECV通常使用SVC(linear核),但rbf核会导致错误。estimator需有fit方法和coef_或feature_importances_属性。RandomForest满足条件,可用作RFECV的estimator。RFECV的grid_scores_显示每个step的准确性。

177

被折叠的 条评论
为什么被折叠?



