使用SelectKBest进行特征筛选
时间: 2023-07-11 19:24:08 浏览: 98
`SelectKBest` 是 scikit-learn 中的一个特征选择工具,可以根据指定的评分函数选择最优特征。
以下是使用 `SelectKBest` 进行特征选择的一般流程:
1. 导入 `SelectKBest` 和评分函数(如 `f_classif`、`mutual_info_classif` 等)。
```python
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import f_classif
```
2. 创建 `SelectKBest` 对象,设置评分函数和选择的特征数量 k。
```python
selector = SelectKBest(score_func=f_classif, k=k)
```
3. 使用 `fit_transform` 方法对原始数据进行特征选择,返回被选择的 k 个特征。
```python
X_new = selector.fit_transform(X, y)
```
其中,`X` 是原始数据的特征矩阵,`y` 是对应的标签向量。`fit_transform` 方法同时对训练集进行拟合和转换。
4. 如果需要,也可以使用 `get_support` 方法获取被选择特征的索引或布尔类型数组。
```python
selector.get_support(indices=True)
selector.get_support(mask=True)
```
注意:在进行特征选择前,应该将特征矩阵和标签向量分别拆分成训练集和测试集,以免特征选择过程中泄露测试集信息。
阅读全文