zoukankan      html  css  js  c++  java
  • 集成学习、随机森林

    1.集成学习

    用多个模型来解决一个问题,就是集成

    怎么样得到一个好的集成?

    需要个体尽可能的精确,而且它们的差异性,多样性尽可能的大

    按集成中个体的生成方式来说,可以分为两大方法

    • 序列化方法,Adaboost 、GBDT(在这种方法里,每一个新的个体生成和以往的个体都是有联系的)Boosting一族通过将弱学习器提升为强学习器的集成方法来提高预测精度,GBDT也是Boosting的成员
    • 并行化方法,Bagging、Random Subspace、Random Forests所有的个体可以同时来做Bagging,通过自助采样的方法生成众多并行式的分类器,通过“少数服从多数”的原则来确定最终的结果

     2.随机森林

    • bagging思想

      一棵树是决策树,多棵树是随机森林,解决了决策树泛化能力弱的缺点。因为决策树是一棵树,它是有一个决策的可能性,如果是多棵树,每棵树都有一个决策权,这样把所有树的结果综合在一起,这样的分类能力会比单棵树的决策能力强很多。

    • 随机

      随机选择样本

      随机选择特征

    随机森林中的每棵树是怎么构造的?

    每一棵树是从整个训练样本集中,随机选取固定数量的样本集,选取固定数量的特征集,来构建一棵决策树,相当于这个样本数和特征数都是总样本数和总特征集的一个子集,而且是一个有放回的抽取过程

    每一棵决策树都有一个分类结果,有很多决策树,把所有的结果根据少数服从多数的原则综合到一起

    • 集成学习

      投票选举

    随机森林相比于决策树拥有出色的性能主要取决于随机抽取样本、特征和集成算法,前者让它具有更稳定的抗过拟合能力,后者让它有更高的准确率。

    想要利用随机森林进行预测,算法首先对森林中的每棵树进行预测

    对于回归问题,我们可以对这些结果去平均值作为最终预测。

    对于分类问题,则用到了“软投票”(soft voting)策略。也就是说,每个算法做出“软”预测,给出每个可能的输出标签的概率。对于所有树的预测概率取平均值,然后将概率最大的类别作为预测结果

    例子:

    描述:根据已有的训练集已经生成了对应的随机森林,随机森林如何利用某一个人的年龄(Age)、性别(Gender)、教育情况(Highest Educational Qualification)、工作领域(Industry)以及住宅地(Residence)共5个字段来预测他的收入层次。

      收入层次 :

        Band 1 : Below $40,000

        Band 2: $40,000 – 150,000

        Band 3: More than $150,000

    随机森林中每一棵树都可以看做是一棵CART(分类回归树),这里假设森林中有5棵CART树,总特征个数N=5,我们取m=1(这里假设每个CART树对应一个不同的特征)。

     

     

     

    我们要预测的某个人的信息如下:

      1. Age : 35 years ; 2. Gender : Male ; 3. Highest Educational Qualification : Diploma holder; 4. Industry : Manufacturing; 5. Residence : Metro.

      根据这五棵CART树的分类结果,我们可以针对这个人的信息建立收入层次的分布情况:

    Final probability是取每棵树预测概率的均值

    最后,我们得出结论,这个人的收入层次70%是一等,大约24%为二等,6%为三等,所以最终认定该人属于一等收入层次(小于$40,000)。

    3.随机森林的优缺点

    3.1 优点

    • 行抽样和列抽样的引入让模型具有抗过拟合和抗噪声的特性
    • 对数据的格式要求低:因为有列抽样从而能处理高维数据;能同时处理离散型和连续型;和决策树一样不需要对数据做标准化处理;可以将缺失值单独作为一类处理
    • 不同树的生成是并行的,从而训练速度优于一般算法
    • 给能出特征重要性排序
    • 由于存袋外数据,从而能在不切分训练集和测试集的情况下获得真实误差的无偏估计

    3.2 缺点

    • 对少量数据集和低维数据集的分类不一定可以得到很好的效果
    •  计算速度比单个的决策树慢
    • 当我们需要推断超出范围的独立变量或非独立变量,随机森林做得并不好

    参考:

    https://www.huaweicloud.com/articles/5326563f52e850147f3aba272f33ff37.html

    https://blog.csdn.net/yangyin007/article/details/82385967

  • 相关阅读:
    java多线程
    异常处理
    mabits
    梦想改造家之全世界最治愈的家浅析
    Activity
    java基础终稿
    Visual Studio Codes配置vs2017编译
    2017-2018-2 20179216 《网络攻防与实践》SM234算法
    2017-2018-2 20179216 《网络攻防与实践》 免杀技术
    2017-2018-2 20179216 《网络攻防与实践》 SQL注入攻击
  • 原文地址:https://www.cnblogs.com/GumpYan/p/14548338.html
Copyright © 2011-2022 走看看