1.3 Feature Extraction and Selection

我们常说数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。那特征工程到底是什么呢?

特征工程是从原始数据出发,构造可以直接作为机器学习模型输入的特征的过程。特征工程主要包括:

  • Feature Extraction (特征提取)

  • Feature Selection(特征选择)

1) Feature Extraction

  • Feature Extraction (特征提取) 从最初的一组测量数据开始,构建旨在提供信息且非冗余的派生值(特征),通过X,创造新的X',以促进后续的学习和泛化过程。

  • 一个非常简单的例子,现在出一非常简答的二分类问题题,请你使用逻辑回归,设计一个身材分类器。输入数据X:身高和体重 ,标签为Y:身材等级(胖,不胖)。显然,不能单纯的根据体重来判断一个人胖不胖,姚明很重,他胖吗?显然不是。针对这个问题,一个非常经典的特征工程是,BMI指数,BMI=体重/(身高^2)。这样,通过BMI指数,就能非常显然地帮助我们,刻画一个人身材如何。甚至,你可以抛弃原始的体重和身高数据。

  • 特征提取是一个降维过程,将原始变量的初始集合降维至更易于管理的组别(特征)进行处理,同时仍然准确、完整地描述原始数据集。

  • 特征提取通常需要基于特定领域的专家知识,也可以基于一些自动化的算法。例如在过去传统的图像分类方法中,有一种是利用一个被称为SIFT(Scale-invariant feature transform)的变换去从图像中计算特征,设计这个变换就需要利用很多专家知识;在近年来发展很快的基于深度学习的图像分类算法中,这种特征提取则是在训练神经网络的过程中自动完成的。

  • 对NGS而言,原始数据是一些reads的序列,传统的分类器是很难直接从reads中学到有用的信息的。我们前面介绍的很多NGS数据的分析方法都可以理解为一种特征提取。例如计算表达矩阵,就是从测序的原始数据出发,再利用我们已知的相应物种的基因组序列和注释这样一些外部信息,进行特征提取,最后得到的特征就是每个基因的表达量。

2) Feature Selection

特征选择指的是,在通过特征提取把特征确定下来之后,我们很多时候并不是把所有的特征都输给机器学习算法,而是只选取一部分特征。特征选择对于无监督学习和有监督学习都是适用的。

  • 对于无监督学习,我们希望特征在样本中应当一定的variation。如果一个特征在不同样本中几乎都是一个恒定值,这个特征对于聚类等任务就没有什么用处。

  • 对于有监督学习,我们希望选取和样本的label有关的变量,舍弃无关的变量,以此降低过拟合风险,增加模型可解释性,减少计算开销。

我们这里着重讨论有监督问题的特征选择。根据特征选择的形式又可以将特征选择方法分为三类:

  • Filter

    • 按照一定的统计指标对单个的特征进行评分,设定阈值或者待选择阈值的个数,选择特征

    • 例如,每一个特征t检验,ANOVA等的p值,和目标变量的互信息等等,都可以作为一个排序的指标

  • Embedded

    • 对于很多机器学习模型而言,训练好模型之后,我们就可以通过一些方式来评估每一个特征对预测结果的贡献,根据贡献的大小就可以设定阈值或者待选择阈值的个数,选择特征

    • 例如,对于logistic回归,我们认为系数绝对数值越大的特征对分类贡献越大;对随机森林,节点平均深度越浅的特征对分类结果贡献越大,等等

  • Wrapper

    • 选用不同的特征子集训练模型,以交叉验证的效果等为优化目标确定最优的组合

    • 我们一般不可能枚举所有组合,而是会采用一些heuristics,如递归特征消除(recursive feature elinmination, RFE)等

不难看出,在这三种方法中,Filter方法并不涉及机器学习模型的训练,只是计算了一些统计指标。后两种都是依赖于机器学习模型的方法。

3) References

Last updated