决策树算法及应用拓展
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
决策树生成算法分成两个步骤
树的生成 开始,数据都在根节点 递归的进行数据分片
树的修剪 去掉一些可能是噪音或者异常的数据
决策树使用: 对未知数据进行分割
按照决策树上采用的分割属性逐层往下,直到一个叶子节点
•5
决策树算法
基本算法(贪心算法)
自上而下分而治之的方法 开始时,所有的数据都在根节点 属性都是种类字段 (如果是连续的,将其离散化) 所有记录用所选属性递归的进行分割 属性的选择是基于一个启发式规则或者一个统计的度量
• return minCostN
(如, information gain)
停止分割的条件
一个节点上的数据都是属于同一个类别 没有属性可以再用于对数据进行分割
•6
伪代码(Building Tree)
Procedure BuildTree(S) 用数据集S初始化根节点R 用根结点R初始化队列Q While Q is not Empty do { 取出队列Q中的第一个节点N if N 不纯 (Pure) { for 每一个属性 A 估计该节点在A上的信息增益 选出最佳的属性,将N分裂为N1、N2 } }
决策树算法及应用拓展
2020年5月28日星期四
概述(一)
传统挖掘方法的局限性
只重视从数据库中提取规则,忽视了库中 数据的变化
挖掘所用的数据来自稳定的环境,人为干 预较少
•2
概述(二)
捕捉新旧数据变化的目的:
挖掘出变化的趋势
例:啤酒——尿布
阻止/延缓不利变化的发生
例:金融危机——银行的信贷策略
Compute the entropy for
age:
Similarly
•11
Baidu Nhomakorabea
Decision Tree (结果输出)
•age?
•<=30 •o•v30e.r.c40ast •>40
•student?
•yes
•credit rating?
•no
•yes
•no
•yes
•excellent •fair
I(s1,s2,……,sm)=-∑Pi log2(pi) (i=1..m)
其中,数据集为S,m为S的分类数目, Pi
Ci为某分类标号,Pi为任意样本属于Ci的概率
, si为分类Ci上的样本数 由A划分为子集的熵:
E(A)= ∑(s1j+ ……+smj)/s * I(s1j+ ……+smj)
•13
预备知识二(Pruning Tree)
目的:
消除决策树的过适应(OverFitting)问题 实质:消除训练集中的异常和噪声
两种方法:
先剪枝法(Public 算法) 后剪枝法(Sprint 算法)
•14
两种剪枝标准
最小描述长度原则(MDL)
思想:最简单的解释最期望的 做法:对Decision-Tree 进行二进位编码,
•16
Cost of Encoding Tree
编码树结构本身的代价 编码每个分裂节点的代价
确定分类属性的代价 确定分类属性值的代价
&
其中,v是该节点上不同属性值的个数
编码每个树叶上的记录分类的代价
•17
剪枝算法
设N为欲计算其最小代价的节点 两种情形:
N是叶结点——C(S)+1 ——Cost1 N是内部节点,有两个子节点N1、N2
A为属性,具有V个不同的取值 信息增益:Gain(A)= I(s1,s2,……,sm) - E(A)
•9
训练集(举例)
ID3算法
•10
使用信息增益进行属性选择
Class P: buys_computer = “yes”
Class N: buys_computer
= “no”
Hence
I(p, n) = I(9, 5) =0.940
编码所需二进位最少的树即为“最佳剪枝树 ”
期望错误率最小原则
思想:选择期望错误率最小的子树进行剪 枝
对树中的内部节点计算其剪枝/不剪枝可能
•15
Cost of Encoding Data Records
对n条记录进行分类编码的代价(2种方法 )
n ——记录数,k ——类数目,ni——属于 类i的记录数
• if N 是叶子节点,return (C(S)+1)
• minCost1= Compute&Prune(Node N1)
• minCost2= Compute&Prune(Node N2)
• minCostN=min{C(S)+1,Csplit(N)+1+minCost1
•
+minCost2}
• if minCostN=C(S)+1 Prune child nodes N1 and N2
•no
•yes
•12
基尼指数 Gini Index (IBM
IntelligentMiner)
集合T包含N个类别的记录,那么其Gini指标就是 pj 类别j出现的频率
如果集合T分成两部分 N1 and N2 。那么这个分割的 Gini就是
提供最小Ginisplit 就被选择作为分割的标准(对于每个 属性都要遍历所有可以的分割方法).
差异挖掘算法的主要思想:
合理比较新/旧数据的挖掘结果,并清晰的 描述其变化部分
•3
预备知识一(Building Tree)
基本思想: 用途:提取分类规则,进行分类预测
•inpu t
•判定树分类算法•t outpu
•训练 集
•决策 树
•4
使用决策树进行分类
决策树
一个树性的结构 内部节点上选用一个属性进行分割 每个分叉都是分割的一个部分 叶子节点表示一个分布
已剪去N1、N2,N成为叶子节点 ——Cost1 计算N节点及其子树的代价,使用递归过程
Csplit(N)+1+minCost1+minCost2 ——Cost2 比较Cost1和Cost2,选取代价较小者作为返回 值
•18
计算最小子树代价的伪代码
•Procedure ComputeCost&Prune(Node N)
•7
属性选择的统计度量
信息增益——Information gain (ID3/C4.5)
所有属性假设都是种类字段 经过修改之后可以适用于数值字段
基尼指数——Gini index (IBM IntelligentMiner)
能够适用于种类和数值字段
•8
信息增益度度量(ID3/C4.5)
任意样本分类的期望信息:
树的生成 开始,数据都在根节点 递归的进行数据分片
树的修剪 去掉一些可能是噪音或者异常的数据
决策树使用: 对未知数据进行分割
按照决策树上采用的分割属性逐层往下,直到一个叶子节点
•5
决策树算法
基本算法(贪心算法)
自上而下分而治之的方法 开始时,所有的数据都在根节点 属性都是种类字段 (如果是连续的,将其离散化) 所有记录用所选属性递归的进行分割 属性的选择是基于一个启发式规则或者一个统计的度量
• return minCostN
(如, information gain)
停止分割的条件
一个节点上的数据都是属于同一个类别 没有属性可以再用于对数据进行分割
•6
伪代码(Building Tree)
Procedure BuildTree(S) 用数据集S初始化根节点R 用根结点R初始化队列Q While Q is not Empty do { 取出队列Q中的第一个节点N if N 不纯 (Pure) { for 每一个属性 A 估计该节点在A上的信息增益 选出最佳的属性,将N分裂为N1、N2 } }
决策树算法及应用拓展
2020年5月28日星期四
概述(一)
传统挖掘方法的局限性
只重视从数据库中提取规则,忽视了库中 数据的变化
挖掘所用的数据来自稳定的环境,人为干 预较少
•2
概述(二)
捕捉新旧数据变化的目的:
挖掘出变化的趋势
例:啤酒——尿布
阻止/延缓不利变化的发生
例:金融危机——银行的信贷策略
Compute the entropy for
age:
Similarly
•11
Baidu Nhomakorabea
Decision Tree (结果输出)
•age?
•<=30 •o•v30e.r.c40ast •>40
•student?
•yes
•credit rating?
•no
•yes
•no
•yes
•excellent •fair
I(s1,s2,……,sm)=-∑Pi log2(pi) (i=1..m)
其中,数据集为S,m为S的分类数目, Pi
Ci为某分类标号,Pi为任意样本属于Ci的概率
, si为分类Ci上的样本数 由A划分为子集的熵:
E(A)= ∑(s1j+ ……+smj)/s * I(s1j+ ……+smj)
•13
预备知识二(Pruning Tree)
目的:
消除决策树的过适应(OverFitting)问题 实质:消除训练集中的异常和噪声
两种方法:
先剪枝法(Public 算法) 后剪枝法(Sprint 算法)
•14
两种剪枝标准
最小描述长度原则(MDL)
思想:最简单的解释最期望的 做法:对Decision-Tree 进行二进位编码,
•16
Cost of Encoding Tree
编码树结构本身的代价 编码每个分裂节点的代价
确定分类属性的代价 确定分类属性值的代价
&
其中,v是该节点上不同属性值的个数
编码每个树叶上的记录分类的代价
•17
剪枝算法
设N为欲计算其最小代价的节点 两种情形:
N是叶结点——C(S)+1 ——Cost1 N是内部节点,有两个子节点N1、N2
A为属性,具有V个不同的取值 信息增益:Gain(A)= I(s1,s2,……,sm) - E(A)
•9
训练集(举例)
ID3算法
•10
使用信息增益进行属性选择
Class P: buys_computer = “yes”
Class N: buys_computer
= “no”
Hence
I(p, n) = I(9, 5) =0.940
编码所需二进位最少的树即为“最佳剪枝树 ”
期望错误率最小原则
思想:选择期望错误率最小的子树进行剪 枝
对树中的内部节点计算其剪枝/不剪枝可能
•15
Cost of Encoding Data Records
对n条记录进行分类编码的代价(2种方法 )
n ——记录数,k ——类数目,ni——属于 类i的记录数
• if N 是叶子节点,return (C(S)+1)
• minCost1= Compute&Prune(Node N1)
• minCost2= Compute&Prune(Node N2)
• minCostN=min{C(S)+1,Csplit(N)+1+minCost1
•
+minCost2}
• if minCostN=C(S)+1 Prune child nodes N1 and N2
•no
•yes
•12
基尼指数 Gini Index (IBM
IntelligentMiner)
集合T包含N个类别的记录,那么其Gini指标就是 pj 类别j出现的频率
如果集合T分成两部分 N1 and N2 。那么这个分割的 Gini就是
提供最小Ginisplit 就被选择作为分割的标准(对于每个 属性都要遍历所有可以的分割方法).
差异挖掘算法的主要思想:
合理比较新/旧数据的挖掘结果,并清晰的 描述其变化部分
•3
预备知识一(Building Tree)
基本思想: 用途:提取分类规则,进行分类预测
•inpu t
•判定树分类算法•t outpu
•训练 集
•决策 树
•4
使用决策树进行分类
决策树
一个树性的结构 内部节点上选用一个属性进行分割 每个分叉都是分割的一个部分 叶子节点表示一个分布
已剪去N1、N2,N成为叶子节点 ——Cost1 计算N节点及其子树的代价,使用递归过程
Csplit(N)+1+minCost1+minCost2 ——Cost2 比较Cost1和Cost2,选取代价较小者作为返回 值
•18
计算最小子树代价的伪代码
•Procedure ComputeCost&Prune(Node N)
•7
属性选择的统计度量
信息增益——Information gain (ID3/C4.5)
所有属性假设都是种类字段 经过修改之后可以适用于数值字段
基尼指数——Gini index (IBM IntelligentMiner)
能够适用于种类和数值字段
•8
信息增益度度量(ID3/C4.5)
任意样本分类的期望信息: