You are on page 1of 58

机器学习

李成龙
安徽大学人工智能学院
“多模态认知计算”安徽省重点实验室
合肥综合性国家科学中心人工智能研究院
内容安排

• 什么是机器学习
• 机器如何学习
• 如何让机器学习的更好
• 为什么机器能学习
内容安排

• 机器如何学习
– 有监督学习
• 感知机
• 支持向量机
• 朴素贝叶斯分类
• 决策树
• 集成学习(Bagging算法与随机森林、Boosting算法)
• 线性回归
• 逻辑回归
• Softmax回归
• 神经网络与深度学习
– 无监督学习
• 聚类
• 主成分分析
本节目录

• 背景知识
• 模型结构
• 学习算法
• 剪枝处理
• 特殊属性处理
本节目录

• 背景知识
• 模型结构
• 学习算法
• 剪枝处理
• 特殊属性处理
背景知识

• 归纳学习
– 归纳是从特殊到一般的过程
– 归纳推理从若干个事实中表征出的特征、特性和属性中,
通过比较、总结、概括而得出一个规律性的结论
– 归纳推理试图从对象的一部分或整体的特定的观察中获
得一个完备且正确的描述。即从特殊事实到普遍性规律
的结论
– 归纳对于认识的发展和完善具有重要的意义。人类知识
的增长主要来源于归纳学习
背景知识

• 归纳学习
– 归纳学习由于依赖于检验数据,因此又称为检验学习
– 归纳学习存在一个基本的假设
• 任一假设如果能够在足够大的训练样本集中很好的逼近目标函
数,则它也能在未见样本中很好地逼近目标函数。该假定是归
纳学习的有效性的前提条件
– 归纳过程就是在描述空间中进行搜索的过程
– 归纳可分为自顶向下,自底向上和双向搜索三种方式
• 自底向上法一次处理一个输入对象,将描述逐步一般化,直到
最终的一般化描述
• 自顶向下法对可能的一般性描述集进行搜索,试图找到一些满
足一定要求的最优的描述
背景知识

• 决策树
– 决策树技术发现数据模式和规则的核心是归纳学习
– 决策树是一种典型的分类方法
• 对数据进行处理,利用归纳学习生成可读的规则和决策树
• 使用决策对新数据进行分析
– 本质上决策树是通过一系列规则对数据进行分类的过程
– 决策树的优点
• 推理过程容易理解,决策推理过程可以表示成If Then形式
• 推理过程完全依赖于属性变量的取值特点
• 可自动忽略目标变量没有贡献的属性变量,也为判断属性变量
的重要性,减少变量的数目提供参考
本节目录

• 背景知识
• 模型结构
• 学习算法
• 剪枝处理
• 特殊属性处理
模型结构

• 例子
– 套用俗语,决策树分类的思想类似于找对象。现想象一
个女孩的母亲要给这个女孩介绍男朋友,于是有了下面
的对话:
• 女儿:多大年纪了?
母亲:26。
女儿:长的帅不帅?
母亲:挺帅的。
女儿:收入高不?
母亲:不算很高,中等情况。
女儿:是公务员不?
母亲:是,在税务局上班呢。
女儿:那好,我去见见。
模型结构

• 例子
模型结构

• 决策树是解决分类问题的一般方法
– 基本思想:模拟人类进行级联选择或决策的过程,按照
属性的某个优先级依次对数据的全部属性进行判别,从
而得到输入数据所对应的预测输出
– 模型结构:一个根结点、若干内部结点和叶结点
• 中叶结点表示决策的结果
• 内部结点表示对样本某一属性判别
– 测试序列:从根结点到某一叶子结点的路径

决策树模型 测试序列
模型结构

• 决策树是解决分类问题的一般方法
– 决策树解决分类问题一般包含两个步骤
• 模型构建(归纳):通过对训练集合的归纳,建立分类模型
• 预测应用(推论):根据分类模型,对测试集合进行测试
训练集(类标记已知)
TID A1 A2 A3 类 学习算法
1 Y 100 L N
2 N 125 S N
3 Y 400 L Y 归纳 学习模型
4 N 415 M N
检验集(类标记未知) 模型
TID A1 A2 A3 类
1 Y 100 L ? 应用模型
2 N 125 S ?
3 Y 400 L ? 推论
4 N 415 M ?
模型结构
• 例题:现有12枚外观相同的硬币,其中有1枚是假的且比真
币重。如何使用一个无砝码天平把假币找出来,要求不超
过三次称重
本节目录

• 背景知识
• 模型结构
• 学习算法
• 剪枝处理
• 特殊属性处理
学习算法

• 判别标准
– 构造决策树的关键:如何选择最优划分属性。合理选择
其内部结点所对应的样本属性,使得结点所对应样本子
集中的样本尽可能多地属于同一类别,即具有尽可能高
的纯度
• 如果结点对应数据子集中的样本基本属于同一个类别,则无需
对结点的数据子集做进一步划分,否则就要对该结点的数据子
集做进一步划分,生成新的判别标准
• 如果新判别标准能够基本上把结点上不同类别的数据分离开,
使得每个子结点都是类别比较单一的数据,那么该判别标准就
是一个好规则,否则需重新选取判别标准
学习算法

• ID3算法
– “信息熵”是度量样本集合纯度最常用的一种指标,假
定当前样本集合D中第k类样本所占的比为
则D的信息熵定义为

的值越小,则D的纯度越高
– 计算信息熵时约定:若 ,则
– 的最小值为0,最大值为
学习算法

• ID3算法
– 离散属性a有V个可能的取值 ,用a来进行划
分,则会产生V个分支结点,其中第v个分支结点包含了
D中所有在属性a上取值为av的样本,记为Dv。则可计算
出用属性a对样本集D进行划分所获得的“信息增益”:

为分支结点权重,样本数越
多的分支结点的影响越大

• 一般而言,信息增益越大,则意味着使用属性a来进行划分所获
得的“纯度提升”越大
• ID3决策树学习算法[Quinlan, 1986]以信息增益为准则来选择划分属

学习算法

• ID3算法
– 例题

该数据集包含 个
训练样本, ,
其中正例占 ,
反例占 ,计
算得到根结点的信
息熵为
学习算法

• ID3算法
– 以属性“色泽”为例,
其对应的3个数据子集分别
为 D1(色泽=青绿),D2 (色泽
=乌黑), D3(色泽=浅白)
– 子集D1包含编号为{1,4,6,
10,13,17} 的6个样例,其中
正例占 ,反例占
, D2 、 D3同理,3
个结点的信息熵为

– 属性“色泽”的信息增益为
学习算法

• ID3算法
– 其他属性的信息增益为

– 显然,属性“纹理”的信息增益最大,其被选为划分属性
纹理=?

清晰 稍糊 模糊

{1,2,3,4,5,6,8,10,15} {7,9,13,14,17} {11,12,16}


学习算法

• ID3算法
– ID3决策树学习算法将对每个分支结点做进一步划分,最终得到的
决策树如图
纹理=?
清晰 稍糊 模糊

根蒂=? 触感=? 坏瓜
蜷缩 稍蜷 硬挺 硬滑 软粘

好瓜 色泽=? 坏瓜 好瓜 坏瓜
青绿 乌黑 浅白

好瓜 触感=? 好瓜
硬滑 软粘
好瓜 坏瓜
学习算法

• ID3算法
– 存在问题
• 若把“编号”也作为一个候选划分属性,则其信息增益一般远
大于其他属性。显然,这样的决策树不具有泛化能力,无法对
新样本进行有效预测

信息增益对可取值数目较多的属性有所偏好
学习算法

• C4.5算法
– 增益率

其中

称为属性a的“固有值” [Quinlan, 1993] ,属性a的可能取值数


目越多(即V越大),则 IV(a)的值通常就越大
– 存在的问题
增益率准则对可取值数目较少的属性有所偏好

– C4.5 [Quinlan, 1993]使用了一个启发式:先从候选划分属性


中找出信息增益高于平均水平的属性,再从中选取增益
率最高的
学习算法

• CART算法
– 数据集 的纯度可用“基尼值”来度量

D的基尼值越小,数据集D的纯度越高
– 属性a的基尼指数定义为

– 应选择那个使划分后基尼指数最小的属性作为最优划分
属性,即

– CART [Breiman et al., 1984]采用“基尼指数”来选择划分


属性
本节目录

• 背景知识
• 模型结构
• 学习算法
• 剪枝处理
• 特殊属性处理
剪枝处理

• 为什么要剪枝
– “剪枝”是决策树学习算法对付“过拟合”的主要手段
– 可通过“剪枝”来一定程度避免因决策分支过多,以致
于把训练集自身的一些特点当做所有数据都具有的一般
性质而导致的过拟合
• 剪枝的基本策略
– 预剪枝
– 后剪枝
• 判断决策树泛化性能是否提升的方法
– 留出法:预留一部分数据用作“验证集”以进行性能评

剪枝处理

• 数据集

训练集

验证集
剪枝处理

• 未剪枝决策树
1
脐部=?
凹陷 稍凹 平坦
2 3 4
色泽=? 根蒂=? 坏瓜
青绿 乌黑 浅白 稍蜷 蜷缩 硬挺
5
好瓜 好瓜 坏瓜 色泽=? 坏瓜 好瓜
青绿 乌黑 浅白
6
好瓜 纹理=? 好瓜
稍糊 清晰 模糊

好瓜 坏瓜 好瓜
剪枝处理

• 预剪枝
– 决策树生成过程中,对每个结点在划分前先进行估计,
若当前结点的划分不能带来决策树泛化性能提升,则停
止划分并将当前结点记为叶结点,其类别标记为训练样
例数最多的类别
– 针对上述数据集,基于信息增益准则,选取属性“脐部”
划分训练集。分别计算划分前(即直接将该结点作为叶
结点)及划分后的验证集精度,判断是否需要划分。若
划分后能提高验证集精度,则划分,对划分后的属性,
执行同样判断;否则,不划分
剪枝处理

• 预剪枝

验证集精度
结点1:若不划分,则将其标记为叶结点,
“脐部=?” 划分前: 42.9%
类别标记为训练样例中最多的类别,即好瓜。
验证集中,{4,5,8}被分类正确,得到验证集
精度为 1
脐部=?
剪枝处理

• 预剪枝

验证集精度
结点1:若不划分,则将其标记为叶结点,
“脐部=?” 划分前: 42.9%
类别标记为训练样例中最多的类别,即好瓜。
划分后: 71.4%
验证集中,{4,5,8}被分类正确,得到验证集
预剪枝决策: 划分
精度为
结点1:若划分,根据结点2,3,4的训练样例,
将这3个结点分别标记为“好瓜”、“好瓜”、
“坏瓜”。此时,验证集中编号{4,5,8,11,12}
的样例被划分正确,验证集精度为
剪枝处理

• 预剪枝

对结点2,3,4分别进行剪枝判断,结点2,3都禁止划分,结点4本身为叶子
结点。最终得到仅有一层划分的决策树,称为“决策树桩”
剪枝处理

• 预剪枝
– 优点
• 降低过拟合风险
• 显著减少训练时间和测试时间开销
– 缺点
• 欠拟合风险:有些分支的当前划分虽然不能提升泛化性能,但
在其基础上进行的后续划分却有可能导致性能显著提高。预剪
枝基于“贪心”本质禁止这些分支展开,带来了欠拟合风险
剪枝处理

• 后剪枝
– 先从训练集生成一棵完整的决策树,然后自底向上地对
非叶结点进行考察,若将该结点对应的子树替换为叶结
点能带来决策树泛化性能提升,则将该子树替换为叶结

剪枝处理

• 后剪枝
– 首先生成一棵完整的决策树,该决策树的验证集精度为
0.429
剪枝处理

• 后剪枝
– 首先考虑结点6,若将其替换为叶结点,根据落在其上
的训练样本{7,15}将其标记为“好瓜”,得到验证集精
度提高至0.571,则决定剪枝
1
脐部
凹陷 稍凹 平坦
2 3 4
色泽 根蒂 坏瓜

青绿 乌黑 浅白 稍蜷 蜷缩 硬挺
5
好瓜 好瓜 坏瓜 色泽 坏瓜 好瓜

青绿 乌黑 浅白
6
好瓜 纹理? 好瓜 验证集精度
剪枝前: 42.9%
稍糊 清晰 模糊 剪枝后: 57.1%
好瓜 坏瓜 好瓜 后剪枝决策: 剪枝
剪枝处理

• 后剪枝
– 首先考虑结点6,若将其替换为叶结点,根据落在其上
的训练样本{7,15}将其标记为“好瓜”,得到验证集精
度提高至0.571,则决定剪枝
1
脐部
凹陷 稍凹 平坦
2 3 4
色泽 根蒂 坏瓜

青绿 乌黑 浅白 稍蜷 蜷缩 硬挺
5
好瓜 好瓜 坏瓜 色泽 坏瓜 好瓜

青绿 乌黑 浅白
好瓜 好瓜 好瓜
剪枝处理

• 后剪枝
– 然后考虑结点5,若将其替换为叶结点,根据落在其上
的训练样本{6,7,15}将其标记为“好瓜”,得到验证集精
度仍为0.571,可以不进行剪枝
1
脐部
凹陷 稍凹 平坦
2 3 4
色泽 根蒂 坏瓜

青绿 乌黑 浅白 稍蜷 蜷缩 硬挺
5
好瓜 好瓜 坏瓜 色泽? 坏瓜 好瓜
验证集精度
青绿 乌黑 浅白 剪枝前: 57.1 %
好瓜 好瓜 好瓜 剪枝后: 57.1%
后剪枝决策: 不剪枝
剪枝处理

• 后剪枝
– 然后考虑结点5,若将其替换为叶结点,根据落在其上
的训练样本{6,7,15}将其标记为“好瓜”,得到验证集精
度仍为0.571,可以不进行剪枝
1
脐部
凹陷 稍凹 平坦
2 3 4
色泽 根蒂 坏瓜

青绿 乌黑 浅白 稍蜷 蜷缩 硬挺
5
好瓜 好瓜 坏瓜 色泽 坏瓜 好瓜

青绿 乌黑 浅白
好瓜 好瓜 好瓜
剪枝处理

• 后剪枝
– 对结点2,若将其替换为叶结点,根据落在其上的训练
样本{1,2,3,14},将其标记为“好瓜”,得到验证集精度
提升至0.714,则决定剪枝
1
脐部
凹陷 稍凹 平坦
2 3 4
色泽? 根蒂 坏瓜

青绿 乌黑 浅白 稍蜷 蜷缩 硬挺
5
好瓜 好瓜 坏瓜 色泽 坏瓜 好瓜

青绿 乌黑 浅白
验证集精度 好瓜 好瓜 好瓜
剪枝前: 57.1%
剪枝后: 71.4%
后剪枝决策: 剪枝
剪枝处理

• 后剪枝
– 对结点3和1,先后替换为叶结点,验证集精度均未提升,
则分支得到保留

1
脐部?
凹陷 稍凹 平坦
2 3 4
好瓜 根蒂? 坏瓜

稍蜷 蜷缩 硬挺
5
色泽 坏瓜 好瓜

青绿 乌黑 浅白
好瓜 好瓜 好瓜
剪枝处理

• 后剪枝
– 最终基于后剪枝策略得到的决策树如图所示
1
脐部
凹陷 稍凹 平坦
2 3 4
好瓜 根蒂 坏瓜

稍蜷 蜷缩 硬挺
5
色泽 坏瓜 好瓜

青绿 乌黑 浅白
好瓜 好瓜 好瓜
剪枝处理

• 后剪枝
– 优点
• 后剪枝比预剪枝保留了更多的分支,欠拟合风险小,泛化性能
往往优于预剪枝决策树
– 缺点
• 训练时间开销大:后剪枝过程是在生成完全决策树之后进行的,
需要自底向上对所有非叶结点逐一考察
本节目录

• 背景知识
• 模型结构
• 学习算法
• 剪枝处理
• 特殊属性处理
特殊属性处理

• 连续值
– 连续属性离散化(二分法)
• 第一步:假定连续属性a在样本集D上出现n个不同的取值,从
小到大排列,记为 a1, a2,…, an,基于划分点t,可将D分为子集
Dt+和Dt-,其中Dt-包含那些在属性a上取值不大于t的样本, Dt+
包含那些在属性a上取值大于t的样本。考虑包含n-1个元素的候
选划分点集合

即把区间 的中位点 作为候选划分点


特殊属性处理

• 连续值
– 连续属性离散化(二分法)
• 第二步:采用离散属性值方法,考察这些划分点,选取最优的
划分点进行样本集合的划分

其中 是样本集D基于划分点t二分后的信息增益,于是,
就可选择使 最大化的划分
特殊属性处理

• 连续值
– 连续属性离散化(二分法)
对属性“密度”,其候选划
分点集合包含 个候选值:

可计算其信息增益为 ,
对应划分点为

对属性“含糖量”进行同样
处理

与离散属性不同,若当前结点划分属性为连续
属性,该属性还可作为其后代结点的划分属性
特殊属性处理

• 缺失值
– 不完整样本,即样本的属性值缺失
– 仅使用无缺失的样本进行学习?
• 对数据信息极大的浪费
– 使用有缺失值的样本,需要解决哪些问题?
• Q1:如何在属性缺失的情况下进行划分属性选择?
• Q2:给定划分属性,若样本在该属性上的值缺失,如何对样本进
行划分?
特殊属性处理

• 缺失值
– 表示D中在属性a上没有缺失值的样本子集, 表示
中在属性a上取值为av的样本子集, 表示 中属于第k类
的样本子集。为每个样本x赋予一个权重wx,并定义:
• 无缺失值样本所占的比例

• 无缺失值样本中第k类所占比例

• 无缺失值样本中在属性a上取值av的样本所占比例

Q1:如何在属性缺失
的情况下进行划分属
性选择?
特殊属性处理

• 缺失值
– 基于上述定义,可得

其中

– 对于Q2
• 若样本x在划分属性a上的取值已知,则将x划入与其取值对应的
子结点,且样本权值在子结点中保持为wx
• 若样本x在划分属性a上的取值未知,则将x同时划入所有子结点,
且样本权值在与属性值av对应的子结点中调整为 (直观来
看,相当于让同一个样本以不同概率划入不同的子结点中去)
特殊属性处理

• 缺失值
特殊属性处理

• 缺失值
– 学习开始时,根结点包含样本集D中全
部17个样例,各样例的权值均为1
– 以属性“色泽”为例,该属性上无缺
失值的样例子集 包含14个样例, 的
信息熵为
特殊属性处理

• 缺失值
– 令 , , 分别表示在属性“色泽”
上取值为“青绿”“乌黑”以及“浅白”
的样本子集,有

– 样本子集 上属性“色泽”的信息增益为

– 样本集D上属性“色泽”的信息增益为
特殊属性处理

• 缺失值
– 类似地可计算出所有属性在数据集上
的信息增益

进入“纹理=清晰”分支
进入“纹理=稍糊”分支
进入“纹理=模糊”分支
样本权重在各子结点仍为1

在属性“纹理”上出现缺失
值,样本8和10同时进入3个
分支,调整8和10在3分分支
权值分别为7/15,5/15,3/15
总结

• 背景知识
– 归纳学习
• 模型结构
– 基本思想
– 一般步骤
• 学习算法
– ID3算法
– C4.5算法
– CART算法
• 剪枝处理
– 预剪枝、后剪枝
• 特殊属性处理
– 连续值、缺失值
思考题

• 试对缺失值的处理机制推广到基尼指数的计算中
练习题

• 试编程实现基于基尼指数的决策树学习算法

You might also like