数据挖掘决策树算法ID3和C4.5ppt课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 3.对该划分的信息增益进行计算。 • 4.对其他属性重复该过程。 • 5.每个用于划分的属性产生一棵局部树。 • 6.根据局部树的信息增益值,选择一棵增益最大的属性的
局部树。 • 7.对选定的局部树的每个子女节点重复以上1-6步。 • 8.这是一个递归过程。如果一个节点上的所有实例都具有
相同的类,则停止局部树的生长。
在叶子节点上的yes和no类的实例数量 gain(outlook)=info([9,5])-info([2,3],[4,0],[3,2])
分别是[2,3]、[4,0]、[3,2],因此,这些
=0.940-0.693=0.247 bit
节点上的信息值分别是:
info([2,3])=entropy(2/5,3/5)=0.971 bit
entropy(p,q,r)=entropy(p,q+r)+(q+r)*entropy(q/(q+r),r/(q+r))
我们需要一种度量来表示节点的纯度,并需要这种 度量告诉我们根据一个变量的属性值将一个不纯 的节点上的数据划分到其子女后,纯度提高了多 少。最为广泛使用的度量是信息值(熵)。(以天 气数据为例)
play no no yes yes yes no yes no yes yes yes yes yes no
3
• 我们希望从上面的实例中找出者若干条规 则,使得能够对这些实例的类做出判断 (理想情况下)(举例)
• if outlook=sunny and =high then play =no • if humidity= normal then play=yes
info([2,3],[4,0],[3,2])
=(5/14)*0.971+(4/14)*0+(5/14)*0.971
=0.693 bit 在任何初始树创建之前,处于根节点的
训练样本由9个yes和5个no组成, 与之相对应的信息值:info([9,5])=0.940 bit
因此树桩所获得的信息增益为:
humidity high high high high normal normal normal high normal normal normal high normal high
windy FALSE TRUE FALSE FALSE FALSE TRUE TRUE FALSE FALSE FALSE TRUE TRUE FALSE TRUE
9
outlook属性的树桩
sunny
yes yes no no no
outlook
rainy overcast
yes
yes
yes
yes
yes
yes
no
yes
no
Байду номын сангаас
然后计算这些叶子节点的平均信息值, 并考虑到达每个分支的实例数量: 有5个实例到达第一和第三个分支;
4个实例到达第二个分支:那么平均信息值
wind
false
yes yes yes yes yes yes no no
true
yes yes yes no no no
gain(wind)=0.048 bit
11
将这些属性的信息增益的值进行比较,信息增益最大的属性节点将作为 决策树的根节点。所以我们选择outlook属性作为根节点,它是唯一一 个获得了全纯子节点,这就为超越其他所有属性赢得了相当大的优势。 而湿度属性是第二个最佳选择,因为它产生了一个几乎是全纯且较大 的子节点。
数据生成、有一定综合程度的用于数据分析处 理的数据集)生成 2.决策树的剪枝:采用新的样本数据集(测试数 据集或者训练数据修剪集)检验决策树生成过 程中产生的初步规则,将影响预测准确性的分 支剪除。
6
ID3决策树算法描述
• 1.试探性地选择一个属性放置在根节点,并对该属性的每 个值产生一个分支。
• 2.分裂根节点上的数据集,并移到子女节点,产生一棵局 部树。
7
选择属性作为根
产生分支
计算信息增益
选择max增益
是 数据进一步分裂?
否 结束
算法流程图
8
信息值(熵)、信息增益的概念
熵:
entropy(p1,p2,...,pn)=-p1logp1-p2logp2••••-pnlogpn 使用负号是因为分数p1,p2,...,pn的对数值是负数,而
熵是一个正数。熵是以位bit位单位的,公式里的 p1,p2,...,pn他们的和为1。
第二条规则错分了一个实例样本
4
决策节点: 1.最上面的节点称为根节点,是整个决策树的开始。 2.每个节点子节点的个数与决策树在用的算法有关。
(二叉树、多叉树) 分支:判断过程,要么是新的决策节点,要么是叶子 树叶:树的结尾,每个叶子代表一个类别
根节点
叶子节点
决策节点
叶子节点
叶子节点
5
步骤: 1.决策树的生成:由训练样本数据集(根据历史
2
天气数据
outlook 1 sunny 2 sunny 3 overcast 4 rainy 5 rainy 6 rainy 7 overcast 8 sunny 9 sunny 10 rainy 11 sunny 12 overcast 13 overcast 14 rainy
temperature hot hot hot mild cool cool cool mild cool mild mild mild hot mild
数据挖掘
决策树的建立 Decision Tree
1
学习数据挖掘的工具-weka
• weka是用Java语言编写的完整的软件资源 • Explorer是weka的主要图形用户界面 • weka存储数据的原始方式是ARFF或CSV
文件格式 • ARFF文件是由一组实例组成,并且每组实
例的属性值由逗号分开。(属性的类别)
cool
yes yes yes no
分别计算它们的信息增益为: gain(temperature)=0.029 bit
humidity
high
yes yes yes no no no no
normal
yes yes yes yes yes yes no
gain(humidity)=0.152 bit
info([4,0])=entropy(1,0)=0 bit
info([3,2])=entropy(3/5,2/5)=0.971 bit
10
temperature、humidity、wind属性的树桩
temperature
hot
yes yes no no
mild
yes yes yes yes no no
局部树。 • 7.对选定的局部树的每个子女节点重复以上1-6步。 • 8.这是一个递归过程。如果一个节点上的所有实例都具有
相同的类,则停止局部树的生长。
在叶子节点上的yes和no类的实例数量 gain(outlook)=info([9,5])-info([2,3],[4,0],[3,2])
分别是[2,3]、[4,0]、[3,2],因此,这些
=0.940-0.693=0.247 bit
节点上的信息值分别是:
info([2,3])=entropy(2/5,3/5)=0.971 bit
entropy(p,q,r)=entropy(p,q+r)+(q+r)*entropy(q/(q+r),r/(q+r))
我们需要一种度量来表示节点的纯度,并需要这种 度量告诉我们根据一个变量的属性值将一个不纯 的节点上的数据划分到其子女后,纯度提高了多 少。最为广泛使用的度量是信息值(熵)。(以天 气数据为例)
play no no yes yes yes no yes no yes yes yes yes yes no
3
• 我们希望从上面的实例中找出者若干条规 则,使得能够对这些实例的类做出判断 (理想情况下)(举例)
• if outlook=sunny and =high then play =no • if humidity= normal then play=yes
info([2,3],[4,0],[3,2])
=(5/14)*0.971+(4/14)*0+(5/14)*0.971
=0.693 bit 在任何初始树创建之前,处于根节点的
训练样本由9个yes和5个no组成, 与之相对应的信息值:info([9,5])=0.940 bit
因此树桩所获得的信息增益为:
humidity high high high high normal normal normal high normal normal normal high normal high
windy FALSE TRUE FALSE FALSE FALSE TRUE TRUE FALSE FALSE FALSE TRUE TRUE FALSE TRUE
9
outlook属性的树桩
sunny
yes yes no no no
outlook
rainy overcast
yes
yes
yes
yes
yes
yes
no
yes
no
Байду номын сангаас
然后计算这些叶子节点的平均信息值, 并考虑到达每个分支的实例数量: 有5个实例到达第一和第三个分支;
4个实例到达第二个分支:那么平均信息值
wind
false
yes yes yes yes yes yes no no
true
yes yes yes no no no
gain(wind)=0.048 bit
11
将这些属性的信息增益的值进行比较,信息增益最大的属性节点将作为 决策树的根节点。所以我们选择outlook属性作为根节点,它是唯一一 个获得了全纯子节点,这就为超越其他所有属性赢得了相当大的优势。 而湿度属性是第二个最佳选择,因为它产生了一个几乎是全纯且较大 的子节点。
数据生成、有一定综合程度的用于数据分析处 理的数据集)生成 2.决策树的剪枝:采用新的样本数据集(测试数 据集或者训练数据修剪集)检验决策树生成过 程中产生的初步规则,将影响预测准确性的分 支剪除。
6
ID3决策树算法描述
• 1.试探性地选择一个属性放置在根节点,并对该属性的每 个值产生一个分支。
• 2.分裂根节点上的数据集,并移到子女节点,产生一棵局 部树。
7
选择属性作为根
产生分支
计算信息增益
选择max增益
是 数据进一步分裂?
否 结束
算法流程图
8
信息值(熵)、信息增益的概念
熵:
entropy(p1,p2,...,pn)=-p1logp1-p2logp2••••-pnlogpn 使用负号是因为分数p1,p2,...,pn的对数值是负数,而
熵是一个正数。熵是以位bit位单位的,公式里的 p1,p2,...,pn他们的和为1。
第二条规则错分了一个实例样本
4
决策节点: 1.最上面的节点称为根节点,是整个决策树的开始。 2.每个节点子节点的个数与决策树在用的算法有关。
(二叉树、多叉树) 分支:判断过程,要么是新的决策节点,要么是叶子 树叶:树的结尾,每个叶子代表一个类别
根节点
叶子节点
决策节点
叶子节点
叶子节点
5
步骤: 1.决策树的生成:由训练样本数据集(根据历史
2
天气数据
outlook 1 sunny 2 sunny 3 overcast 4 rainy 5 rainy 6 rainy 7 overcast 8 sunny 9 sunny 10 rainy 11 sunny 12 overcast 13 overcast 14 rainy
temperature hot hot hot mild cool cool cool mild cool mild mild mild hot mild
数据挖掘
决策树的建立 Decision Tree
1
学习数据挖掘的工具-weka
• weka是用Java语言编写的完整的软件资源 • Explorer是weka的主要图形用户界面 • weka存储数据的原始方式是ARFF或CSV
文件格式 • ARFF文件是由一组实例组成,并且每组实
例的属性值由逗号分开。(属性的类别)
cool
yes yes yes no
分别计算它们的信息增益为: gain(temperature)=0.029 bit
humidity
high
yes yes yes no no no no
normal
yes yes yes yes yes yes no
gain(humidity)=0.152 bit
info([4,0])=entropy(1,0)=0 bit
info([3,2])=entropy(3/5,2/5)=0.971 bit
10
temperature、humidity、wind属性的树桩
temperature
hot
yes yes no no
mild
yes yes yes yes no no