工欲善其事,必先利其器

机器学习炼丹炉要想练出好模型,除了要有好的学习方法外,好的调料(特征)也是必不可少的。

「维度灾难」大家都不陌生,它的外文名叫「The Curse of Dimensionality」。我觉得翻译成为维度诅咒,更为贴切。随著训练样本特征数的由少到多,机器学习模型的准确率会先显著提升,但是当特征数继续增加,模型训练时间大幅上升,准确率不但不会上升,反而会下降,并且无可避免地陷入「过拟合」的泥潭,更为严重的是当某些无关特征加入学习器时,会对模型的准确度造成极大影响。

(a)图中的所体现的特征就是一个较好的相关特征, f_1<1和f_1>2 两个条件清楚的将样本分为了两类。

(b)图中的 f_2 虽然可以将样本清楚的分为两类,但是其和 f_1 的取址区域完全重叠,加入并学习器中不会提升模型准确率反而会增大训练难度,成为冗余特征。

(c)图中 f_3 完全无法区分样本,成为无光特征,这种特征若是加入炼丹炉中,并且赋予其和其他特征相等的地位,会极大毒害生成的模型。

特征工程中的一大板块,特征选择应运而生。

特征选择目前的方法主要有三种,Filter(筛)式,Wrapper(包裹)式,Embedded(嵌入)式。三种方法各有利弊,在此简单介绍一下。

Filter式的特点是独立。就像一个筛子,在样本进入学习器之前,就对特征进行筛选,将价值低的特征从样本中剔除,达到降维的目的。其优点是迅速,但是可能对不同机器学习方法效用不同,独立筛选出来的特征集对于特定学习方法可能不是最优的。因为对大规模数据处理速度较快,是目前应用最多的方法。

Filter

Wrapper式的特点就像名字,包裹式。其核心是在多次迭代学习中对特征进行筛选,多次用不同特征集对模型进行训练,多次训练后根据准确率筛选出最优秀的特征集合。优点是简单粗暴,理想情况下是最好的方法,但是随著数据特征的增大,其时间消耗往往成指数级增长。一个有 p 个特征的集合,有 2^p 个子集,当有几百个,甚至上万个的特征时显得力不从心。

Wrapper

Embedded式将特征选择的演算法嵌入到了机器学习的演算法中,对演算法进行修改,它是对Filter和Wrapper方法的一种折中,既考虑到了机器学习方法,又比Wrapper式速度快很多。比较典型的例子就是正则化对特征加入惩罚系数了。

Embedded

后面的文章将介绍Filter方法中比较有代表性的几种方法。

推荐阅读:

相关文章