通过RFECV进行特征筛选
时间: 2024-01-04 12:02:09 浏览: 295
RFECV是递归特征消除交叉验证的缩写,用于特征筛选。其基本思想是通过不断的特征剔除和模型评估来选择最优特征集合。
以下是使用RFECV进行特征筛选的步骤:
1. 导入必要的库和数据集。
2. 创建模型评估器。
3. 使用RFECV函数进行特征选择。
4. 根据RFECV的结果,选择最优特征集合。
5. 训练模型并评估其性能。
以下是一个使用RFECV进行特征筛选的示例代码:
``` python
from sklearn.feature_selection import RFECV
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
# 加载数据集
iris = load_iris()
X = iris.data
y = iris.target
# 创建逻辑回归模型
lr = LogisticRegression()
# 创建RFECV模型评估器
rfecv = RFECV(estimator=lr, step=1, cv=5, scoring='accuracy')
# 进行特征选择
rfecv.fit(X, y)
# 输出最优特征数
print("Optimal number of features : %d" % rfecv.n_features_)
# 输出最优特征集合
print("Best features : ", iris.feature_names[rfecv.support_])
# 根据选择的特征训练模型并评估性能
X_new = rfecv.transform(X)
scores = cross_val_score(lr, X_new, y, cv=5, scoring='accuracy')
print("CV Accuracy : %.2f (+/- %.2f)" % (scores.mean(), scores.std()))
```
在上述示例中,我们首先加载了鸢尾花数据集,然后创建了一个逻辑回归模型。接下来,我们使用RFECV进行特征选择,并输出最优特征数和最优特征集合。最后,我们根据选择的特征训练模型,并使用交叉验证评估其性能。
阅读全文