返回

特征选择

发布时间:2023-09-12 17:56:15 210


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

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

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


特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
实现单层感知器 2023-09-12 15:10:32