美文网首页
2018-11-05 随机森林算法的学习

2018-11-05 随机森林算法的学习

作者: Poncen | 来源:发表于2018-11-05 16:46 被阅读0次

今天简要学习了随机森林算法的背后原理,希望可以通过更深层次的理解来设计出更精确有效的特征处理与分析方法,争取早日吃透机器学习十大入门算法。

随机森林算法介绍

决策树与随机森林

随机森林算法入门(python)

随机森林通过自助法(bootstrap)重采样技术,从原始训练样本集N中有放回地重复随机抽取k个样本生成新的训练样本集合,然后根据自助样本集生成k个分类树组成随机森林,新数据的分类结果按分类树投票多少形成的分数而定。其实质是对决策树算法的一种改进,将多个决策树合并在一起,每棵树的建立依赖于一个独立抽取的样品,森林中的每棵树具有相同的分布,分类误差取决于每一棵树的分类能力和它们之间的相关性。特征选择采用随机的方法去分裂每一个节点,然后比较不同情况下产生的误差。

能够检测到的内在估计误差、分类能力和相关性决定选择特征的数目。单棵树的分类能力可能很小,但在随机产生大量的决策树后,一个测试样品可以通过每一棵树的分类结果经统计后选择最可能的分类。

决策树示例

如何构造决策树:

构造一颗决策树的基本想法是随着树深度的增加,节点的熵迅速的降低。降低的速度越快越好,这样我们才有望得到一颗高度最矮的决策树。于是我们每一次做切割,都希望整棵树的熵下降得越快越好。一开始我们知道的信息只有每一个数据对应哪一个分类,这是一开始总的信息熵。这时候我们要开始切割了。我们枚举每一个字段,计算它们做了切割之后的信息熵,将这个信息熵和未做分割前的信息熵做一个比较,也就说用切割前总信息熵减去切割后总信息熵,得到的值我们称之为信息增益。也就是一刀下去之后,我们的信息更加明朗的程度。将信息熵下降地最多,也就是信息增益最大的的那一个信息作为我们的分割字段。如果字段是连续值(比年龄是1到n之间的一个值),那么我们还要选择一个值来做切割。选择哪个值呢?最简单粗暴的方法,我们可以先对该字段的值做一个排序,然后做n-1次切割,找到信息熵最小的点即可。

信息熵的数学定义:

其中-log2(P)是我们上面所说的信息量。每一个信息量乘上它发生的概率,做一个累加,不难看出这是求期望的公式。信息熵是跟一条信息的可能性数量有关系的。每个可能事件的发生都有个概率。所以数学上,信息熵其实是信息量的期望。从化学上对熵的定义我们可以知道,熵越大说明混乱程度越高,熵越小说明混乱程度越低,那么构造一颗决策树,就是为了让决策树的叶子节点的熵降低直到为0,也就是说所有叶子节点的分类都是明确的,它的信息没有任何不确定性,这时我们就完成了决策树的构建。


剪枝:预防过拟合,主要思路是从叶节点向上回溯,尝试对某个节点进行剪枝,比较剪枝前后的决策树的损失函数值。最后我们通过动态规划(树形dp)就可以得到全局最优的剪枝方案。


构建过程:

1.从原始训练集中使用Bootstraping方法随机有放回采样选出m个样本,共进行n_tree次采样,生成n_tree个训练集

2.对于n_tree个训练集,我们分别训练n_tree个决策树模型

3.对于单个决策树模型,假设训练样本特征的个数为n,那么每次分裂时根据信息增益/信息增益比/基尼指数选择最好的特征进行分裂

4.每棵树都一直这样分裂下去,直到该节点的所有训练样例都属于同一类。在决策树的分裂过程中不需要剪枝

5.将生成的多棵决策树组成随机森林。对于分类问题,按多棵树分类器投票决定最终分类结果;对于回归问题,由多棵树预测值的均值决定最终预测结果


优点:1.由于引入了两个随机性,不容易出现过拟合,且具有很好的抗噪声能力

           2.能处理特征很多的高维度数据,且不用做特征选择。

           3.既能处理离散,也能处理连续数据,适应能力很强

           4.训练速度快,在训练的过程中能检测到feature之间的相互影响,可以得到变量重要性排序(可以应用到本次实验中,优化特征提取的过程)

           5.可生成一个Proximities=(pij)矩阵,用于度量样本之间的相似性: pij=aij/N, aij表示样本i和j出现在随机森林中同一个叶子结点的次数,N随机森林中树的颗数

相关文章

  • 2018-11-05 随机森林算法的学习

    今天简要学习了随机森林算法的背后原理,希望可以通过更深层次的理解来设计出更精确有效的特征处理与分析方法,争取早日吃...

  • 常用的算法总结

    风控模型常用的算法总结 一、常用算法 监督算法 随机森林采用投票机制,xgb则是弱学习机的集合。随机森林关注方差,...

  • 集成学习之Bagging和RF

    一、什么是随机森林 二、随机森林的两个随机 三、随机森林算法过程 四、为什么如此受欢迎 五、随机森林算法的优缺点 ...

  • 机器学习算法 - 随机森林之决策树初探(1)

    随机森林是基于集体智慧的一个机器学习算法,也是目前最好的机器学习算法之一。 随机森林实际是一堆决策树的组合(正如其...

  • 基于树模型的集成算法---Random Forest

    一、模型介绍 随机森林是一种由决策树构成的集成算法. 随机森林属于集成学习中的 Bagging. 用随机的方式建立...

  • 机器学习算法概述:随机森林&逻辑回归

    摘要:机器学习算法入门介绍:随机森林与逻辑回归! 随机森林是用于分类和回归的监督式集成学习模型。为了使整体性能更好...

  • 利用随机森林对特征重要性进行评估

    前言 随机森林是以决策树为基学习器的集成学习算法。随机森林非常简单,易于实现,计算开销也很小,更令人惊奇的是它在分...

  • 使用随机森林判定特征的重要性

    随机森林算法是我们经常使用到的一种集成式的机器学习算法,由多棵决策树组合而成。那么怎么使用随机森林判定特征的重要性...

  • 微生物多样研究—差异分析

    1. 随机森林模型 随机森林是一种基于决策树(Decisiontree)的高效的机器学习算法,可以用于对样本进行分...

  • [机器学习算法]随机森林

    单棵决策树的劣势 有时候单棵决策树可能难以实现较高的准确率,这主要是由以下几个方面决定的: 求解一棵最优(泛化误差...

网友评论

      本文标题:2018-11-05 随机森林算法的学习

      本文链接:https://www.haomeiwen.com/subject/bdisxqtx.html