查看原文
其他

一文读懂“随机森林”在微生态中的应用

2017-12-02 小昌 宏基因组

本文转载自“态昌基因”,已获授权。

前言

从去年的AlphaGo到今年人工智能首次写进政府工作报告,人工智能正在席卷全球,引发第4次工业革命。AI的核心技术之一 “机器学习”已广泛应用于数据挖掘、生物特征识别、医学诊断等领域,虽风头盖过统计学,但实际上两者密不可分。


大家都知道统计学的一个重要组成部分——统计推断(通过假设、验证进行分析处理),即通过生物实验的数据得出新的科学见解。而所谓机器学习就是一种智能的数据挖掘技术,它依据先验的知识建立预测模型来识别大数据中的有用信息,广泛地用于数据拟合,数据分类,优化参数等生物实验数据的处理上。

总结一句就是:统计学强调低维空间问题的统计推导;机器学习强调高维预测问题


在机器学习中,有一种方法,它简单、容易实现、计算开销小,在很多现实任务中展现出强大的性能,被誉为“代表集成学习技术水平的方法”。今天小昌就从基本概念、基础知识、方法介绍、结果解读 四个方面为你揭开她的神秘面纱——随机森林


简   介

随机森林 是一种基于决策树的高效的机器学习算法,可以用于对样本进行分类,也可以用于回归分析。它属于非线性分类器,因此可以挖掘变量之间复杂的非线性的相互依赖关系。通过随机森林分析,可以找出能够区分两组样本间差异的关键成分(OTU或物种)。


基 础 知 识

1. 集成学习(ensemble methods)

集成学习通过建立几个模型组合的来解决单一预测问题。它的工作原理是生成多个学习器模型,各自独立地学习和作出预测。这些预测最后结合成单预测,因此优于任何一个单分类的做出预测。

根据个体学习器的生成方式,目前大致可分为两大类:

a)个体学习器间存在强依赖关系、必须串行生成的序列化方法,代表是Boosting

b)个体学习器间不存在强依赖关系、可同时生成的并行化方法,代表是Bagging和“随机森林”。


2. Bagging

Bootstrap sampling:自助采样法,简言之就是随机有放回的抽取,有一部分样本会多次出现,而另一部分样本不出现。初始数据集中约有1/3的样本未出现在采样数据集中。

Bagging: 基于自助采样法(bootstrap sampling),将所 38 39968 38 15232 0 0 3901 0 0:00:10 0:00:03 0:00:07 3900有待训练数据放进一个黑匣子中,然后从这个bag中随机且有放回地抽一部分数据出来用于训练一个基学习器base estimator),再将这些基学习器结合。


3. 决策树(Decision Tree)

决策树是一种基本的分类器,主要工作就是选取特征对数据集进行划分,最后把数据贴上两类不同的标签。构建好的决策树呈树形结构,可以认为是if-then规则的集合,主要优点是模型具有可读性,分类速度快。常见的决策树算法有C4.5、ID3和CART(随机森林使用):(具体细节见附录一)

ID3 :信息增益 最大的准则

C4.5 :信息增益比 最大的准则

CART:回归树( 平方误差 最小的准则);分类树(基尼系数 最小的准则)


决策树学习采用的是自顶向下的递归方法, 其基本思想是以信息熵为度量构造一棵熵值下降最快的树,到叶子节点处的熵值为零, 此时每个叶节点中的实例都属于同一类。


4. Random Forest

扰动:随机森林对Bagging只做了小改动,基学习器的多样性不仅来自样本扰动(对初始训练集有放回的采样),还有属性扰动(对样本属性的随机无放回的抽样)。

bagging + decision trees,我们得到了随机森林。将决策树作为base estimator,然后采用bagging技术训练一大堆小决策树,最后将这些小决策树组合起来,这样就得到了一片森林(随机森林)。

预测:在对预测输出进行结合时,通常对分类任务使用简单投票法,对回归任务使用简单平均法;若分类预测时两个类收到同样票数,则随机选一个或进一步考察学习器投票的置信度来确定最终胜者。


5. oob error

初始数据集每次约有1/3的样本不会出现在采样数据集中,当然也就没有参加决策树的建立。我们把这1/3的数据称为袋外数据oob(out of bag),它可以用于取代测试集误差估计方法。(第四部分有详细解释)


6. 过拟合

是指学习时选择的模型所包含的参数过多,以致于出现这一模型对已知数据预测地很好,但对未知数据预测得很差的现象。


7. 剪枝

为了尽可能正确分类训练样本,结点划分过程将不断重复,有时会造成决策树分支过多,这时候通过主动去掉一些分支来降低过拟合的风险;包括预剪枝和后剪枝。


随 机 森 林 介 绍

前面提到,随机森林中有许多的分类树。我们要将一个样本进行分类,需要把这个样本输入到每棵树中进行分类,每棵树都会给出自己的分类选择,并由此进行“投票”,遵从于“少数服从多数”的法则。

例1 如果你训练了3个树, 其中有2个树的结果是A, 1个数的结果是B, 那么最终结果会是A。

例2 下图左边是一棵决策树的特征选取过程,通过在待选特征中选取最优的分裂特征(别忘了前文提到的ID3算法,C4.5算法,CART算法等),完成分裂。下图是一个随机森林中的子树的特征选取过程。


每棵树的按照如下规则生成:

1)对于每棵树而言,随机且有放回地从训练集中的抽取N个训练样本,作为该树的训练集;

从这里我们可以知道:每棵树的训练集都是不同的,而且里面包含重复的训练样本(理解这点很重要)。

2)如果每个样本的特征维度为M,指定一个常数m<<M,随机地从M个特征中选取m个特征子集(不放回),每次树进行分裂时,从这m个特征中选择最优的,通常取

减小特征选择个数m,树的相关性和分类能力也会相应的降低;增大m,两者也会随之增大。所以关键问题是如何选择最优的m(或者是范围),这也是随机森林唯一的一个参数。

3)每棵树都尽最大程度的生长,并且没有剪枝过程。


总结:两个随机性的引入对随机森林的分类性能至关重要。由于它们的引入,使得随机森林不容易陷入过拟合,并且具有很好的抗噪能力(比如:对缺省值不敏感)。

       袋外错误率(oob error)

上面我们提到,构建随机森林的关键问题就是如何选择最优的m,要解决这个问题主要依据计算袋外错误率oob error(out-of-bag error)


随机森林有一个重要的优点就是,没有必要对它进行交叉验证或者用一个独立的测试集来获得误差的一个无偏估计。它可以在内部进行评估,也就是说在生成的过程中就可以对误差建立一个无偏估计。


我们知道,在构建每棵树时,我们对训练集使用了不同的bootstrap sample(随机且有放回地抽取)。所以对于每棵树而言(假设对于第k棵树),大约有1/3的训练实例没有参与第k棵树的生成,它们称为第k棵树的oob样本

而这样的采样特点就允许我们进行oob估计,它的计算方式如下:(note:以样本为单位)

1)对每个样本,计算它作为oob样本时树对它的分类情况(约1/3的树);

2)然后以简单多数投票作为该样本的分类结果;

3)最后用误分个数占样本总数的比率作为随机森林的oob误分率。


RF 优缺点

优点:

①在当前所有算法中,具有极好的准确率;

②能够有效地运行在大数据集上;

③能够处理具有高维特征的输入样本,而且不需要降维能够评估各个特征在分类问题上的重要性在生成过程中,能够获取到内部生成误差的一种无偏估计;

④对于缺省值问题也能够获得很好得结果;

⑤一般很多的决策树算法都会包含 剪枝 过程来避免 过度拟合(over-fitting),但是由于随机森林的两个随机采样的过程保证了随机性,所以就算不剪枝也不容易出现over-fitting;


缺点:对于许多统计建模者来说,随机森林给人的感觉像是一个黑盒子——你几乎无法控制模型内部的运行,只能在不同的参数和随机种子之间进行尝试。


结 果 文 件 解 读

下面的例子为4个疾病6个对照的临床实验分析结果

1. confusion matrix


混淆矩阵:是由预测结果与真实状况组成的矩阵,它表示4个疾病都准确预测为疾病,6个对照都准确预测为对照,没有分类错误;


2.  probabilities


分类比率:样本预测结果表格,对已知样本的标记分类比率;比如ILL1有0.80415的概率被分类为ILL,有0.1958的概率被分为CTL;


3.  mislabeling


错误标记,列出了在不同错误率阈值下,样本分类的结果。


4.  feature importance scores


特征值排序,左边一列是差异OTU,右边一列是对应的得分。一般地,选取大于0.05的OTU,作进一步分析;对于组间差异较小的样本,该值可能会降至0.03。


5. summary


总览,表示使用了随机森林的模型,建了1000棵决策树,使用袋外错误率的误差估计方法,对所有树的oob error结果求均值,这里是0.4。

附录

信息、信息熵、信息增益、增益率及基尼指数的概念

这三个基本概念是决策树的根本,是决策树利用特征来分类时,确定特征选取顺序的依据。

引用香农的话来说,信息是用来消除随机不确定性的东西。对于机器学习中的决策树而言,如果带分类的事物集合可以划分为多个类别当中,则第k类的信息可以定义如下:

信息熵是用来度量不确定性的,当熵越大,k的不确定性越大,反之越小。

假定当前样本集合D中第k类样本所占的比例为pk(k=1,2,....|y|),则D的信息熵定义为

信息增益在决策树算法中是用来选择特征的指标,信息增益越大,则这个特征的选择性越好。

同上,计算特征a对样本集D进行划分所获得的信息增益:

事实上,信息增益准则对可取值数目较多的特征有所偏好,为减少这种偏好可能带来的不利影响,C4.5决策树算法不直接使用信息增益,而是使用“增益率”:

其中IV(a)称为属性a的“固有值”

需要注意的是,增益率准则对可取值数目较少的属性有所偏好,因此,C4.5算法并不是直接选择增益率最大的候选划分属性,而是使用了一个启发式:先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。

CART决策树使用“基尼指数”来选择划分属性,它反映了从数据集D中随机抽取两个样本,与其类别标记不一致的概率。因此我们在候选属性集合A中,选择基尼系数最小的属性作为最优划分属性:

参考资料:

周志华——机器学习

http://www.52ml.net/14518.html

https://baike.baidu.com/item/%E9%9A%8F%E6%9C%BA%E6%A3%AE%E6%9E%97

https://segmentfault.com/a/1190000007463203

http://blog.csdn.net/holybin/article/details/25653597

http://www.cnblogs.com/maybe2030/p/4585705.html

https://www.theregister.co.uk/2017/06/21/15_minutes_in_machine_learning/

https://www.tuicool.com/articles/N7fyme

http://backnode.github.io/pages/2015/04/23/random-forest.html

http://www.cnblogs.com/wentingtu/archive/2011/12/22/2297405.html

http://backnode.github.io/pages/2015/04/23/random-forest.html

https://www.jiqizhixin.com/articles/2017-07-31-3

http://www.36dsj.com/archives/32820

猜你喜欢

写在后面

为促进读者交流、加速科学问题解决,我们建立了“宏基因组”专业讨论群,目前己有八百多名一线科研人员加入。参与讨论,获得专业指导、问题解答,欢迎分享此文至朋友圈,并扫码加主编好友带你入群,务必备注“姓名-单位-研究方向-职务”。技术问题寻求帮助,首先阅读《如何优雅的提问》学习解决问题思路,仍末解决群内讨论。问题不私聊,帮助同行。

学习16S扩增子、宏基因组科研思路和分析实战,关注“宏基因组”

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存