pandas RFECV从原始要素数开始

3qpi33ja  于 2023-09-29  发布在  其他
关注(0)|答案(1)|浏览(87)

所以我尝试使用RFECV来建议我应该在X中保留的最佳特征数量来预测y。我的X是一个有121个变量的 Dataframe (混合了一些数据类型,一些是连续的,一些是分类的),我的y是一个包含0和1的单列df。我运行了一些其他惊人的StackOverflow页面的代码:

from sklearn.ensemble import RandomForestClassifier
from sklearn.feature_selection import RFECV
from sklearn.model_selection import StratifiedKFold
rfe = RandomForestClassifier(random_state = 32) 
rfecv  = RFECV(estimator= rfe, step=5, cv=StratifiedKFold(2), scoring="accuracy", verbose=3) 
fit = rfecv.fit(X, y.values.ravel())
print("Optimal number of features : %d" % rfecv.n_features_)

我故意没有选择最小数量的特性,因为我想我会满足RFECV提供的功能(如果是一个特性,我接受)。我选择step=5是因为一步一步地走会花很长时间(因为我有121个变量,在这个阶段保留这些变量确实很重要)。
整个操作看起来很顺利...直到RFECV重新开始有121个功能。下面是输出的样子,没有出现实际的最终建议功能数量:

Fitting estimator with 121 features.
Fitting estimator with 116 features.
Fitting estimator with 111 features.
Fitting estimator with 106 features.
Fitting estimator with 101 features.
Fitting estimator with 96 features.
Fitting estimator with 91 features.
Fitting estimator with 86 features.
Fitting estimator with 81 features.
Fitting estimator with 76 features.
Fitting estimator with 71 features.
Fitting estimator with 66 features.
Fitting estimator with 61 features.
Fitting estimator with 56 features.
Fitting estimator with 51 features.
Fitting estimator with 46 features.
Fitting estimator with 41 features.
Fitting estimator with 36 features.
Fitting estimator with 31 features.
Fitting estimator with 26 features.
Fitting estimator with 21 features.
Fitting estimator with 16 features.
Fitting estimator with 11 features.
Fitting estimator with 6 features.
Fitting estimator with 121 features.
Fitting estimator with 116 features.

这是我第一次这样做,我完全不知道为什么会发生这种情况,也不知道如何修复我的RFECV,给予我一个建议的功能数量,这样我就可以继续前进。我应该咬紧牙关,减少到step=1(即使这将花费一生的时间)吗?建议?
感谢你的评分

kkih6yb8

kkih6yb81#

第一行是从cv的第一个训练折叠 * 上的RFE * 打印的,而接下来的行是在第二个训练折叠上。对于整个训练集上的RFE,将打印另一个集合,但该集合将提前结束(在选定的特征数量处)。
参见https://stackoverflow.com/a/65557483/10495893

相关问题