机器学习算法/模型——特征工程

特征工程

    • 1. 特征工程
    • 2. 特征获取
      • 2.1 特征提取
      • 2.2 特征构造
      • 2.3 特征生成(降维等)
    • 3. 特征选择
    • 3.1 两方面考虑:方差、相关性
      • 3.2 特征选择方法

1. 特征工程

机器学习算法/模型——特征工程_第1张图片
对于机器学习来说,数据的重要性毋庸置疑,好比炒菜时的原材料直接决定了菜品的好坏。

所谓的特征工程,其本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用。

简单来说就是为机器学习算法准备合适的训练数据和特征的过程——先清洗原始数据,再提取特征出或者进一步构造和生成新的特征,所以可以分为特征获取特征选择两个大的方面:

  • 特征获取:提取、创造或者生成新特征
    主要包括特征提取、特征构造、特征生成三个点。

  • 特征选择:从获取的特征中选择最合适的特征
    主要包括过滤包装集成三种方法。

2. 特征获取

这里所说的特征获也可以算作数据预处理中的一环,数据清洗——向量化的过程也就完成了特征获取的过程。
这里只是以特征为主,总结一下在整个机器学习过程中出现的几个典型的”特征形成方式“。

2.1 特征提取

特征提取是指将机器学习算法不能识别的原始数据转化为算法可以识别的特征的过程。这可以视作是一个将原始数据转换为数值特征的过程(向量化)。

狭义的特征工程也叫做特征提取。

2.2 特征构造

特征构造就是构造出来新的特征,一般都是通过对原有的特征进行四则运算产生新的特征

比如原来的特征是x1和x2,那么x1+x2就是一个新的特征,或者当x1大于某个数c的时候,就产生一个新的变量x3,并且x3=1,当x1小于c的时候,x3=0,所以这样看来呢,可以按照这种方法构造出很多特征,这个就是构造。

2.3 特征生成(降维等)

特征生成和特征构造有些相似,但是还是存在一些区别的,特征生成的话,比如主成分分析或者因子分析,都可以对原有数据进行特征生成,比如卷积神经网络的卷积层就是一个特征生成的过程,一张图片,经过卷积的不断扫描,就会把原始图片里边的好多特征逐步提取出来,这个就是特征生成。

再如通过主成分分析对原始数据进行降维,那么降维后,每个主成分其实就代表一个新的特征,同样因子分析也具有这方面的功能,通过因子分析可以把潜在变量后面的潜在因子找出来。

特征生成和特征构造,其实就是想尽各种办法产生个新的特征。

注:特征生成,比如降维,一般用在特征选择之后进行

3. 特征选择

特征选择特征工程里的重头戏!其实,跟开篇图中说的一样,其实本质就是降维。

3.1 两方面考虑:方差、相关性

当数据预处理完成后,我们需要选择有意义的特征输入机器学习的算法和模型进行训练。通常来说,从两个方面考虑来选择特征:

  • 特征是否发散
    如果一个特征不发散,例如方差接近于0,也就是说样本在这个特征上基本上没有差异,这个特征对于样本的区分并没有什么用。
  • 特征与目标的相关性
    这点比较显见,与目标相关性高的特征,应当优选选择。

所以,本质是不是跟降维所思考的角度高度一致?

3.2 特征选择方法

根据特征选择的形式又可以将特征选择方法分为3种:

  • Filter:过滤法,按照发散性或者相关性对各个特征进行评分,设定阈值或者待选择阈值的个数,选择特征。

  • Wrapper:包装法,根据目标函数(通常是预测效果评分),每次选择若干特征,或者排除若干特征。

  • Embedded:集成法,先使用某些机器学习的算法和模型进行训练,得到各个特征的权值系数,根据系数从大到小选择特征。类似于Filter方法,但是是通过训练来确定特征的优劣。

下面从统计学和机器学习两个角度来分别说下特征选择的方法。

  • 统计学角度
    统计学中可以使用回归进行特征选择,比如自变量x的回归系数如果是不显著的,那么我们就认为它不是一个好的特征。(“过滤法”)

    统计学中,除了看显著性,还有常用的手段就是,先把所有的变量一起和y做一个回归,在逐渐去掉某些x,观察模型的deviance如何变化,这类方法就叫 Wrapper Methods。(“包装法”)

    如果因变量y是离散的,那么我们的回归对应的就是广义线性回归模型了,一般做法是单独将每个x和y做一个回归,完后再计算这个模型对应的基尼系数,通过观察基尼系数确定哪个方程对应的特征是最好的。
    但是这种方法存在缺点,一个是每一个变量都需要单独和y做回归,比较麻烦。第二个是按照这种方法选出来的特征,其实效果不行,也就是在测试集上面表现并不好。

    lasso回归这时就发挥了作用,lasso这个单词是套索的意思。就是套着马脖子,主要是控制马的装置,那么在回归当中主要是套回归系数的,意思是把回归系数控制住,不让它太大,本质上是一种正则化的手段。为了控制回归系数不太大,lasso回归选择了很巧妙的一种刻画方式,不仅可以约束系数,而且可以在模型最优的时候把不重要的系数约束为0。这样也就不用看显著性了,直接做到了特征选择,或者变量选择。目前看,这个方法是效果是非常好的,而且非常实用与高维数据分析。这类方法就叫Embedded Methods。(”集成法“)

  • 机器学习角度

机器学习角度相关的特征选择的算法,最容易想到就是回归树或者叫做决策树。实际上除了决策树,随机深林(random forest),bagging,boosting,gradient booting, 以及 xgboost 都有特征选择的功能。

我们可以使用sklearn中的 feature_selection 库来进行特征选择。

机器学习算法/模型——特征工程_第2张图片

参考:
BAT面试题4:简单聊聊特征工程

你可能感兴趣的:(机器学习(ML))