具有RFECV的GridSearchCV在sklearn中的含义

Fra*_*cis 7 feature-selection scikit-learn cross-validation

基于递归特征消除和使用scikit-learn的网格搜索,我知道RFECV可以结合使用GridSearchCV以获得更好的模型参数设置,如线性SVM.

如答案所述,有两种方法:

  • "在RFECV上运行GridSearchCV,这将导致数据分成两次折叠(GridSearchCV内部和RFECV内部),但搜索组件数量将是有效的."

  • "GridSearchCV仅针对RFE,这将导致数据的单一分割,但是对RFE估计器的参数进行非常低效的扫描."

为了使我的问题清楚,我必须首先澄清RFECV:

  1. 将整个数据拆分为n个折叠.

  2. 在每个折叠中,通过仅拟合训练数据来获得特征等级rfe.

  3. 对排名进行排序并使训练数据适合SVM并在测试数据上进行测试以进行评分.这应该进行m次,每次都有减少的特征数量,其中m是假设的特征数量step=1.

  4. 在前一步骤中获得一系列得分,并且在步骤1~3已经进行n次之后,这样的序列将最后在n次折叠中平均,得到平均评分序列,表明要做的最佳特征数rfe.

  5. 以功能最数目的参数n_features_to_selectrfe装有原始整个数据.

  6. .support_获得特色中的"赢家"; .grid_scores_得到平均得分序列.

  7. 如果我错了请纠正我,谢谢.

所以我的问题是在哪里放置GridSearchCV?我猜第二种方式"在RFE上做GridSearchCV"是在第5步做GridSearchCV,它将SVM的参数设置为网格中的一个值,使其适合GridSearchCV分割的训练数据,以获得步骤中建议的功能数量4,并用其余的数据进行测试以获得分数.这样的过程在k次完成,平均得分表示网格中该值的良好性,其中k是cvGridSearchCV中的参数.但是,由于替代训练数据和网格值,所选功能可能会有所不同,如果按照我的猜测完成,则第二种方式不合理.

GridSearchCV实际上如何与RFECV结合?