《机器学习》读书笔记,第三章决策树学习

本文详细介绍了决策树学习,包括ID3、C4.5算法,讨论了其适用问题、归纳偏置、避免过拟合的方法以及处理连续属性、缺失值和不同代价属性的策略,揭示了决策树学习在机器学习中的重要性和实际应用。
摘要由CSDN通过智能技术生成
决策树学习是应用最广泛的归纳推理算法之一。
它是一种逼近离散值函数的方法,对噪声数据有很好的健壮性且能够学习析取表达式
本章描述了一系列决策树学习算法,包括如ID3、ASSISTANT和C4.5
这些决策树学习方法搜索一个完整表示的假设空间,从而避免了受限假设空间的不足。
决策树学习的归纳偏置是优先选择较小的树


3.1简介:
决策树学习是一种逼近离散值函数的方法,在这种方法中学习到的函数被表示为一棵决策树
学习到的决策树也能再被表示为多个if-then的规则,以提高可读性
这种学习算法是最流行的归纳推理算法之一,已经被成功地应用到从学习医疗诊断到学习评估贷款申请的信用风险的广阔领域


3.2决策树表示法:
决策树通过把实例从根节点排列(sort)到某个叶子节点来分类实例,叶子节点既为实例所属的分类
树上的每一个节点指定了对实例的某个属性的测试,并且该节点的每一个后继分支对应于该属性的一个可能值
分类实例的方法是从这棵树的根节点开始,测试这个节点指定的属性,然后按照给定实例的该属性值对应的树枝向下移动
然后这个过程在以新节点为根的子树上重复


通常决策树代表实例属性约束合取(conjunction)的析取式(disjunction)
从树根到树叶的每一条路径对应一组属性测试的合取,树本身对应这些合取的析取


3.3决策树学习的适用问题:
尽管已经开发的种种决策树学习算法有这样或那样不太一致的能力和要求,通常决策树学习最适合具有以下特征的问题:
-实例是由"属性":"值"对表示的:一系列固定的属性和值或值域
-目标函数具有离散的输出值:Bool,或两个以上输出值
-可能需要析取的描述:如上面指出,决策树很自然地代表了析取表达式
-训练数据可以包含错误
-训练数据可以包含缺少属性值的实例:决策树学习甚至可以在有未知属性值的训练样例中使用


已经发现很多实际的问题符合这些特征,所以决策树学习已经被应用到很多问题中
例如根据疾病分类患者;根据起因分类设备故障;根据拖欠支付的可能性分类贷款申请
对于这些问题,核心任务都是要把样例分类到各可能的离散值对应的类别(catagory)中,因此经常被称为分类问题


3.4基本的决策树学习算法:
大多数已开发的决策树学习算法是一种核心算法的变体
该算法采用自顶向下的贪婪搜索遍历可能的决策树空间
这种算法是ID3算法(Quinlan1986)和后继的C4.5算法(Quinlan1993)的基础
本节给出决策树学习的基本算法,大致相当于ID3算法


基本的ID3算法通过自顶向下构造决策树来进行学习。
构造过程是从“哪一个属性将在树的根节点被测试?”这个问题开始的
为了回答这个问题,使用统计测试来确定每一个实例属性单独分类训练样例的能力
分类能力最好的属性被选作树的根节点的测试
然后为根节点属性的每个可能值产生一个分支,并把训练样例排列到适当的分支(也就是,样例的该属性值对应的分支)之下
然后重复整个过程,用每个分支节点关联的训练样例来选取在该点被测试的最佳属性
这形成了对合格决策树的贪婪搜索(greedy search),也就是算法从不回溯重新考虑以前的选择


如下是一个简化版本————专门用来学习布尔值函数:


ID3(Examples, Target_attribute, Attributes)
Examples是训练样例集,Target_attribute是这棵树要预测的目标属性,Attributes是除目标属性外供学习到的决策树测试的属性列表。返回一颗能正确分类给定Examples的决策树
-创建树的Root结点
-如果Examples都为正,那么返回lable = +的单结点树Root
-如果Examples都为反,那么返回lable = -的单节点树Root
-如果Attributes为空,那么返回单结点树Root,label = Examples中最普遍的Target_attribute值
-否则开始
-A <- Attributes中分类Examples能力最好的属性
-Root的决策属性 <- A
-对于A的每个可能值vi
-在Root下加一个新的分支对应测试A = vi
-令Examples(vi)为Examples中满足A属性值为vi的子集
-如果Examples(vi)为空
-在这个新分支下加一个叶子结点,结点的label=Examples中最普遍的Target_attribute值
-否则在这个新分支下加一个子树ID3(Examples(vi), Target_attribute, Attributes - |A|)
-结束
-返回Root


3.4.1哪个属性是最佳的分类属性
ID3算法的核心问题是选取在树的每个节点要测试的属性
我们希望选择的是最有助于分类实例的属性
那么衡量属性价值的一个好的定量标准是什么呢?
这里将定义一个统计属性,称为“信息增益”,用来衡量给定的属性分区训练样例的能力
ID3在增长树的每一步使用这个信息增益标准从候选属性中选择最佳属性


1.用熵度量样例的均一性
为了精确的定义信息增益,我们先定义信息论中广泛使用的一个度量标准,称为熵(tropy),它刻画了任意样例集的纯度(purity)
给定包含关于某个目标概念的正反样例的样例集S,那么S相对这个布尔型分类的熵为(见书公式3.1)
Entropy(S) = -p1 * log2(p1) - p2 * log2(p2)
p1为S中正例的比例,p2为S中反例的比例,定义0log2(0)为0
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值