特征选择/筛选方法总结

作者:jliang

J-JunLiang-CSDN博客

1.特征选择介绍

1)特征分类

  • 相关特征:对于学习任务(例如分类问题)有帮助,可以提升学习算法的效果;
  • 无关特征:对于我们的算法没有任何帮助,不会给算法的效果带来任何提升;
  • 冗余特征:不会对我们的算法带来新的信息,或者这种特征的信息可以由其他的特征推断出;

2)特

### 特征筛选方法与工具 特征筛选是机器学习中的关键环节之一,旨在减少冗余特征并提升模型性能。以下是几种常见的特征筛选方法及其对应的工具: #### 1. **向后淘汰法** 向后淘汰法是一种基于统计显著性的特征选择技术,它从完整的特征集合开始,逐步移除对模型贡献最小的特征[^2]。这种方法的核心在于每次迭代中评估每个特征的重要性,并删除最不重要的那个。此过程重复执行直到达到预设条件为止。 #### 2. **XGBoost 的特征重要性** XGBoost 是一种高效的梯度提升框架,在其中可以通过 `feature_importances_` 属性获取各个特征的重要程度得分[^3]。这些分数反映了各特征对于决策树分裂的影响大小。利用 XGBoost 进行特征选择的一个典型流程如下所示: ```python from sklearn.feature_selection import SelectFromModel import xgboost as xgb model = xgb.XGBClassifier() model.fit(X_train, y_train) selection = SelectFromModel(model, prefit=True) select_X_train = selection.transform(X_train) ``` #### 3. **SHAP 值分析** SHAP (SHapley Additive exPlanations) 提供了一种统一的方式来解释任意机器学习模型输出的结果[^4]。相比于传统的特征重要性衡量方式,SHAP 能够更精确地反映单个样本层面的特征影响。通过 SHAP 图形化展示功能,还可以直观理解哪些因素正向或者负向推动预测值变化。 #### R语言中的特征筛选实践 除了 Python 外,在 R 中同样存在多种手段用于完成这一任务。例如可以借助 caret 包内的 recursive feature elimination 功能实现自动化特征挑选;也可以采用随机森林等内置机制评定变量效用[^1]。 ```r library(caret) set.seed(123) rf_rfe <- rfe(x, y, sizes=c(1:ncol(x)), rfeControl=rfeControl(functions=rfFuncs)) print(rf_rfe) ``` 上述代码片段展示了如何运用caret包里的rfe函数来进行递归特性消除操作。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值