RFE递归特征筛选python
时间: 2025-01-18 19:36:21 浏览: 51
### 使用RFE递归特征消除进行特征选择
#### 导入必要的库
为了在Python中使用RFE进行特征选择,首先需要导入`sklearn.feature_selection.RFE`模块以及其他必要的工具包。
```python
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.feature_selection import RFE
import pandas as pd
```
#### 创建模拟数据集
这里创建一个二元分类的数据集用于演示目的。实际应用时应替换为真实业务场景中的数据。
```python
X, y = make_classification(n_samples=1000,
n_features=25,
n_informative=3,
n_redundant=2,
n_classes=2,
random_state=42)
df_X = pd.DataFrame(X)
print(df_X.head())
```
#### 初始化估计器和支持向量机模型
选择支持向量分类器作为内部评估模型,并初始化RFE对象指定要保留的最佳特征数目或不设定让其自动决定最佳数量[^1]。
```python
estimator = SVC(kernel="linear")
selector = RFE(estimator, n_features_to_select=5, step=1) # 可选参数step控制每次迭代移除多少比例的特征,默认值为1表示一次只去除最不重要的那个
```
#### 执行特征选择过程
调用fit_transform()方法执行训练并返回经过筛选后的特征矩阵;也可以单独调用fit()完成拟合操作而不改变输入数组形状以便后续分析所选特征的影响程度。
```python
selected_X = selector.fit_transform(X, y)
mask = selector.support_
ranking = selector.ranking_
print(f"Selected features mask:\n{mask}")
print(f"\nFeature ranking:\n{ranking}")
# 输出被选出的重要特征列名(假设原始数据保存在一个DataFrame df_X 中)
important_columns = df_X.columns[mask].tolist()
print("\nThe selected important columns are:", ", ".join(map(str, important_columns)))
```
通过上述代码片段可以清晰地看到,在给定的支持向量机基础上运用了递归方式逐步剔除非关键属性直到满足预设条件为止的过程。
阅读全文
相关推荐



















