基于Recursive feature elimination and grid search using scikit-learn,我知道 RFECV
可以与 GridSearchCV
组合以获得更好的模型参数设置,如线性SVM .
如答案所述,有两种方法:
-
“在RFECV上运行GridSearchCV,这将导致数据分成两次折叠(GridSearchCV内部和RFECV内部),但搜索组件数量将是有效的 . ”
-
“仅在RFE上进行GridSearchCV,这将导致数据的单个分割,但是对RFE估计器的参数进行非常低效的扫描 . ”
为了使我的问题清楚,我必须首先澄清RFECV:
-
将整个数据拆分为n个折叠 .
-
在每个折叠中,通过仅将训练数据拟合到
rfe
来获取要素等级 . -
对排名进行排序并将训练数据拟合到
SVM
并在测试数据上进行测试以进行评分 . 这应该进行m次,每次都有减少的特征数量,其中m是假设step=1
的特征数量 . -
在前一步骤中获得了一系列得分,并且在步骤1~3已经进行了n次之后,这样的序列将在n次折叠中进行最后的平均,得到平均得分序列,表明在
rfe
中要做的最佳特征数量 . -
将最佳数量的特征作为
n_features_to_select
中rfe
的参数,与原始整数数据一致 . -
.support_
获取功能中的"winners";.grid_scores_
获得平均得分序列 . -
如果我错了请纠正我,谢谢 .
所以我的问题是在哪里放置GridSearchCV?我想第二种方式"do GridSearchCV just on RFE"是在第5步做GridSearchCV,它将SVM的参数设置为网格中的一个值,使其适合由GridSearchCV分割的训练数据,以获得步骤4中建议的功能数量,并使用分数的其余数据 . 这样的过程在k次完成,平均得分表示网格中该值的良好性,其中k是GridSearchCV中的参数 cv
. 但是,由于替代训练数据和网格值,所选功能可能会有所不同,如果按照我的猜测完成,则第二种方式不合理 .
GridSearchCV实际上如何与RFECV结合?