分类和预测
分类 VS,预测
? 分类,
? 预测分类标号(或离散值)
? 根据训练数据集和类标号属性,构建模型来分类现有数据,
并用来分类新数据
? 预测,
? 建立连续函数值模型,比如预测空缺值
? 典型应用
? 信誉证实
? 目标市场
? 医疗诊断
? 性能预测
数据分类 ——一个两步过程 (1)
? 第一步,建立一个模型,描述预定数据类集和概念集
? 假定每个元组属于一个预定义的类,由一个类标号属性
确定
? 基本概念
? 训练数据集,由为建立模型而被分析的数据元组形成
? 训练样本,训练数据集中的单个样本(元组)
? 学习模型可以用分类规则、判定树或数学公式的形式提

数据分类 ——一个两步过程 (2)
? 第二步,使用模型,对将来的或未知的对象进行分类
? 首先评估模型的预测准确率
? 对每个测试样本,将已知的类标号和该样本的学习模型类预测
比较
? 模型在给定测试集上的准确率是正确被模型分类的测试样本的
百分比
? 测试集要独立于训练样本集,否则会出现“过分适应数据”的
情况
第一步 ——建立模型
训练数
据集
N A M E RANK Y E A R S T E N U R E D
M ik e A s s is t a n t P r o f 3 no
M a r y A s s is t a n t P r o f 7 y e s
B il l P r o f e s s o r 2 y e s
J im A s s o c ia t e P r o f 7 y e s
D a v e A s s is t a n t P r o f 6 no
A n n e A s s o c ia t e P r o f 3 no
分类算法
IF rank = ‘professor’
OR years > 6
THEN tenured = ‘yes’
分类规则
第二步 ——用模型进行分类
分类规则
测试集 N A M E RANK Y E A R S T E N U R E D
T o m A s s i s t a n t P r o f 2 no
M e r l i s a A s s o c i a t e P r o f 7 no
G e o r g e P r o f e s s o r 5 y e s
J o s e p h A s s i s t a n t P r o f 7 y e s
未知数据
(Jeff,Professor,4)
Tenured?
有指导的学习 VS,无指导的学习
? 有指导的学习(用于分类)
? 模型的学习在被告知每个训练样本属于哪个类的
“指导”下进行
? 新数据使用训练数据集中得到的规则进行分类
? 无指导的学习(用于聚类)
? 每个训练样本的类编号是未知的,要学习的类集合
或数量也可能是事先未知的
? 通过一系列的度量、观察来建立数据中的类编号或
进行聚类
准备分类和预测的数据
? 通过对数据进行预处理,可以提高分类和预测
过程的准确性、有效性和可伸缩性
? 数据清理
? 消除或减少噪声,处理空缺值,从而减少学习时的混乱
? 相关性分析
? 数据中的有些属性可能与当前任务不相关;也有些属性可
能是冗余的;删除这些属性可以加快学习步骤,使学习结
果更精确
? 数据变换
? 可以将数据概化到较高层概念,或将数据进行规范化
比较分类方法
? 使用下列标准比较分类和预测方法
? 预测的准确率:模型正确预测新数据的类编号的能

? 速度:产生和使用模型的计算花销
? 健壮性:给定噪声数据或有空缺值的数据,模型正
确预测的能力
? 可伸缩性:对大量数据,有效的构建模型的能力
? 可解释性:学习模型提供的理解和洞察的层次
用判定树归纳分类
? 什么是判定树?
? 类似于流程图的树结构
? 每个内部节点表示在一个属性上的测试
? 每个分枝代表一个测试输出
? 每个树叶节点代表类或类分布
? 判定树的生成由两个阶段组成
? 判定树构建
? 开始时,所有的训练样本都在根节点
? 递归的通过选定的属性,来划分样本 (必须是离散值)
? 树剪枝
? 许多分枝反映的是训练数据中的噪声和孤立点,树剪枝试图检 测和剪去这种分枝
? 判定树的使用:对未知样本进行分类
? 通过将样本的属性值与判定树相比较
age income student credit_rating buys_computer
<=30 high no fair no
<=30 high no excellent no
31… 40 high no fair yes
>40 medium no fair yes
>40 low yes fair yes
>40 low yes excellent no
31… 40 low yes excellent yes
<=30 medium no fair no
<=30 low yes fair yes
>40 medium yes fair yes
<=30 medium yes excellent yes
31… 40 medium no excellent yes
31… 40 high yes fair yes
>40 medium no excellent no
概念, buys_computer”的判定树
age?
overcast
student? credit rating?
no yes fair excellent
<=30 >40
no no yes yes
yes
30..40
判定归纳树算法
? 判定归纳树算法(一个贪心算法)
? 自顶向下的分治方式构造判定树
? 树以代表训练样本的单个根节点开始
? 使用分类属性(如果是量化属性,则需先进行离散化)
? 递归的通过选择相应的 测试属性,来划分样本,一旦一个属
性出现在一个节点上,就不在该节点的任何后代上出现
? 测试属性是根据某种启发信息或者是统计信息来进行选择
(如:信息增益)
? 在树的每个节点上使用信息增益度量选择测试属性;选择具有
最高信息增益(或最大熵压缩)的属性作为当前节点的测试属
性。(即根据当前节点对应的训练样本,计算各属性的信息增
益,然后选用具有最高信息增益的属性来做样本划分)
判定树归纳策略 (1)
1,树以代表训练样本的单个节点开始
2,如果样本都在同一个类,则该节点成为树叶,
并用该类标记
3,否则,算法使用基于熵的度量 ——信息增益
作为指导信息,选择能够最好的将样本分类
的属性;该属性成为节点的“测试”或“判
定”属性。(使用分类属性)
4,对测试属性每个已知的值,创建一个分支,
并以此划分样本
判定树归纳策略 (2)
5,算法使用同样的过程,递归的形成每个划分
上的样本判定树。一旦一个属性出现在一个
节点上,就不在该节点的任何子节点上出现
6,递归划分步骤停止的条件
? 给定节点的所有样本属于同一类
? 没有剩余属性可以用来进一步划分样本 ——使用
多数表决
? 没有剩余的样本
age income student credit_rating buys_computer
<=30 high no fair no
<=30 high no excellent no
31… 40 high no fair yes
>40 medium no fair yes
>40 low yes fair yes
>40 low yes excellent no
31… 40 low yes excellent yes
<=30 medium no fair no
<=30 low yes fair yes
>40 medium yes fair yes
<=30 medium yes excellent yes
31… 40 medium no excellent yes
31… 40 high yes fair yes
>40 medium no excellent no
判定归纳树算法示例 (1)
? 对于上述数据,可以略过步骤 1,2
? 步骤 3,计算基于熵的度量 ——信息增益,作
为样本划分的根据
? Gain(age)=0.246
? Gain(income)=0.029
? Gain(student)=0.151
? Gain(credit_rating)=0.048
? 然后,对测试属性每个已知的值,创建一个分
支,并以此划分样本,得到第一次划分
判定归纳树算法示例 (2)
判定归纳树算法示例 (3)
age?
overcast
student? credit rating?
no yes fair excellent
<=30 >40
no no yes yes
yes
30..40
防止分类中的过分适应
? 产生的判定树会出现过分适应数据的问题
? 由于数据中的噪声和孤立点,许多分枝反应的是训练数据中的异常
? 对新样本的判定很不精确
? 防止过分适应的两种方法
? 先剪枝:通过提前停止树的构造 ——如果在一个节点划分样
本将导致低于预定义临界值的分裂( e.g,使用信息增益度量)
? 选择一个合适的临界值往往很困难
? 后剪枝:由“完全生长”的树剪去分枝 ——对于树中的每个
非树叶节点,计算该节点上的子树被剪枝可能出现的期望错
误率
? 使用一个独立的测试集来评估每颗树的准确率,就能得到具有 最小期望错误率的判定树
由判定树提取分类规则
? 可以提取判定树表示的知识,并以 IF-THEN形式的分类规则表示
? 对从根到树叶的每条路径创建一个规则
? 沿着给定路径上的每个属性 -值对形成规则前件( "IF"部分)的一
个合取项
? 叶节点包含类预测,形成规则后件( "THEN"部分)
? IF-THEN规则易于理解,尤其树很大时
? 示例,
? IF age =,<=30” AND student =,no” THEN buys_computer =,no”
? IF age =,<=30” AND student =,yes” THEN buys_computer =,yes”
? IF age =,31…40” THEN buys_computer =,yes”
? IF age =,>40” AND credit_rating =,excellent” THEN
buys_computer =,yes”
? IF age =,>40” AND credit_rating =,fair” THEN buys_computer =,no”
基本判定树归纳的加强
? 修改算法,允许属性具有整个离散区间或连续值
? 动态的定义新的离散值属性,将连续值属性划分到多个离散
的间隔中
? 处理空缺的属性值
? 属性 A的空缺值或未知值可以用 A的最常见值替换
? 使用 A的最可能值替换,或使用 A和其他属性的已知联系
? 属性构造
? 通过由给定的属性创建新的属性,改进给定属性的受限表示
? 可以防止或减轻 碎片、重复或复制 问题
大型数据库的分类挖掘 ——可伸缩性
? 分类挖掘是一个在统计学和机器学习的领域也
被广为研究的问题,并提出了很多算法,但是
这些算法都是内存驻留的
? 可伸缩性问题,要求以合理的速度对数以百万
计的样本和数以百计的属性的进行分类挖掘
? 由大型数据库构造判定树
? 首先将样本划分为子集,每个子集可以放在内存中
? 然后由每个自己构造一颗判定树
? 输出的分类法将每个子集的分类法组合在一起
? (其他方法包括 SLIQ,SPRINT,RainForest等等)
集成数据仓库技术和判定树归纳
? 将判定树归纳与多维数据立方体和面向属性的归纳
(AOI)相集成,可以进行交互的多层挖掘
? 数据立方体与判定树归纳
? 存放在概念分层中的知识可以用在不同的抽象层归纳判定树
? 对导出的判定树,可以进一步在属性上进行上卷或下钻,以概
化或特化树节点;使用户将注意力集中于感兴趣的树区域
? AOI与判定树归纳
? 利用属性上的概念分层,以高层概念替换低层概念概化训练数 据
? 应当概化到由领域专家或用户设定的某个中间值,防止概化过 低或者是过分概化
? 对判定树中,由于递归划分,使得某些数据子集太小而失去
统计意义的情况,可以通过引入相应的临界值,控制子集的
划分
贝叶斯分类
? 贝叶斯分类利用统计学中的
贝叶斯定理,来预测类成员
的概率,即给定一个样本,
计算该样本属于一个特定的
类的概率。
? 朴素贝叶斯分类:假设每个
属性之间都是相互独立的,
并且每个属性对非类问题产
生的影响都是一样的。
)(
)()|()|(
DP
hPhDPDhP ?
后向传播分类
? 后向传播是一种神经网络学习算法;神经网络是一组
连接的输入 /输出单元,每个连接都与一个权相连。在
学习阶段,通过调整神经网络的权,使得能够预测输
入样本的正确标号来学习。
? 优点
? 预测精度总的来说较高
? 健壮性好,训练样本中包含错误时也可正常工作
? 输出可能是离散值、连续值或者是离散或量化属性的向量值
? 对目标进行分类较快
? 缺点
? 训练(学习)时间长
? 蕴涵在学习的权中的符号含义很难理解
? 很难根专业领域知识相整合
其他分类方法
? k-最临近分类
? 给定一个未知样本,k-最临近分类法搜索模式空间,找出最
接近未知样本的 k个训练样本;然后使用 k个最临近者中最公
共的类来预测当前样本的类标号
? 基于案例的推理
? 样本或案例使用复杂的符号表示,对于新案例,先检测是否存在同样的训练案例;如果找不到,则搜索类似的训练案例
? 遗传算法
? 结合生物进化思想的算法
? 粗糙集方法
? 模糊集方法
? 允许在分类规则中定义“模糊的”临界值或边界
什么是预测?
? 预测是构造和使用模型评估无样本类,或评估给定样
本可能具有的属性或值空间。
? 预测和分类的异同
? 相同点
? 两者都需要构建模型
? 都用模型来估计未知值
? 预测当中主要的估计方法是回归分析
? 线性回归和多元回归
? 非线性回归
? 不同点
? 分类法主要是用来预测类标号(分类属性值)
? 预测法主要是用来估计连续值(量化属性值)
线性回归、多元回归和非线性回归
? 线性回归,Y = ? + ? X
? 其中 ?和 ?是回归系数,可以根据给定的数据点,通过最小二
乘法来求得
? 多元回归,Y = ? + ?1X1 + ?2 X2
? 线性回归的扩展,设计多个预测变量,可以用最小二乘法求
得上式中的 ?,?1 和 ?2
? 非线性回归,Y = ? + ?1X1 + ?2 X22+ ?3 X33
? 对不呈线性依赖的数据建模
? 使用多项式回归建模方法,然后进行变量变换,将非线性模
型转换为线性模型,然后用最小二乘法求解
2
1
1
)(
))((
?
?
?
?
?
???
S
i i
i
S
i i
xx
yyxx?xy ?? ??