机器学习模型特征选择方法研究
在机器学习模型构建过程中,特征选择是提升模型性能、减少过拟合风险的关键步骤。本文通过实验对比了多种特征选择方法的效果。
实验设置
使用UCI机器学习库中的wine数据集,共178个样本,13个特征,3个类别。模型采用随机森林分类器,评估指标为准确率。
方法对比
1. 方差阈值法
from sklearn.feature_selection import VarianceThreshold
selector = VarianceThreshold(threshold=0.1)
X_selected = selector.fit_transform(X)
2. 单变量特征选择
from sklearn.feature_selection import SelectKBest, f_classif
selector = SelectKBest(score_func=f_classif, k=5)
X_selected = selector.fit_transform(X, y)
3. 递归特征消除
from sklearn.feature_selection import RFE
from sklearn.ensemble import RandomForestClassifier
estimator = RandomForestClassifier()
selector = RFE(estimator, n_features_to_select=5)
X_selected = selector.fit_transform(X, y)
4. 基于模型的特征重要性
from sklearn.feature_selection import SelectFromModel
from sklearn.ensemble import RandomForestClassifier
estimator = RandomForestClassifier()
estimator.fit(X, y)
selector = SelectFromModel(estimator, threshold='median')
X_selected = selector.fit_transform(X, y)
实验结果
| 方法 | 特征数量 | 准确率 | 备注 |
|---|---|---|---|
| 原始特征 | 13 | 0.972 | - |
| 方差阈值 | 10 | 0.978 | 移除低方差特征 |
| 单变量 | 5 | 0.961 | 保留最优单变量特征 |
| RFE | 5 | 0.983 | 递归选择最优特征 |
| 模型重要性 | 7 | 0.972 | 基于随机森林重要性 |
实验表明,RFE方法在保持较高准确率的同时实现了有效的特征降维,建议在实际项目中优先考虑此方法。

讨论