决策树与随机森林(二)

转自小象学院 邹博

学习笔记

Bootstraping

是一种有放回的抽样方法

Bagging的策略

bootstrap aggregation

从样本集中重采样(有重复)选出n个样本

在所有属性上,最这n个样本建立分类器(ID3,C4.5,CART,SVM,LR等)

重复上面两步m次,即获得了m个分类器

将数据放在这m个分类器上,最后根据这m个分类器的投票结果,决定数据属于哪一类


决策树与随机森林(二)_第1张图片

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

从样本集中用bootstrap采样选出n个样本;

从所有属性中随机选择k个属性,选择最佳分割属性作为节点建立CART决策树

重复以上两步m次,即建立了m棵CART决策树

这m个CART形成随机森林,通过投票表决结果,决定数据属于哪一类

应用实例实时人类动作识别

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

使用决策树作为基本分类器

也可以使用SVM,LR等其他分类器,这些分类器组成的“总分类器”,仍然叫随机森林

举例:回归问题--离散点为臭氧(横轴)和温度(纵轴)的关系

试拟合变化曲线

---使用Bagging

记原始数据为D,长度为N(有N个离散点)


决策树与随机森林(二)_第2张图片

算法过程:

   做100次bootstrap,每次得到的数据Di,Di的长度为N

   对于每个Di,使用局部回归(LOESS)拟合一条曲线(拟合10条灰色曲线)

   将这些曲线取平均,即得到红色的最终拟合曲线

   显然红色的曲线更加稳定,并且过拟合明显减弱

投票机制:

简单投票机制

     一票否决(一致表决)

    少数服从多数(有效多数--加权)

    阈值表决

贝叶斯投票机制

投票机制举例:


决策树与随机森林(二)_第3张图片

一种可能的方案:


决策树与随机森林(二)_第4张图片

样本不均衡常用处理方法

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

A类欠采样

 --   随机采样

 --   A类分成若干子类,分别与B类进入ML模型

  --  基于聚类的A类分割

B类过采样

    -- 避免欠采样造成信息丢失

B类数据合成

    -- 随机插值得到新样本

   --- SMOTE

代价敏感学习

    --- 降低A类的权值,提供B类的权值

总结:

决策树/随机森林代码清晰、逻辑简单,在解决分类问题的同时,往往也可以作为对数据分布探索的首要尝试算法

随机森林的集成思想也可以用在其他分类器的设计中

如果正负样本数量差别很大,如何处理?

思考:在得到新的决策树后,对样本权值进行合理的调整---分类正确的则降低权值,分类错误的则增大权值,是否可行?

可行,这样的话,会增加错误样本的重视率

权值调整:AdaBoost算法提高了那些被上一轮分类器错误分类的样本权值,降低了正确分类的权值,这样使得上一轮被分类错误的在下一轮受到了更大的重视。

也是adaBoost的核心思想之一

随机森林为何可以提高正确率且降低过拟合?

降低过拟合主要依赖3个随机过程

即产生决策树的样本是随机生成,构建决策树的特征值是随机选取,树产生过程中裂变的时候是选择N个最佳方向中的随机一个裂变的。

最后思考为什么决策树可以作为分类标准?

你可能感兴趣的:(决策树与随机森林(二))