决策树与随机森林Adaboost算法

决策树与随机森林

一. 决策树

决策树(Decision Tree)及其变种是另一类将输入空间分成不同的区域,每个区域有独立参数的算法。决策树分类算法是一种基于实例的归纳学习方法,它能从给定的无序的训练样本中,提炼出树型的分类模型。树中的每个非叶子节点记录了使用哪个特征来进行类别的判断,每个叶子节点则代表了最后判断的类别。根节点到每个叶子节点均形成一条分类的路径规则。而对新的样本进行测试时,只需要从根节点开始,在每个分支节点进行测试,沿着相应的分支递归地进入子树再测试,一直到达叶子节点,该叶子节点所代表的类别即是当前测试样本的预测类别。

如下图 "年龄"为决策树的根节点,"年龄"为"长相"的父节点,"长相"为"年龄"的子节点,"见"与"不见"为叶子节点,再该树中同时也为标签,“长相”"年龄"等特征称为该树的属性
决策树与随机森林Adaboost算法_第1张图片
决策树的学习采用的是自顶向下的学习。

建立决策树的基本思想为:以信息熵为度量构造以可熵值下降最快的树,到叶子节点处熵值为0。

建立决策树的关键:即在当前状态下选择哪个属性(最优属性)作为分类依据。

根据不同目标函数,建立决策树主要有三种算法。
a) ID3 b)C4.5 c)CART

a) ID3

ID3算法是决策树的一种,它是基于奥卡姆剃刀原理的,即用尽量用较少的东西做更多的事。ID3算法,即Iterative Dichotomiser 3迭代二叉树3代,是Ross Quinlan发明的一种决策树算法,这个算法的基础就是上面提到的奥卡姆剃刀原理,越是小型的决策树越优于大的决策树。即**遍历所有特征,选择信息增益最大的特征作为当前的分裂特征。

特征A对训练数据集D的信息增益公式表达为g(D,A)=H(D)-H(D|A)

b) C4.5

C4.5是Ross Quinlan在1993年在ID3的基础上改进而提出的。.ID3采用的信息增益度量存在一个缺点,它一般会优先选择有较多属性值的Feature,因为属性值多的Feature会有相对较大的信息增益(信息增益反映的给定一个条件以后不确定性减少的程度,必然是分得越细的数据集确定性更高,也就是条件熵越小,信息增益越大).为了避免这个不足C4.5中是用**信息增益率(gain ratio)**来作为选择分支的准则。信息增益率通过引入一个被称作分裂信息(Split information)的项来惩罚取值较多的Feature。所以C4.5在处理未知数据上相比较于ID3具有更好的泛化能力。

信息增益率公式表达为:
在这里插入图片描述
选择具有最大增益率的属性作为分裂属性。

c) CART

Gini系数

Gini系数可以用于评估属性与标签之间的差异。该系数主要在CART中使用。Gini系数度量数据划分或训练元组集D的不纯度,其公式可表示为:
在这里插入图片描述

二.随机森林

1.Boostraping策略

源自英文"pull up by your own boostraps",意思是依靠自己的资源,称为自助法,即依靠自身力量不借助外力让自己变得更好。它是一种有放回的抽样方法。

2.Begging(boostrap aggregation)策略

a) 从样本集中重采样(有重复的)选出n个样本
b) 在所有属性上,对这n个样本建立分类器(ID3,C4.5,CART,SVM,Logistic回归等)
c) 重复以上两步m次,即获得m个分类器
d) 将数据放在这m个分类器上,最后根据这m个分类器的投票结果,决定数据属于哪一类
决策树与随机森林Adaboost算法_第2张图片

3.随机森林

随机森林begging基础上做了修改。
a)从样本集中用Boostrap采样选出n个样本;
b)从所有属性中随机选择k个属性,选择最佳分割属性最为节点建立CART决策树;
c)重复以上两步m次,即建立了m棵CART决策树;
d)这m个CART形成随机森林,通过投票表决结果,决定数据属于哪一类
:随机森林的随机性体现在去样本的随机性和属性的随机性两方面。

三.Adaboost

Adaboost,是应为"Adaptive Boosting"(自适应增强)的缩写,是一种机器学习方法,有Yoav Freund和Robert Schapire提出。

AdaBoost方法的自适应在于:前一个分类器分错
的样本会被用来训练下一个分类器。AdaBoost方
法对于噪声数据和异常数据很敏感。但在一些问题中,AdaBoost方法相对于大多数其它学习算法而言,不会很容易出现过拟合现象。

Adaboost(对于m=1,2,…M)方法如下:

设训练数据集T={(x1,y1), (x2,y2)…(xN,yN)}

初始化训练数据的权值分布
决策树与随机森林Adaboost算法_第3张图片
使用具有权值分布Dm的训练数据集学习,
得到基本分类器
在这里插入图片描述
计算Gm(x)在训练数据集上的分类误差率
决策树与随机森林Adaboost算法_第4张图片
计算Gm(x)的系数
决策树与随机森林Adaboost算法_第5张图片
更新训练数据集的权值分布
决策树与随机森林Adaboost算法_第6张图片
这里,Zm是规范化因子
决策树与随机森林Adaboost算法_第7张图片
它的目的仅仅是使Dm+1成为一个概率分布
在这里插入图片描述
构建基本分类器的线性组合
决策树与随机森林Adaboost算法_第8张图片
得到最终分类器
决策树与随机森林Adaboost算法_第9张图片

Adaboost算法举例

给定下列训练样本,试用Adaboost算法学习一个强分类器。
决策树与随机森林Adaboost算法_第10张图片

1.初始化训练数据的权值分布(m=1)
决策树与随机森林Adaboost算法_第11张图片

在这里插入图片描述
2.在权值分布为D1的训练数据上,阈值v取2.5
时误差率最低,故基本分类器为:决策树与随机森林Adaboost算法_第12张图片
3.计算G1(x)在训练数据集上的误差率
e1=P(G1(xi)≠yi) =0.3

4.计算G1的系数:
决策树与随机森林Adaboost算法_第13张图片
5.f1(x)=0.4236*G1(x)
分类器sign(f1(x))在训练数据集上有3个误分
类点。

6.更新训练数据的权值分布(m=2):
决策树与随机森林Adaboost算法_第14张图片
得D2=(0.0715, 0.0715, 0.0715, 0.0715, 0.0715,
0.0715,0.1666, 0.1666, 0.1666, 0.0715)

7.在权值分布为D2的训练数据上,阈值v取8.5
时误差率最低,故基本分类器为:决策树与随机森林Adaboost算法_第15张图片

8.G2(x)在训练数据集上的误差率
e2=P(G2(xi)≠yi) =0.2143(0.0715*3)

9.计算G2的系数:决策树与随机森林Adaboost算法_第16张图片
10.f2(x)=0.4236G1(x) + 0.6496G2(x)
分类器sign(f2(x))在训练数据集上有3个误分类点

11.更新训练数据的权值分布(m=3.):
决策树与随机森林Adaboost算法_第17张图片
得D3=(0.0455, 0.0455, 0.0455, 0.1667, 0.1667,
0.01667,0.1060, 0.1060, 0.1060, 0.0455)

12.在权值分布为D3的训练数据上,阈值v取5.5
时误差率最低,故基本分类器为:决策树与随机森林Adaboost算法_第18张图片
13.G3(x)在训练数据集上的误差率
e3=P(G3(xi)≠yi) = 0.1820(0.0455*4)

14.计算G3的系数:决策树与随机森林Adaboost算法_第19张图片
15.f3(x)=0.4236G1(x) + 0.6496G2(x)+0.7514G3(x)
分类器sign(f3(x))在训练数据集上有0个误分类点

16.故选择sign(f3(x))分类器。

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