决策树和随机森林
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
输出y:该样本是否喜欢计算机游戏
64 - 3
随机森林
64 - 4
决策树:Level
64 - 5
定义信息量
原则:
某事件发生的概率小,则该事件的信息量大。 如果两个事件X和Y独立,即p(xy)=p(x)p(y) ,假定X和Y的信息量
分别为h(X)和h(Y),则二者同时发生的信息量应该为 h(XY)=h(X)+h(Y)。
概率为 pi xi , i 1,2,, N M
计算累积概率
i
i
i
pi
xi
i 1
i1 M
1i
M
xi ,
i 1
i 1,2,, N
另: 0 0, N 1
64 - 25
推导gini系数
阴影B的面积: i 1
i
xi , i 1,2 N
M i1
SB
N
i
1
i
1
1
N
i1 i
i1 2
N 2N i1
1 N
N 1 N
N
2N
i
i 1
i1
i 1
2N
i
i 1
i
i 1
1
1 N
2i 1
2N i1
0 0
N 1
gini系数:
gini
SA
1/ 2 SB
1 2SB
1
1
2
N
i
1
SA SB 1/ 2
N i1
64 - 26
三种决策树学习算法
决策树的生成过程
64 - 34
决策树的生成过程
64 - 35
决策树的生成过程
64 - 36
决策树的生成过程
64 - 37
决策树的过Leabharlann Baidu合
决策树对训练属于有很好的分类能力,但对未知的测试数 据未必有好的分类能力,泛化能力弱,即可能发生过拟合 现象。
剪枝 随机森林
64 - 38
Bootstraping
票结果,决定数据属于哪一类
64 - 40
Another description of Bagging
64 - 41
Bagging
64 - 42
Bagging的结果
64 - 43
随机森林
随机森林在bagging基础上做了修改。
从样本集中用Bootstrap采样选出n个样本; 从所有属性中随机选择k个属性,选择最佳分割属性作为节点建立
随机选择若干特征和样本,得到a*b的小矩阵,建立决策 树;
重复K次得到随机森林。 投票方法选择少数服从多数。
64 - 46
应用实例:Kinect
64 - 47
Real-Time Human Pose Recognition in Parts from Single Depth Images, Jamie Shotton etc,2001,
xy
p(x) p( y | x) log p( y | x)
x
y
p(
x)
p(
y
|
x)
log
p(
y
|
x)
x
y
p(x)H Y | X x
x
64 - 10
互信息
两个随机变量X,Y的互信息,定义为X,Y的信息熵减去 X,Y的联合熵。
I(X,Y)=H(X)+H(Y)-H(X,Y)
p(x, y)
p(x, y) log p(x, y) p( y) log p( y)
x,y
y
p(x, y) log p(x, y) p(x, y) log p( y)
x,y
yx
p(x, y) log p(x, y) p(x, y) log p( y)
x,y
x, y
p(x, y)
p(x, y) log
ID3:使用信息增益/互信息g(D,A)进行特征选择
取值多的属性,更容易使数据更纯 ,其信息增益更大。 训练得到的是一棵庞大且深度浅的树:不合理。
C4.5:信息增益率 gr(D,A) = g(D,A) / H(A) CART:基尼指数 一个属性的信息增益(率)/gini指数越大,表明属性对样本的熵减少的
决策树和随机森林
牛客网 邹伟
2015年1月23日
64 - 1
目标任务与主要内容
掌握信息熵
熵、联合熵、条件熵、互信息
决策树学习算法
信息增益 ID3、C4.5、CART
Bagging与随机森林的思想
投票机制
64 - 2
CART
输入数据x:M个样本数据,每个数据包括年龄、性别、 职业、每日使用计算机时间等
基本记号
设训练数据集为 D ,D 表示样本个数。 设有K个类 Ck , k 1,2K,Ck 为属于类 Ck 的样本个数,
有: Ck D
k
设特征A有n个不同的取值a1, a2 an,根据特征A的取值
将D划分为n个子集 D1, D2 Dn , Di 为 Di 的样本个数,
有: Di D
x,y
p( y)
p(x, y) log p(x | y)
x,y
64 - 9
根据条件熵的定义式,可以得到
H ( X ,Y ) H ( X ) p(x, y) log p( y | x)
x, y
p(x, y) log p( y | x)
xy
p(x) p( y | x) log p( y | x)
一种可行的解决方案:随机森林
通过Haar特征提取等对每幅图片分别处理,得到M个特征。N个图片形成 N*M的矩阵。
随机选择若干特征和样本,得到a*b的小矩阵,建立决策树; 重复K次得到随机森林。 投票方法选择少数服从多数。
64 - 45
一种可行的解决方案
通过Haar特征提取等对每幅图片分别处理,得到M个特 征。N个图片形成N*M的矩阵。
i 1
k 1
n
Di
K
Dik log Dik
D i1
k 1
Di
Di
64 - 22
其他目标
信息增益率:gr(D,A) = g(D,A) / H(A) 基尼指数:
K
K
Gini p pk 1 pk 1 pk2
k 1
k 1
2
K
1 k 1
Ck D
64 - 23
关于基尼指数的讨论(一家之言)
决策树示意图
64 - 16
决策树 (Decision Tree)
决策树是一种树型结构,其中每个内部结点表示在一个属 性上的测试,每个分支代表一个测试输出,每个叶结点代 表一种类别。
决策树学习是以实例为基础的归纳学习。 决策树学习采用的是自顶向下的递归方法,其基本思想是
以信息熵为度量构造一棵熵值下降最快的树,到叶子节点 处的熵值为零,此时每个叶节点中的实例都属于同一类。
64 - 21
经验条件熵H(D|A)
H D | A pDk , Ai log pDk | Ai
i,k
pAi pDk | Ai log pDk | Ai
i,k
nK
pAi pDk | Ai log pDk | Ai
i1 k 1
n
K
pAi pDk | Ai log pDk | Ai
64 - 12
条件熵与互信息的等式
互信息:I(X,Y)=H(X)+H(Y)-H(X,Y) 条件熵:H(X|Y)=H(X,Y)-H(Y) 带入,得:I(X,Y)=H(X)-H(X|Y)
条件熵:H(Y|X)=H(X,Y)-H(X) 带入,得:I(X,Y)=H(Y)-H(Y|X)
由I(X,Y)≥0,得H(X)≥H(X|Y),H(Y)≥H(Y|X)
i
记子集 Di 中属于类Ck 的样本的集合为Dik ,Dik 为Dik 的样 本个数。
64 - 20
信息增益的计算方法
计算数据集D的经验熵
K
H D
Ck log Ck
k 1 D
D
遍历所有特征,对于特征A:
计算特征A对数据集D的经验条件熵H(D|A) 计算特征A的信息增益:g(D,A)=H(D) – H(D|A) 选择信息增益最大的特征作为当前的分裂特征
能力更强,这个属性使得数据由不确定性变成确定性的能力越强。
64 - 27
决策树的例子
对于下面的数据,希望分割成红色和绿色两个类
64 - 28
决策树的生成过程
64 - 29
决策树的生成过程
64 - 30
决策树的生成过程
64 - 31
决策树的生成过程
64 - 32
决策树的生成过程
64 - 33
定义事件X发生的信息量: hx log2 x
思考:事件X的信息量的期望如何计算呢?
64 - 6
熵
对随机事件的信息量求期望,得熵的定义:
H X pxln px
xX
注:经典熵的定义,底数是2,单位是bit 本例中,为分析方便使用底数e 若底数是e,单位是nat(奈特)
64 - 7
64 - 39
Bagging的策略
bootstrap aggregation 从样本集中重采样(有重复的)选出n个样本 在所有属性上,对这n个样本建立分类器(ID3、C4.5、
CART、SVM、Logistic回归等) 重复以上两步m次,即获得了m个分类器 将数据放在这m个分类器上,最后根据这m个分类器的投
CART决策树; 重复以上两步m次,即建立了m棵CART决策树 这m个CART形成随机森林,通过投票表决结果,决定数据属于哪
一类
64 - 44
思考
右图是实际B超拍摄的胎儿影像。完成头骨的自动检测算法,从而能 够进一步估算胎儿头骨直径、胎龄等信息。假定现在有已经标记的几 千张的不同胎儿的图像,对于新的一张图像,如何做自动检测和计 算?
联合熵和条件熵
两个随机变量XY的联合分布形成联合熵,用H(X,Y)表示 H(X,Y) – H(Y)
(X,Y)发生所包含的熵,减去Y单独发生包含的熵:在Y发生的前 提下,X发生“新”带来的熵
该式子定义为Y发生前提下,X的熵:
条件熵H(X|Y)
64 - 8
推导条件熵的定义式
H ( X ,Y ) H (Y )
64 - 17
决策树学习的生成算法
建立决策树的关键,即在当前状态下选择哪个属性作为分 类依据。根据不同的目标函数,建立决策树主要有一下三 种算法。
ID3 C4.5 CART
64 - 18
信息增益
概念:当熵和条件熵中的概率由数据估计(特别是极大似然估计)得到 时,所对应的熵和条件熵分别称为经验熵和经验条件熵。
Bootstraping的名称来自成语“pull up by your own bootstraps”,意思是 依靠你自己的资源,称为自助法,它是一种有放回的抽样方法。
注:Bootstrap本义是指高靴子口后面的悬挂物、小环、带子,是穿靴子时 用手向上拉的工具。“pull up by your own bootstraps”即“通过拉靴子让自己 上升”,意思是“不可能发生的事情”。后来意思发生了转变,隐喻“不需要 外界帮助,仅依靠自身力量让自己变得更好”。
信息增益表示得知特征A的信息而使得类X的信息的不确定性减少的 程度。
定义:特征A对训练数据集D的信息增益g(D,A),定义为集合D的经验 熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差,即:
g(D,A)=H(D) – H(D|A) 显然,这即为训练数据集D和特征A的互信息。
64 - 19
y
px,
y
log
px
y
x
px,
y
log
p y
x,y
px,
y
log
px,
y
px, ylog px px, ylog py px, ylog px, y
x,y
x,y
x, y
px, ylog px, y log px log py
x,y
x,y
px,
y log
px, y
pxpy
考察基尼指数的图像、熵、分类误差率三者之间的关系
将f(x)=-lnx在x=1处一阶展开,忽略高阶无穷小,得到f(x)≈1-x
K
H X pk ln pk
k 1 K
pk 1 pk
k 1
64 - 24
gini系数的其他定义
给定M个样本,计算样本最大值max和最小值min,等分成
N份,计算每份的样本数目xi(i=1,2,…,N),则每份的近似
如何用自然语言解释H(X)≥H(X|Y)?
64 - 13
强大的Venn图:帮助记忆
64 - 14
决策树的实例
64 - 15
注:Weka的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),是一款免费的,非 商业化(与之对应的是SPSS公司商业数据挖掘产品-Clementine )的,基于JAVA环境下开源的机器学习 (machine learning)以及数据挖掘(data minining)软件。它 和它的源代码可在其官方网站下载。
I ( X ,Y ) p(x, y) log
x,y
p(x) p( y)
64 - 11
计算互信息定义式 I(X,Y)=H(X)+H(Y)-H(X,Y)
I X ,Y H X H Y H X ,Y
pxlog
px
p
ylog
p y
px,
ylog
px,
y
x
y
x,y
x
64 - 3
随机森林
64 - 4
决策树:Level
64 - 5
定义信息量
原则:
某事件发生的概率小,则该事件的信息量大。 如果两个事件X和Y独立,即p(xy)=p(x)p(y) ,假定X和Y的信息量
分别为h(X)和h(Y),则二者同时发生的信息量应该为 h(XY)=h(X)+h(Y)。
概率为 pi xi , i 1,2,, N M
计算累积概率
i
i
i
pi
xi
i 1
i1 M
1i
M
xi ,
i 1
i 1,2,, N
另: 0 0, N 1
64 - 25
推导gini系数
阴影B的面积: i 1
i
xi , i 1,2 N
M i1
SB
N
i
1
i
1
1
N
i1 i
i1 2
N 2N i1
1 N
N 1 N
N
2N
i
i 1
i1
i 1
2N
i
i 1
i
i 1
1
1 N
2i 1
2N i1
0 0
N 1
gini系数:
gini
SA
1/ 2 SB
1 2SB
1
1
2
N
i
1
SA SB 1/ 2
N i1
64 - 26
三种决策树学习算法
决策树的生成过程
64 - 34
决策树的生成过程
64 - 35
决策树的生成过程
64 - 36
决策树的生成过程
64 - 37
决策树的过Leabharlann Baidu合
决策树对训练属于有很好的分类能力,但对未知的测试数 据未必有好的分类能力,泛化能力弱,即可能发生过拟合 现象。
剪枝 随机森林
64 - 38
Bootstraping
票结果,决定数据属于哪一类
64 - 40
Another description of Bagging
64 - 41
Bagging
64 - 42
Bagging的结果
64 - 43
随机森林
随机森林在bagging基础上做了修改。
从样本集中用Bootstrap采样选出n个样本; 从所有属性中随机选择k个属性,选择最佳分割属性作为节点建立
随机选择若干特征和样本,得到a*b的小矩阵,建立决策 树;
重复K次得到随机森林。 投票方法选择少数服从多数。
64 - 46
应用实例:Kinect
64 - 47
Real-Time Human Pose Recognition in Parts from Single Depth Images, Jamie Shotton etc,2001,
xy
p(x) p( y | x) log p( y | x)
x
y
p(
x)
p(
y
|
x)
log
p(
y
|
x)
x
y
p(x)H Y | X x
x
64 - 10
互信息
两个随机变量X,Y的互信息,定义为X,Y的信息熵减去 X,Y的联合熵。
I(X,Y)=H(X)+H(Y)-H(X,Y)
p(x, y)
p(x, y) log p(x, y) p( y) log p( y)
x,y
y
p(x, y) log p(x, y) p(x, y) log p( y)
x,y
yx
p(x, y) log p(x, y) p(x, y) log p( y)
x,y
x, y
p(x, y)
p(x, y) log
ID3:使用信息增益/互信息g(D,A)进行特征选择
取值多的属性,更容易使数据更纯 ,其信息增益更大。 训练得到的是一棵庞大且深度浅的树:不合理。
C4.5:信息增益率 gr(D,A) = g(D,A) / H(A) CART:基尼指数 一个属性的信息增益(率)/gini指数越大,表明属性对样本的熵减少的
决策树和随机森林
牛客网 邹伟
2015年1月23日
64 - 1
目标任务与主要内容
掌握信息熵
熵、联合熵、条件熵、互信息
决策树学习算法
信息增益 ID3、C4.5、CART
Bagging与随机森林的思想
投票机制
64 - 2
CART
输入数据x:M个样本数据,每个数据包括年龄、性别、 职业、每日使用计算机时间等
基本记号
设训练数据集为 D ,D 表示样本个数。 设有K个类 Ck , k 1,2K,Ck 为属于类 Ck 的样本个数,
有: Ck D
k
设特征A有n个不同的取值a1, a2 an,根据特征A的取值
将D划分为n个子集 D1, D2 Dn , Di 为 Di 的样本个数,
有: Di D
x,y
p( y)
p(x, y) log p(x | y)
x,y
64 - 9
根据条件熵的定义式,可以得到
H ( X ,Y ) H ( X ) p(x, y) log p( y | x)
x, y
p(x, y) log p( y | x)
xy
p(x) p( y | x) log p( y | x)
一种可行的解决方案:随机森林
通过Haar特征提取等对每幅图片分别处理,得到M个特征。N个图片形成 N*M的矩阵。
随机选择若干特征和样本,得到a*b的小矩阵,建立决策树; 重复K次得到随机森林。 投票方法选择少数服从多数。
64 - 45
一种可行的解决方案
通过Haar特征提取等对每幅图片分别处理,得到M个特 征。N个图片形成N*M的矩阵。
i 1
k 1
n
Di
K
Dik log Dik
D i1
k 1
Di
Di
64 - 22
其他目标
信息增益率:gr(D,A) = g(D,A) / H(A) 基尼指数:
K
K
Gini p pk 1 pk 1 pk2
k 1
k 1
2
K
1 k 1
Ck D
64 - 23
关于基尼指数的讨论(一家之言)
决策树示意图
64 - 16
决策树 (Decision Tree)
决策树是一种树型结构,其中每个内部结点表示在一个属 性上的测试,每个分支代表一个测试输出,每个叶结点代 表一种类别。
决策树学习是以实例为基础的归纳学习。 决策树学习采用的是自顶向下的递归方法,其基本思想是
以信息熵为度量构造一棵熵值下降最快的树,到叶子节点 处的熵值为零,此时每个叶节点中的实例都属于同一类。
64 - 21
经验条件熵H(D|A)
H D | A pDk , Ai log pDk | Ai
i,k
pAi pDk | Ai log pDk | Ai
i,k
nK
pAi pDk | Ai log pDk | Ai
i1 k 1
n
K
pAi pDk | Ai log pDk | Ai
64 - 12
条件熵与互信息的等式
互信息:I(X,Y)=H(X)+H(Y)-H(X,Y) 条件熵:H(X|Y)=H(X,Y)-H(Y) 带入,得:I(X,Y)=H(X)-H(X|Y)
条件熵:H(Y|X)=H(X,Y)-H(X) 带入,得:I(X,Y)=H(Y)-H(Y|X)
由I(X,Y)≥0,得H(X)≥H(X|Y),H(Y)≥H(Y|X)
i
记子集 Di 中属于类Ck 的样本的集合为Dik ,Dik 为Dik 的样 本个数。
64 - 20
信息增益的计算方法
计算数据集D的经验熵
K
H D
Ck log Ck
k 1 D
D
遍历所有特征,对于特征A:
计算特征A对数据集D的经验条件熵H(D|A) 计算特征A的信息增益:g(D,A)=H(D) – H(D|A) 选择信息增益最大的特征作为当前的分裂特征
能力更强,这个属性使得数据由不确定性变成确定性的能力越强。
64 - 27
决策树的例子
对于下面的数据,希望分割成红色和绿色两个类
64 - 28
决策树的生成过程
64 - 29
决策树的生成过程
64 - 30
决策树的生成过程
64 - 31
决策树的生成过程
64 - 32
决策树的生成过程
64 - 33
定义事件X发生的信息量: hx log2 x
思考:事件X的信息量的期望如何计算呢?
64 - 6
熵
对随机事件的信息量求期望,得熵的定义:
H X pxln px
xX
注:经典熵的定义,底数是2,单位是bit 本例中,为分析方便使用底数e 若底数是e,单位是nat(奈特)
64 - 7
64 - 39
Bagging的策略
bootstrap aggregation 从样本集中重采样(有重复的)选出n个样本 在所有属性上,对这n个样本建立分类器(ID3、C4.5、
CART、SVM、Logistic回归等) 重复以上两步m次,即获得了m个分类器 将数据放在这m个分类器上,最后根据这m个分类器的投
CART决策树; 重复以上两步m次,即建立了m棵CART决策树 这m个CART形成随机森林,通过投票表决结果,决定数据属于哪
一类
64 - 44
思考
右图是实际B超拍摄的胎儿影像。完成头骨的自动检测算法,从而能 够进一步估算胎儿头骨直径、胎龄等信息。假定现在有已经标记的几 千张的不同胎儿的图像,对于新的一张图像,如何做自动检测和计 算?
联合熵和条件熵
两个随机变量XY的联合分布形成联合熵,用H(X,Y)表示 H(X,Y) – H(Y)
(X,Y)发生所包含的熵,减去Y单独发生包含的熵:在Y发生的前 提下,X发生“新”带来的熵
该式子定义为Y发生前提下,X的熵:
条件熵H(X|Y)
64 - 8
推导条件熵的定义式
H ( X ,Y ) H (Y )
64 - 17
决策树学习的生成算法
建立决策树的关键,即在当前状态下选择哪个属性作为分 类依据。根据不同的目标函数,建立决策树主要有一下三 种算法。
ID3 C4.5 CART
64 - 18
信息增益
概念:当熵和条件熵中的概率由数据估计(特别是极大似然估计)得到 时,所对应的熵和条件熵分别称为经验熵和经验条件熵。
Bootstraping的名称来自成语“pull up by your own bootstraps”,意思是 依靠你自己的资源,称为自助法,它是一种有放回的抽样方法。
注:Bootstrap本义是指高靴子口后面的悬挂物、小环、带子,是穿靴子时 用手向上拉的工具。“pull up by your own bootstraps”即“通过拉靴子让自己 上升”,意思是“不可能发生的事情”。后来意思发生了转变,隐喻“不需要 外界帮助,仅依靠自身力量让自己变得更好”。
信息增益表示得知特征A的信息而使得类X的信息的不确定性减少的 程度。
定义:特征A对训练数据集D的信息增益g(D,A),定义为集合D的经验 熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差,即:
g(D,A)=H(D) – H(D|A) 显然,这即为训练数据集D和特征A的互信息。
64 - 19
y
px,
y
log
px
y
x
px,
y
log
p y
x,y
px,
y
log
px,
y
px, ylog px px, ylog py px, ylog px, y
x,y
x,y
x, y
px, ylog px, y log px log py
x,y
x,y
px,
y log
px, y
pxpy
考察基尼指数的图像、熵、分类误差率三者之间的关系
将f(x)=-lnx在x=1处一阶展开,忽略高阶无穷小,得到f(x)≈1-x
K
H X pk ln pk
k 1 K
pk 1 pk
k 1
64 - 24
gini系数的其他定义
给定M个样本,计算样本最大值max和最小值min,等分成
N份,计算每份的样本数目xi(i=1,2,…,N),则每份的近似
如何用自然语言解释H(X)≥H(X|Y)?
64 - 13
强大的Venn图:帮助记忆
64 - 14
决策树的实例
64 - 15
注:Weka的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),是一款免费的,非 商业化(与之对应的是SPSS公司商业数据挖掘产品-Clementine )的,基于JAVA环境下开源的机器学习 (machine learning)以及数据挖掘(data minining)软件。它 和它的源代码可在其官方网站下载。
I ( X ,Y ) p(x, y) log
x,y
p(x) p( y)
64 - 11
计算互信息定义式 I(X,Y)=H(X)+H(Y)-H(X,Y)
I X ,Y H X H Y H X ,Y
pxlog
px
p
ylog
p y
px,
ylog
px,
y
x
y
x,y
x