决策树与随机森林超详细笔记 原理与方法

一、决策树

1、决策树

​ 1.决策树是一种树形结构,其中每个内部节点表示在一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别。

​ 2.决策树的学习是以实例为基础的归纳学习

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

2、决策树学习算法的特点

​ 1.决策树学习算法的最大优点是,它可以自学习,在学习的过程中,不需要使用者了解过多背景知识,只需要对训练实例进行较好的标注,就能够进行学习。

​ 2.显示,属于有监督学习。

​ 3.从一类无序(无规则)的事物(概念)中推理出决策树表示的分类规则。

3、决策树学习的生成算法

​ 建立决策树的关键,即在当前状态下选择哪个属性作为分类依据。根据不同的目标函数,建立决策树主要有以下三种算法:

​ 1.ID3 Iterative Dichotomiser

​ 2.C4.5

​ 3.CART :Classification And Regression Tree

二、信息增益

1、概念

​ 1.当熵和条件熵中的概率由数据估计(特别是极大似然估计)得到时,所对应的熵和条件熵经验条件熵

​ 2.信息增益表示得道特征A的信息而使得类X的信息的不确定性减少的程度。

2、定义

​ 特征A对训练数据集D的信息增益g(D,A),定义为集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差,即:

​ g(D,A)=H(D) - H(D|A)

​ 显然,这就是训练数据集D和特征A的互信息。

3、基本记号

​ 1.设训练数据集为D,|D|表示样本个数。
2.
在这里插入图片描述
3.

在这里插入图片描述
4.

​	4.![1543720073798](C:\Users\MLZ1997\AppData\Local\Temp\1543720073798.png)

4、信息增益的计算方法 (ID3)

​ 1.计算数据集D的经验熵
在这里插入图片描述

​ 2.计算经验条件熵
在这里插入图片描述

​ 3.遍历所有特征,对于特征A:

​ (1)计算特征A的信息增益:g(D,A)=H(D) - H(D|A)

​ (2) 选择信息熵最大的特征作为当前的分裂特征

5、其他目标

​ 1.信息增益率:gr(D,A)=g(D,A)/ H(A) (C4.5) 可以解决特征特别多,导致熵值下降最快 (如编号特征) 的问题

​ 2.Gini系数:
在这里插入图片描述

​ 可以看成是熵的近似

三、三种决策树的算法学习

1.ID3:

​ 使用信息增益/互信息g(D,A)进行特征选择

​ 取值多的属性,更容易使数据更纯,其信息增益越大

​ 训练得到的是一颗庞大且深度浅的树:不合理

2.C4.5:信息增益率

​ gr(D,A)=g(D,A)/ H(A)

3.CART:基尼gini系数

​ 一个属性的信息增益(率)/gini系数越大,表明属性对样本的熵减少的能力更强,这个属性使得数据由不确定性变成确定性的能力越强

四、决策树的评价

1.假定样本的总类别为K个。

2.对于决策树的某叶结点,假定该叶结点含有样本数目为n,其中第k类的样本点数目为nk,k=1,2,…K。

​ 若某类样本nj=n而其他都为0,则称该结点为纯结点,Hp=0 最小

​ 若各类样本数目都为n/K,则称该结点为均结点 Hu=lnK 最大

3.对所有的叶结点的熵求和,该值越小说明对样本的分类约精确

​ 各叶节点包含的样本数目不同,可以使用样本数加权求熵和

4.评价函数
在这里插入图片描述

​ 由于该评价函数越小越好,所有可以称之为‘损失函数’

五、决策树的过拟合

​ 决策树对训练属于有很好的分类能力,但对未知的测试数据未必有好的分类能力,泛化能力弱,即可能发生过拟合现象.解决方法:

1.剪枝

​ 三种决策树的剪枝过程算法相同,区别仅是对于当前数的评价标准不同。(信息增益、信息增益率、基尼系数)

剪枝总体思路:

​ 1.由完全树T0开始,剪枝部分节点得到T1,再次剪枝部分结点得到T2…直到仅剩树根的树Tk。2.在验证数据集上对这K个数分别评价,选择损失函数最小的树Ta

剪枝系数的确定:

1.假定当前对以r为根的子树剪枝:剪枝后,只保留r本身而删掉所有的叶子。2.考察以r为根的子树:剪枝后代损失函数:C_a®=C®+a 剪枝前的损失函数:C_a®=C®+a|R_leaf|

令二者相等 得到
在这里插入图片描述a即为剪枝系数

剪枝算法:

​ 对于给定的决策树T0:

​ 1.计算内部所有结点的剪枝系数。

​ 2.查找最小剪枝系数的结点,剪枝得决策树Tk。

​ 3.重复以上步骤,直到决策树Tk只剩一个结点。

​ 4.得到决策树序列T0T1T2…Tk。

​ 5.使用验证样本集选择最优子树。

​ 使用验证样本集选择最优子树的标准,可以使用评价函数:
在这里插入图片描述

六、随机森林与Bagging策略

1.Bagging的策略

1.bootstrap aggregation

​ 2.从样本集中重采样(有重复的)选出n个样本

​ 3.在所有属性上,对这n个样本建立分类器(ID3,C4.5,CART,SVM,Logistic回归等)

​ 4.重复以上两步m次,即获得了m个分类器

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

2.随机森林

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

​ 1.从样本集中用Bagging采用选出n个样本。

​ 2.从所有属性中随机选择K个属性,选择最佳分割属性作为结点建立CART决策树。

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

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

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

​ 1.当然也可以用决策树作为基本分类器。

​ 2.但也可以使用SVM,Logistic回归等其他分类器,习惯上,这些分类器组成的‘总分类器’仍然叫做随机森林

七、样本不均衡的常用处理方法

假定样本数目A类比B类多,且验证不平衡。

1.A类欠采样(效果较好)

​ Undersampling

​ 1.随机欠采样

​ 2.A类分割成若干子类,分别于B类进入ML模型

​ 3.基于聚类的A类分割

2.B类过采样

​ Oversampling

​ 避免欠采样造成的信息丢失

3.B类数据合成

​ Synthetic Data Generation

​ 随机插值得到新样本(SMOTE)

4.代价敏感学习

​ Cose Sensitive Learning

​ 降低A类权值,提高B类权值

八、总结

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

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

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值