【发布时间】:2017-07-18 09:38:11
【问题描述】:
我使用递归特征消除和交叉验证 (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)中可以看出,它们的排名不是基于分数。我了解排名与交叉验证过程中排除该功能的方式和时间有关。但那么分数与排名有什么关系呢?我希望排名最高的功能得分最高。
Features/Ranking/Scores
b 1 0.692642743
a 1 0.606166207
f 1 0.568833672
i 1 0.54935204
l 2 0.607564808
j 3 0.613495238
e 4 0.626374391
l 5 0.581064621
d 6 0.611407556
c 7 0.570921354
h 8 0.570921354
k 9 0.576863707
g 10 0.576863707
【问题讨论】:
-
您误解了
grid_scores_和ranking_。它们没有任何相关性。grid_scores_不是很多功能。 -
他们的分数是多少?你能详细说明吗?那么排名是多少呢?感谢您抽出宝贵时间。
-
来自文档:“交叉验证分数使得 grid_scores_[i] 对应于第 i 个特征子集的 CV 分数。”它们不代表特征分数。 They represent score of estimator when certain features are selected.
-
你很困惑,因为
grid_scores_的大小与ranking_相同。把step改成1以上,看看效果。
标签: python machine-learning scikit-learn sklearn-pandas