我使用递归特征消除和交叉验证(rfecv)来为我拥有的几个特性(m=154)找到最好的精度分数。在
rfecv = RFECV(estimator=logreg, step=1, cv=StratifiedKFold(2),
scoring='accuracy')
rfecv.fit(X, y)
排名(rfecv.ranking_
)和相关得分(rfecv.grid_scores_
)让我很困惑。从前13个特性(排名前10)中可以看出,它们的排名不是基于分数。我知道排名与如何以及何时在交叉验证过程中排除该特性有关。但是分数和排名有什么关系呢?我希望排名最高的功能会有最高的分数。在
_grid_scores
不是第i个特征的分数,它是估计器用第i个特征子集训练时产生的分数。在要理解这意味着什么,记住递归特征消除(RFE)的工作原理是训练模型,评估它,然后删除{}最不重要的特性,然后重复。在
因此,
_grid_score[-1]
将是对所有特征进行训练的估计器的分数。_grid_score[-2]
将是去掉step
特征的估计器的分数。_grid_score[-3]
将是去掉2*step
特征的估计器的分数。在因此,网格分数并不反映单个特征的得分。事实上,如果步长大于1,网格分数将比特征值少。在
相关问题 更多 >
编程相关推荐