【机器学习】特征工程:特征选择

2021-09-27  本文已影响0人  宅家学算法

  特征选择应该算是机器学习中最重要的环节之一了,虽然在许多机器学习相关的书里很难找到关于特征选择的详细内容。对于特征选择没有被拿出来详解的原因,我个人认为是因为特征选择的工作有很大一部分主观因素在,比如业务领域的见解、个人数据分析的逻辑倾向,还有一些时政的不确定因素。不过,也看到一些意见是认为特征选择要解决的问题对机器学习而言是一种副带作用,一般不会单独拿出来讨论。
  不过,有一点是可以明确的是,好的特征选择能够提升模型的性能,更能进一步改善模型、算法。一开始我的理解特征选择是为了降维(减少特征数量),提升模型效率、增强模型泛化能力,减少过拟合(有限的机会遇到的多位特征太多)。后来,在做轨迹特征表征的时候,也有幸实践了一把增加特征。本文就是简单总结(非穷举)几个特征选择的方法。

1.去掉取值变化小的特征

  首先,该方法只有当特征值都是离散型变量的时候才能用。因此,如果是连续型变量,就需要将连续变量离散化之后才能用。第二,一定是取值变化小的特征,认为该特征在样本特征中不是特别重要,简单来说在样本集这个特征取值相同的样本数量占比很大(比如95%)可以理解为这个特征在模型训练中意义不大。

2.单变量特征选择

  单变量特征选择主要是对每一个特征进行计算,分别单独计算每个变量和特征的某个统计指标,根据所选择的指标衡量该特征和响应变量之间的关系,根据得分扔掉不好的特征。对于分类问题可以采用卡方检验,回归问题可采用皮尔森相关系数。(卡方检验、皮尔森相关系数都是计算线性关系,取值区间为[-1, 1])

3.递归特征消除

  递归特征消除的主要思想是反复的构建模型(如SVM或者回归模型)然后选出最好的(或者最差的)的特征(可以根据系数来选),把选出来的特征剔除出来,然后在剩余的特征上重复这个过程,直到所有特征都遍历了。这个过程中特征被消除的次序就是特征的排序。因此,这是一种寻找最优特征子集的贪心算法。

sklearn官方解释:对特征含有权重的预测模型(例如,线性模型对应参数coefficients),RFE通过递归减少考察的特征集规模来选择特征。首先,预测模型在原始特征上训练,每个特征指定一个权重。之后,那些拥有最小绝对值权重的特征被踢出特征集。如此往复递归,直至剩余的特征数量达到所需的特征数量。

4.正则化/基于机器学习模型

  有些机器学习方法本身就具有对特征进行打分的机制,或者很容易将其运用到特征选择任务中,例如回归模型,SVM,决策树,随机森林等。

上一篇下一篇

猜你喜欢

热点阅读