• 机器学习相关知识整理系列之二:Bagging及随机森林


    1. Bagging的策略

    • 从样本集中重采样(有放回)选出(n)个样本,定义子样本集为(D)
    • 基于子样本集(D)所有属性上建立分类器,(ID3,C4.5,CART,SVM等);
    • 重复以上步骤(m)步,即获得了(m)个分类器;
    • 最后根据这(m)个分类器进行投票,决定输入样本属于哪一类。

    2. 随机森林

    随机森林在Bagging基础上做了修改:

    • 从样本中重复自抽样(Bootstrap)选出(n)个样本,定义子样本集为(D)
    • 基于样本集(D),从所有属性中随机选择K个属性(特征),选择最佳分割属性作为结点建立CART决策树;
    • (m)个CART组成一个随机森林,通过投票表决结果,决定输入样本属于哪一类。

    3. 随机森林/Bagging和决策树关系

    • 可以使用决策树作为基本分类器
    • 也可以使用SVM、Logistics回归等分类器,由这些分类器组成的"总分类器",也叫随机森林

    4. 投票机制

    4.1 简单投票机制

    • 一票否决
    • 少数服从多数(有效多数,加权)
    • 阈值表决

    4.2 投票机制举例

    • 假定有N个用户可以为X个电影投票(假定投票者不能给同一电影重复投票),投票有1,2,3,4,5星共五档。
    • 根据用户投票对电影进行排序,本质任然为分类问题,对于某个电影,有N个决策树进行分类(1,2,3,4,5类)
      投票方案:$$WR = frac{v}{v+m}R + frac{m}{v+m}C$$
    • (WR):加权得分;
    • (R):该电影的用户投票的平均得分
    • (C):所有电影的平均得分
    • (v):该电影的投票人数
    • (m):排名前250名电影的最低投票数

    5. 样本不均衡的常用处理方法

    假定样本数目A类比B类多,且严重不平衡:

    • A类欠采样
      • 随机欠采样
      • A类分成若干子集,分别与B类进入ML模型
      • 基于聚类的A类分割
    • B类过采样
      • 避免欠采样造成的信息丢失
    • B类数据合成
      • 随机插值得到新样本
    • 代价敏感学习
      • 降低A类权值,提高B类权值

    6. 随机森林总结

    • 在数据集上表现良好
    • 在对缺失数据进行估计时,随机森林是一个十分有效的方法。就算存在大量的数据缺失,随机森林也能较好地保持精确性;
    • 随机森林算法能解决分类与回归两种类型
    • 能够处理很高维度的数据,并且不用做特征选择
    • 容易做成并行化方法
    • 在训练完后,它能够给出哪些特征比较重要
    • 随机森林的集成思想也可以用在其他分类器的设计中
    • 随机森林在解决回归问题时没有在分类中表现的好,因为它并不能给出一个连续型的输出。当进行回归时,随机森林不能够作出超越训练集数据范围的预测,这可能导致在对某些还有特定噪声的数据进行建模时出现过度拟合。
  • 相关阅读:
    PHP迭代生成器---yield
    array_chunk — 将一个数组分割成多个
    php array_change_key_case
    PHP trait介绍
    mysql视图
    mysql常见内置函数
    MySQL表复制
    二分查找算法(折半查找算法)
    使用SplFixedArray创建固定大小的数组
    Frameset Example
  • 原文地址:https://www.cnblogs.com/csyuan/p/6536796.html
Copyright © 2020-2023  润新知