特征选择

一、什么是特征选择?
特征选择是对 根据所研究的问题 的 数据 根据数据字段与标签或者结果之间的相关程度进行选择,是效率(所研究问题的数据对问题结果的有效影响)达到最大化。

二、为什么要进行特征选择?

  1. 维度灾难 - 过度拟合 : 一般经验是当数据中的列数多于行数,可能会对模型产生不好的影响,即模型会过度地拟合数据,导致模少泛化能力。此外,大量特征使得模型体积庞大,耗时,并且难以在生产中实施。
  2. 可解释性:希望模型简单并可解释。当有非常多的特征时,将会失去可解释性。
  3. garbage in - garbage out : 很多数时候,我们会有许多非信息化特征。例如,名称或ID变量这些无意义的特征,如果不进行特征选择,那么这些质量比较差的输入特征也就会产生质量差的输出。

三、如何进行特征选择?

核心就是只选择有用的特征,可以通过很多方式来做,通常可以分为三种。

  • 基于过滤器:指定一些指标并基于此过滤特征,例如:相关性/卡方检验。
  • 基于包装器:包装器方法将选择一组特征视为搜索问题,例如:递归特征消除方法。
  • 嵌入式:嵌入式方法使用具有内置特征选择方法的算法,例如:Lasso和RF有自己的特征选择方法。

进行特征选择之前一般需要做一些预处理,如删除空值和独热编码、错误值等等。

1 . 皮尔逊相关系数(pearson):这是一种基于过滤器的方法。
在这里插入图片描述
2.卡方检验(chi-squared)
这也是基于过滤器的方法。
在这种方法中,计算目标和数值变量之间的卡方度量,只选择具有最大卡方值的变量。

3. 递归特征消除
这是一种基于包装器的方法。正如之前所说,包装器方法将特征选择视为搜索问题。

递归特征消除(RFE)的目标是通过递归地考虑越来越小的特征集来选择特征。首先,在初始特征集上训练估计器,并且通过 coef_ 属性或通过 feature_importances_ 属性获得每个特征的重要性。然后,从当前的一组特征中删除最不重要的特征。在修剪的集合上递归地重复该过程,直到最终到达所需数量的要选择的特征。

4. Lasso:从模型中选择
这是一种嵌入式方法。如前所述,嵌入式方法使用具有内置特征选择方法的算法。
例如,Lasso和RF有自己的特征选择方法。Lasso Regularizer强制将许多特征权重归零。

5. 基于树:SelectFromModel

还可以使用随机森林,根据特征的重要性选择特征。

使用每个决策树中的节点杂质计算特征的重要性。在随机森林中,最终的特征重要性是所有决策树特征重要性的平均值。也可以使用LightGBM,或者XGBoost对象,只要它有一个feature_importances_属性。

6.将多种选择器组合使用
尝试组合多种选择方法进行特征筛选,计算各种特征出现的频次,并按照频次对特征排序,或者以概率的角度对多种选择器的结果进行筛选。

7.根据经验进行特征选择
根据自己的经验在所研究问题的数据上进行特征选择,当然这是风险第二大的,因为风险最大的是你直接使用数据训练算法(俗称算法盲人、或者喂数据),而不去探究数据里的信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tony Einstein

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值