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