2 机器学习-决策树学习
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 例如, <big,??,circle>将得到0.6个正例,0.2+0.2=0.4个反例 <big,red,??>将得到0.2个正例,0.5+0.3=0.8个反例 <big,??,??>将得到0.6x0.2=0.12个正例, 0.2+0.2+0.3+0.18=0.88个反例
2001年6月2日
属性开销
2001年6月2日
熵(Entropy)
• 一组样本S对于二元分类的熵(混淆度)为:
Entropy(S ) p log2 ( p ) p log2 ( p )
其中p+和 p-为S中的正例、反例所占比例 • 若所有样本属于同一分类,则熵为0(定义0log0=0) • 若样本平均分布(p+=p-=0.5),则熵最大(=1) • 可把熵视为对样本集分类进行编码所需的平均二进制
轻微改动时会导致决策结果剧烈变动的那些学习方法
2001年6月2日
引导(Boosting)
• 另一个生成多重模型的方法——重复更改同一个学习 算法的数据
• 对弱学习算法(假设的精度只要超过1/2即可)能保证性 能的改进
• 对样本加权,每次叠代产生一个新的假设,对那些导 致最终假设精度变差的样本重新加权
2001年6月2日
过度拟合和修剪
• 通过学习训练数据来构造分类树,可能无法达到最好 的泛化性能,因为
– 噪声数据的影响 – 某些决策仅基于少量数据,与客观事实不符合
• 一个假设H被称为对于训练数据是过度拟合的,指的是 如果存在另一个假设H’,在训练集上H的误差比H‘小, 但在测试集上H’的误差比H小
• 当训练集很小时,可能会严重损害分类精度 • 最好能给定合适的结点数,达到最佳折衷
2001年6月2日
连续属性
• 用分区方法,将连续值映射为离散值
• 结点分裂,以获得最大信息增益
• 达到最大信息增益的单阈值分裂算法 For each 连续特征 Ai 根据Ai的值对样本排序 For each 序列中的每对Xi,Xi+1 If Xi和Xi+1的分类不同 将Xi和Xi+1的中点作为可能的阈值进行检验,即
2001年6月2日
计算复杂度
• 最坏情况是构造出一棵完全树,每条路径都测试了所 有特征
• 各层i要对剩下的|A|-i个属性计算最佳分割
|A| iD
D
A ( A 1) O( D
A2)
i 1
2
• 一般来说,性能与属性个数成线性关系
2001年6月2日
决策树研究的历史
• 1960’s:Hunt的完全搜索决策树方法(CLS)对概念学 习建模
决策树学习 编写:张磊
决策树
• 决策树是实例(表示为特征向量)的分类器。结点测 试特征,边表示特征的每个值,叶结点对应分类。
• 可表示任意析取和合取范式,从而表示任意离散函数 和离散特征
• 可将实例分到多个分类(2) • 可以重写为规则,用析取范式(DNF)形式
red ^ circle -> positive
Sv S
Entropy(Sv )
其中Sv是S中属性A值为v的子集 • 例子:
big, red, circle : +
small, red, circle : +
small, red, square : -
big, blue, circle : -
2001年6月2日
决策树归纳中的假设空间
• 决策树可以表示任何离散函数,归纳就是在此空间内 的搜索
情况的复杂度更高
2001年6月2日
减小误差的修剪
• 一种后修剪,交叉验证的方法 将训练数据分割为两个集合:“生长”和“验证” 用“生长”数据构建一棵完全树 Until 验证数据集合上的精度降低 do: For each 树中非叶结点n 临时修剪掉n下子树,用标号为主要分类的叶子代替 在验证集上计算该树的精度 修剪掉那些对精度影响最大的分支
2001年6月2日
多重模型的实验结果
• 多决策树模型应用范围更广也更准确 • 引导算法性能比装袋算法好 • 引导算法偶尔也会降低性能
2001年6月2日
•
树立质量法制观念、提高全员质量意 识。20. 10.1720 .10.17Saturday , October 17, 2020
•
人生得意须尽欢,莫使金樽空对月。1 7:57:46 17:57:4 617:57 10/17/2 020 5:57:46 PM
从加权样本中学习一个假设ht 计算ht的误差t,作为被错误分类样本的总权重 If t >0.5 then 终止,else 继续 令t= t/(1- t) 将ht正确分类出的样本的权重乘以t 权重归一化以保证总和为1 在测试时,每个假设ht获得投票的权重为log(1/ t),票数 最多的假设作为最终决策
例如:
Ai Xi[Ai ] (Xi1[Ai ] Xi[Ai ]) / 2
长度(L): 10 15 21 28 32 40 50 (已排序)
分类: - + + - + + -
检查阈值:L<12.5, L<24.5, L<30, L<45
2001年6月2日
替代属性选取启发策略(增益比率)
• 信息增益缺点:偏爱那些有大量值的属性,产生很多 小而纯的子集,如病人ID、姓名、日期等
Until 没有新的特征被创建或到达限定值 do 使用当前的所有特征从训练集构造决策树 从边缘末端(正例)两个特征的联合来创建新特征 将这些新特征加入现有特征集中,同时扩展每个样本
的描述以包含所有新特征
2001年6月2日
边缘示例
2001年6月2日
多重模型
• 学习概念的多重候选定义 • 最终决策是基于多个学习模型的(加权)投票
2001年6月2日
增益比率细述
• 然而,当|Si|=|S|时SplitInfo可能很小甚至为0,从而导致 信息比率过大甚至溢出
• C4.5对此进行了改进,它计算每个特征的信息增益, 对于超过平均增益的特征,再进一步根据增益比率来 选取特征
2001年6月2日
缺失的属性值
• 属性值可能未完全给出 • 一种解决方法是根据已有样本属性值的先验概率来对
• 基本算法 给所有样本赋予一个初始权重 For i from 1 to T do 从加权的样本中学习一个假设hi 减小那些与hi一致的样本的权重
• 在测试时,每个假设会得到一个加权的投票(与训练数 据上的精度成比例)
2001年6月2日
引导算法
For D中的每个样本,令其权重wi=1/|D| For t from 1 to T do
• 1970后期:Quinlan发明用信息增益作为启发策略的 ID3方法,从样本中学习构造专家系统
• 同时,Breiman和Friedman开发的CART(分类与回归 树)方法类似于ID3
• 1980’s:对噪声、连续属性、数据缺失、改善分割条件 等进行研究
• 1993:Quinlan的改进决策树归纳包(C4.5),目前被 普遍采用
2001年6月2日
避免过度拟合的方法
• 需要修剪时的两个基本方法
– 预修剪:支持度不够则停止树的增长 – 后修剪:置信度不够则修剪掉该分支
• 子树是否需要修剪的判别方法:
– 交叉检验:保留部分训练数据用于验证 – 统计测试:通过训练集的统计来判别 – 最小描述长度(MDL):判别该假设的复杂度是否比记忆例外
2001年6月2日
基本决策树算法
• 训练数据批处理,自顶向下递归构造决策树 • DTree(examples, attributes)
If 所有样本属于同一分类,返回标号为该分类的叶结点 Else if 属性值为空,返回标号为最普遍分类的叶结点 Else 选取一个属性,A,作为根结点 For A的每一个可能的值vi
• 有些领域中,某些属性比其它属性更容易获取其值(例 如病人的体温比其胆固醇水平更容易得到)
• 尽可能采用那些低开销的属性来分类 • 在信息增益中增加属性开销是有效的:
Gain2 (S, A) Cost( A)
• 在不降低精度的同时降低了平均开销
2001年6月2日
递增式的决策树归纳
• ID4和ID5可以递增更新已有的树 • ID4有时会丢弃某些实例,不保证和历史训练样本一致 • ID5则保证和ID3的决策相同 • ID4速度快,但精度降低 • ID5速度较快且精度不变
样本计算属性值分布百分比
• 在训练时,缺失的属性会按照其分布百分比逐个计算 。
• 例如,给定一个缺失了颜色属性值的正例,它将被视 为0.6个red正例、0.2个blue正例和0.2个green正例。
2001年6月2日
测试时的值缺失
• 若属性值未给出,则设定为??(通配符),然后多路径到 达叶结点,最后计算分类结果的各分类权重
• 要降低这些情况下的增益
• 首先计算与分类无关属性的信息量,即该属性的熵
SplitInfo(S, A)
c i 1
Si S
log2
Si S
其中Si为S中具有属性A第i个值的子集。某属性按值分 割样本越平均,则SplitInfo越大
• 增益比率利用SplitInfo来避免选择这些属性
GainRatio(S, A) Gain(S, A) SplitInfo(S, A)
•
安全象只弓,不拉它就松,要想保安 全,常 把弓弦 绷。20. 10.1717 :57:461 7:57Oc t-2017- Oct-20
位数,采用哈夫曼编码压缩,越普遍的分类编码越短 • 对于多分类问题(假设有c个分类),则熵的推广定义:
c
Entropy(S ) pi log2 ( pi ) i 1
其中pi为属于分类i的样本在S中所占比例
2001年6月2日
信息增益
• 属性的信息增益是按该属性分割后熵的消减期望值:
Gain(S, A) Entropy(S) vValues( A)
令examplesi为具有A=vi的样本子集 从根结点出发增加分支(A=vi) 如果examplesi为空 则创建标号为最普遍分类的叶结点 否则递归创建子树——调用DTree(examplesi,attributes-{A})
2001年6月2日
根属性的选取
• 决策树要尽可能小 • 寻找一组数据对应的最小决策树是NP-hard的 • 简单递归算法是贪婪启发式搜索,无法保证最优 • 子集应尽可能“纯”,从而易于成为叶结点 • 最常用的启发规则是基于信息增益(Information Gain)
• 创建与数据一致的单一离散假设,所以无法提供置信 度或构造有用的查询
• 爬山式搜索存在局部最优问题。它可以保证找到符合 任何无噪声数据集的树,但未必是最小的
• 批量学习。每项决策需要一次数据集扫描,可提前结 束学习以减少噪声影响
2001年6月2日
决策树学习中的误区
• 树的深度应尽量小。但贪婪搜索可能无法找到最小树 ,顶层结点可能不是高区分度的
2001年6月2日
装袋(Bagging)
• 用训练集的不同样本来训练同一个学习者,来创建多 重模型(Breiman,1996)
• 给定训练集大小为n,通过从原始数据取样(用替换方 法),创建m个不同的训练集(大小为n)
• 用简单的投票方法来合并这m个模型 • 可用于任何学习方法 • 减少了不稳定学习算法的一般化错误,即当训练数据
2001年6月2日
决策树中的重复部分
• 决策树比DNF更复杂Hale Waihona Puke Baidu因为它常常存在重复部分
( f 1 f 2) ( f 3 f 4 f 5)
范式必须分解为析取范式,导致了重复子树的出现 • 解决:使用复杂特征或决策图 • 构造性归纳:原子特征的逻辑组合或算术组合
2001年6月2日
边缘算法
• 决策树构造性归纳的叠代算法 • 边缘算法(总是沿着树的边缘走)
red ^ circle -> A blue -> B; red ^ square -> B green -> C; red ^ triangle -> C
2001年6月2日
决策树学习
• 实例用(属性-值)对表示。离散值处理简单,连续值可 以划分区间。
• 输出可以是离散的分类,也可以是实数(回归树)。 • 能有效处理大量数据 • 可处理噪声数据(分类噪声,属性噪声) • 属性值缺失,亦可处理
2001年6月2日
过度拟合与噪声
• 分类或属性噪声都会导致过度拟合 增加噪声实例<<medium, green, circle>, +>(实际为-)
• 噪声也会直接导致样本的冲突(相同描述,不同分类)。 应将叶结点标号为主要的分类 <<big, red, circle>, -> (实际上为+)
• 若属性不完备且不足以判别分类时,也可能导致样本 的冲突
2001年6月2日
属性开销
2001年6月2日
熵(Entropy)
• 一组样本S对于二元分类的熵(混淆度)为:
Entropy(S ) p log2 ( p ) p log2 ( p )
其中p+和 p-为S中的正例、反例所占比例 • 若所有样本属于同一分类,则熵为0(定义0log0=0) • 若样本平均分布(p+=p-=0.5),则熵最大(=1) • 可把熵视为对样本集分类进行编码所需的平均二进制
轻微改动时会导致决策结果剧烈变动的那些学习方法
2001年6月2日
引导(Boosting)
• 另一个生成多重模型的方法——重复更改同一个学习 算法的数据
• 对弱学习算法(假设的精度只要超过1/2即可)能保证性 能的改进
• 对样本加权,每次叠代产生一个新的假设,对那些导 致最终假设精度变差的样本重新加权
2001年6月2日
过度拟合和修剪
• 通过学习训练数据来构造分类树,可能无法达到最好 的泛化性能,因为
– 噪声数据的影响 – 某些决策仅基于少量数据,与客观事实不符合
• 一个假设H被称为对于训练数据是过度拟合的,指的是 如果存在另一个假设H’,在训练集上H的误差比H‘小, 但在测试集上H’的误差比H小
• 当训练集很小时,可能会严重损害分类精度 • 最好能给定合适的结点数,达到最佳折衷
2001年6月2日
连续属性
• 用分区方法,将连续值映射为离散值
• 结点分裂,以获得最大信息增益
• 达到最大信息增益的单阈值分裂算法 For each 连续特征 Ai 根据Ai的值对样本排序 For each 序列中的每对Xi,Xi+1 If Xi和Xi+1的分类不同 将Xi和Xi+1的中点作为可能的阈值进行检验,即
2001年6月2日
计算复杂度
• 最坏情况是构造出一棵完全树,每条路径都测试了所 有特征
• 各层i要对剩下的|A|-i个属性计算最佳分割
|A| iD
D
A ( A 1) O( D
A2)
i 1
2
• 一般来说,性能与属性个数成线性关系
2001年6月2日
决策树研究的历史
• 1960’s:Hunt的完全搜索决策树方法(CLS)对概念学 习建模
决策树学习 编写:张磊
决策树
• 决策树是实例(表示为特征向量)的分类器。结点测 试特征,边表示特征的每个值,叶结点对应分类。
• 可表示任意析取和合取范式,从而表示任意离散函数 和离散特征
• 可将实例分到多个分类(2) • 可以重写为规则,用析取范式(DNF)形式
red ^ circle -> positive
Sv S
Entropy(Sv )
其中Sv是S中属性A值为v的子集 • 例子:
big, red, circle : +
small, red, circle : +
small, red, square : -
big, blue, circle : -
2001年6月2日
决策树归纳中的假设空间
• 决策树可以表示任何离散函数,归纳就是在此空间内 的搜索
情况的复杂度更高
2001年6月2日
减小误差的修剪
• 一种后修剪,交叉验证的方法 将训练数据分割为两个集合:“生长”和“验证” 用“生长”数据构建一棵完全树 Until 验证数据集合上的精度降低 do: For each 树中非叶结点n 临时修剪掉n下子树,用标号为主要分类的叶子代替 在验证集上计算该树的精度 修剪掉那些对精度影响最大的分支
2001年6月2日
多重模型的实验结果
• 多决策树模型应用范围更广也更准确 • 引导算法性能比装袋算法好 • 引导算法偶尔也会降低性能
2001年6月2日
•
树立质量法制观念、提高全员质量意 识。20. 10.1720 .10.17Saturday , October 17, 2020
•
人生得意须尽欢,莫使金樽空对月。1 7:57:46 17:57:4 617:57 10/17/2 020 5:57:46 PM
从加权样本中学习一个假设ht 计算ht的误差t,作为被错误分类样本的总权重 If t >0.5 then 终止,else 继续 令t= t/(1- t) 将ht正确分类出的样本的权重乘以t 权重归一化以保证总和为1 在测试时,每个假设ht获得投票的权重为log(1/ t),票数 最多的假设作为最终决策
例如:
Ai Xi[Ai ] (Xi1[Ai ] Xi[Ai ]) / 2
长度(L): 10 15 21 28 32 40 50 (已排序)
分类: - + + - + + -
检查阈值:L<12.5, L<24.5, L<30, L<45
2001年6月2日
替代属性选取启发策略(增益比率)
• 信息增益缺点:偏爱那些有大量值的属性,产生很多 小而纯的子集,如病人ID、姓名、日期等
Until 没有新的特征被创建或到达限定值 do 使用当前的所有特征从训练集构造决策树 从边缘末端(正例)两个特征的联合来创建新特征 将这些新特征加入现有特征集中,同时扩展每个样本
的描述以包含所有新特征
2001年6月2日
边缘示例
2001年6月2日
多重模型
• 学习概念的多重候选定义 • 最终决策是基于多个学习模型的(加权)投票
2001年6月2日
增益比率细述
• 然而,当|Si|=|S|时SplitInfo可能很小甚至为0,从而导致 信息比率过大甚至溢出
• C4.5对此进行了改进,它计算每个特征的信息增益, 对于超过平均增益的特征,再进一步根据增益比率来 选取特征
2001年6月2日
缺失的属性值
• 属性值可能未完全给出 • 一种解决方法是根据已有样本属性值的先验概率来对
• 基本算法 给所有样本赋予一个初始权重 For i from 1 to T do 从加权的样本中学习一个假设hi 减小那些与hi一致的样本的权重
• 在测试时,每个假设会得到一个加权的投票(与训练数 据上的精度成比例)
2001年6月2日
引导算法
For D中的每个样本,令其权重wi=1/|D| For t from 1 to T do
• 1970后期:Quinlan发明用信息增益作为启发策略的 ID3方法,从样本中学习构造专家系统
• 同时,Breiman和Friedman开发的CART(分类与回归 树)方法类似于ID3
• 1980’s:对噪声、连续属性、数据缺失、改善分割条件 等进行研究
• 1993:Quinlan的改进决策树归纳包(C4.5),目前被 普遍采用
2001年6月2日
避免过度拟合的方法
• 需要修剪时的两个基本方法
– 预修剪:支持度不够则停止树的增长 – 后修剪:置信度不够则修剪掉该分支
• 子树是否需要修剪的判别方法:
– 交叉检验:保留部分训练数据用于验证 – 统计测试:通过训练集的统计来判别 – 最小描述长度(MDL):判别该假设的复杂度是否比记忆例外
2001年6月2日
基本决策树算法
• 训练数据批处理,自顶向下递归构造决策树 • DTree(examples, attributes)
If 所有样本属于同一分类,返回标号为该分类的叶结点 Else if 属性值为空,返回标号为最普遍分类的叶结点 Else 选取一个属性,A,作为根结点 For A的每一个可能的值vi
• 有些领域中,某些属性比其它属性更容易获取其值(例 如病人的体温比其胆固醇水平更容易得到)
• 尽可能采用那些低开销的属性来分类 • 在信息增益中增加属性开销是有效的:
Gain2 (S, A) Cost( A)
• 在不降低精度的同时降低了平均开销
2001年6月2日
递增式的决策树归纳
• ID4和ID5可以递增更新已有的树 • ID4有时会丢弃某些实例,不保证和历史训练样本一致 • ID5则保证和ID3的决策相同 • ID4速度快,但精度降低 • ID5速度较快且精度不变
样本计算属性值分布百分比
• 在训练时,缺失的属性会按照其分布百分比逐个计算 。
• 例如,给定一个缺失了颜色属性值的正例,它将被视 为0.6个red正例、0.2个blue正例和0.2个green正例。
2001年6月2日
测试时的值缺失
• 若属性值未给出,则设定为??(通配符),然后多路径到 达叶结点,最后计算分类结果的各分类权重
• 要降低这些情况下的增益
• 首先计算与分类无关属性的信息量,即该属性的熵
SplitInfo(S, A)
c i 1
Si S
log2
Si S
其中Si为S中具有属性A第i个值的子集。某属性按值分 割样本越平均,则SplitInfo越大
• 增益比率利用SplitInfo来避免选择这些属性
GainRatio(S, A) Gain(S, A) SplitInfo(S, A)
•
安全象只弓,不拉它就松,要想保安 全,常 把弓弦 绷。20. 10.1717 :57:461 7:57Oc t-2017- Oct-20
位数,采用哈夫曼编码压缩,越普遍的分类编码越短 • 对于多分类问题(假设有c个分类),则熵的推广定义:
c
Entropy(S ) pi log2 ( pi ) i 1
其中pi为属于分类i的样本在S中所占比例
2001年6月2日
信息增益
• 属性的信息增益是按该属性分割后熵的消减期望值:
Gain(S, A) Entropy(S) vValues( A)
令examplesi为具有A=vi的样本子集 从根结点出发增加分支(A=vi) 如果examplesi为空 则创建标号为最普遍分类的叶结点 否则递归创建子树——调用DTree(examplesi,attributes-{A})
2001年6月2日
根属性的选取
• 决策树要尽可能小 • 寻找一组数据对应的最小决策树是NP-hard的 • 简单递归算法是贪婪启发式搜索,无法保证最优 • 子集应尽可能“纯”,从而易于成为叶结点 • 最常用的启发规则是基于信息增益(Information Gain)
• 创建与数据一致的单一离散假设,所以无法提供置信 度或构造有用的查询
• 爬山式搜索存在局部最优问题。它可以保证找到符合 任何无噪声数据集的树,但未必是最小的
• 批量学习。每项决策需要一次数据集扫描,可提前结 束学习以减少噪声影响
2001年6月2日
决策树学习中的误区
• 树的深度应尽量小。但贪婪搜索可能无法找到最小树 ,顶层结点可能不是高区分度的
2001年6月2日
装袋(Bagging)
• 用训练集的不同样本来训练同一个学习者,来创建多 重模型(Breiman,1996)
• 给定训练集大小为n,通过从原始数据取样(用替换方 法),创建m个不同的训练集(大小为n)
• 用简单的投票方法来合并这m个模型 • 可用于任何学习方法 • 减少了不稳定学习算法的一般化错误,即当训练数据
2001年6月2日
决策树中的重复部分
• 决策树比DNF更复杂Hale Waihona Puke Baidu因为它常常存在重复部分
( f 1 f 2) ( f 3 f 4 f 5)
范式必须分解为析取范式,导致了重复子树的出现 • 解决:使用复杂特征或决策图 • 构造性归纳:原子特征的逻辑组合或算术组合
2001年6月2日
边缘算法
• 决策树构造性归纳的叠代算法 • 边缘算法(总是沿着树的边缘走)
red ^ circle -> A blue -> B; red ^ square -> B green -> C; red ^ triangle -> C
2001年6月2日
决策树学习
• 实例用(属性-值)对表示。离散值处理简单,连续值可 以划分区间。
• 输出可以是离散的分类,也可以是实数(回归树)。 • 能有效处理大量数据 • 可处理噪声数据(分类噪声,属性噪声) • 属性值缺失,亦可处理
2001年6月2日
过度拟合与噪声
• 分类或属性噪声都会导致过度拟合 增加噪声实例<<medium, green, circle>, +>(实际为-)
• 噪声也会直接导致样本的冲突(相同描述,不同分类)。 应将叶结点标号为主要的分类 <<big, red, circle>, -> (实际上为+)
• 若属性不完备且不足以判别分类时,也可能导致样本 的冲突