数据挖掘-分类

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

合并连续值属性
如创建新的基于阈值的布尔属性Ac
If A<c then Ac 为真,else 为假 •
• 把连续值属性的值域分割为离散的区间集合。 • 选取合适的阈值。
温度 40
运动 no
48
no
60
yes
72
yes
80
yeswenku.baidu.com
90
no
• 候选阈值是相应的A值之间的中间值
• (48+60)/2 和(80+90)/2

同理:
Ginisplit(18.5)=0.4 Ginisplit(37.5)=0.417
SLIQ算法
• 数据结构 属性表
属性值 指向类表表项的索引
每个属性有一个属 性表有必要的话, 属性表可写回磁盘
SLIQ算法
• 数据结构 类表
类标号 决策树叶节点的指针
仅有一张类表,类 表必须常驻内存 类表第i个值对应 训练数据中的第i 个样本。
N1 gini( ) N 2 gini( ) ( T ) gini split S1 S2 N N
• 提供最小Ginisplit 就被选择作为分割的标准。
连续属性:可能的分割点是每两个值的中点 离散属性:可能的分割是属性值的所有子集
使用基尼指数进行属性选择
• 如计算ginisplit(27.5)
属性选择度量标准--分支指标
• 信息增益——Information gain (ID3) • 增益比率——Gain ration(C4.5) • 基尼指数——Gini index (SLIQ,SPRINT) …………
核心算法ID3和C4.5算法
天气 晴 晴 多云 有雨 有雨 有雨 多云 晴 晴 有雨 晴 多云 多云 有雨 温度 85 80 83 70 68 65 64 72 69 75 75 72 81 71 湿度 85 90 78 96 80 70 65 95 70 80 70 90 75 80 风况 无 有 无 无 无 有 有 无 无 无 有 有 无 有 运动 不适合 不适合 适合 适合 适合 不适合 适合 不适合 适合 适合 适合 适合 适合 不适合


S1:
3 gini ( S1 27.5) 1 ( ) 2 0 3
S2:
Ginisplit(27.5):
1 3 gini ( S1 27.5) 1 (( )2 ( )2 ) 0.44 3 3
3 3 ginisplit (27.5) * 0 * 0.44 0.22 6 6
天气
晴朗 多云
适合运动
2 3
不适合运动
3 0
合计
5 3

合计
3
8
2
5
5
13
Gini Index
• 数据集T包含来自N个类的样本,Gini指标定义为
n gini (T ) 1 p 2 j j 1
pj 类j出现的频率
• 如果一个划分将数据集T分成两个子集S1 和S2 。则 分割后的的Ginisplit是

I(s1, s2) = I(9, 5) =0.940 计算属性天气的熵:
Gain(天气) I (s1, s2) E (天气) 0.246
天气 晴朗 多云 有雨
C1
C2 2 3 4 0 3 2
I(pi, ni) 0.971 0 0.971
Gain(温度) 0.029 Gain(湿度) 0.151 Gain(风况) 0.048
1 基于决策树
• 决策树 内部节点上选用一个属性进行分割 每个分支代表一个测试输出 叶子节点表示一个类分布
使用决策树进行分类
• 1 建立决策树,利用训练样本生成决策树模型。
• 开始,数据都在根节点 • 递归的进行数据分片
• 2
修剪决策树
去掉一些可能是噪音或者异常的数据
• 3
使用决策树对未知数据进行分类 按照决策树上采用的分割属性逐层往下,直 到一个叶子节点
input 训练集 判定树分类算法 output 决策树
• 基本算法 –自上而下分而治之的方法 –开始时,所有的数据都在根节点 –所有记录用所选属性递归的进行分割 –属性的选择是基于一个启发式规则或者一 个统计的度量 (如, information gain) • 停止分割的条件 –一个节点上的数据都是属于同一个类别 –没有属性可以再用于对数据进行分割
SLIQ算法
• 数据结构
L C1 f C2 … Cn
• 叶节点代表训练数据的 一个划分 • 每个节点都有一个类直 方图,用来统计分类所 需的必要的类别分布的 信息。
R
数值型字段的类直方图
C1 V1 V2 … Vm f
C2

Cn
种类型字段的类直方图
• 预排序
SLIQ算法
• 计算最佳分割的算法
EvaluateSplits() for 每个属性 A do 遍历 A的属性表 for 属性表中的每一个值v do 在类表中找相应的位置,即对应的类及叶节点(l)
非类别属性A具有v个不同值{a1,a2,…,av}。利用A将S划分为v个子 集{S1,S2,…,Sv}; 其中Sj包含S中在A上具有值aj的样本。Sij是子集Sj中类Ci的样本数。
信息增益:Gain(A)= I(s1,s2,……,sm) - E(A)
ID3的基本思想
构造决策树,决策树的每个节点对应一 个非类别属性,每条边对应该属性的每 个可能值。以信息熵的下降速度作为选 取测试属性的标准,即所选的测试属性 是从根到当前节点的路径上尚未被考虑 的具有最高信息增益的属性。

报告人:

熊 赟
内容概要
基本概念
基于决策树构造分类模型
ID3 C4.5 SLIQ
树剪枝MDL
基于统计的分类
其他分类策略
分 类
• 分类的目的是构造一个分类函数或分类模型(分类 器),该模型能把数据库中的数据项映射到某一个给 定类别。 • 定义 4.1 (分类):给定数据库 D={t1,t2,…,tn},元 组 tiD ,类的集合 C ={ C1,……,Cm },分类问题定 义为从数据库到类集合的映射 f:DC,即数据库中 的元组 ti 分配到某个类 Cj 中,有 Cj ={ ti|f(ti) = Cj , 1≤i≤n,且ti∈D}。
SplitInfor mation ( A, S )

i 1
c
| Si | | Si | log2 |S| |S|
S1到Sc是c个值的属性A分割S而形成的c个样本子集。 实际上,分裂信息是S关于属性A的各值的熵
讨论:1个值(0),2个值(1),n个值(log2n)。
• 增益比率
GainRatio( A, S )
运动 不适合 不适合 适合 适合 适合 不适合 适合 不适合 适合 适合 适合 适合 适合 不适合
使用信息增益进行属性选择
5 4 类C1运动=“适合”, E (天气) 14 I ( 2,3) 14 I ( 4,0) 5 类C2对运动=“不适合” I (3,2) 0.971 14
天气 晴 晴 多云 有雨 有雨 有雨 多云 晴 晴 有雨 晴 多云 多云 有雨
温度 85 80 83 70 68 65 64 72 69 75 75 72 81 71
湿度 85 90 78 96 80 70 65 95 70 80 70 90 75 80
风况 无 有 无 无 无 有 有 无 无 无 有 有 无 有
• MDL原理:对数据进行编码的最佳模型是使得 用该模型描述数据和描述这个模型的代价的和 最小的模型 编码代价模型:
决策树
天气? 天晴
多云 overcast
有雨
湿度?
<=75 不适合 >75 不适合
适合 有
风况?
无 适合
不适合
function ID3 (R: 一个非类别属性集, C: 类别属性, S: 一个训练集) returns 一棵决策树; begin If S为空 return 一个值为Failure的节点; If S由纯粹是相同种类属性值的记录构成 return 一个该值构成的节点; If R为空 return 一个节点,值为S中所有记录的类别属性中最频繁出现的值; //有的记录被不正确的分类,所以这里会出现错误 D = R中Gain(D,S)最高的属性; {dj| j=1,2, .., m} = D的属性值; {Sj| j=1,2, .., m} = S的子集,Sj的所有记录的属性D的值为dj 返回一棵树,根节点标记为D,弧标记为d1, d2, .., dm,弧对应的子树分别 为 ID3(R-{D}, C, S1), ID3(R-{D}, C, S2), .., ID3(R-{D}, C, Sm); end ID3;
在叶节点l 中更新类直方图
如果A是连续属性 则 对叶节点l 的测试(A <= v) 计算分支指标。 如果A是离散属性 则 for 树中的每一个树叶 do 用最优分支发现A的子集
类表更新例
树的修剪
• 目的:
– 消除决策树的过适应(OverFitting)问题 指推出过多的假设与训练数据集相一致导致所作出的 假设泛化能力过差。 – 实质:消除训练集中的异常和噪声
建树阶段
MakeTree (Training Data T) Partition (T); Partition (Data S) if (all points in S are in the same class) then return; evaluate splits for each attribute A Use best split found to partition S into S1 and S2; Partition (S1); Partition (S2);
a.模型训练阶段
训练集
b.使用模型 分类阶段
评估准确率(测试集) 对类标号未知的新 数据分类
分类模型的构造方法
机器学习方法: 决策树法知识表示是决策树 规则归纳知识表示是产生式规则
统计方法:知识表示是判别函数和原型事例 贝叶斯法 非参数法(近邻学习或基于事例的学习)
神经网络方法: BP算法,模型表示是前向反馈神经网络模型 粗糙集(rough set)知识表示是产生式规则
训练集与测试集
• 训练集:数据库中为建立模型而被分析 的数据元组形成训练集。 • 训练集中的单个元组称为训练样本,每个 训练样本有一个类别标记。一个具体样 本的形式可为:( v1, v2, ..., vn; c ); 其中vi表示属性值,c表示类别。 • 测试集:用于评估分类模型的准确率。
分类的两个阶段
• 然后计算候选属性(温度>54)和(温度>85) 的信息增益,选择最好的,如(温度>54) 。
处理缺少属性值的训练样本
• 设<x,c(x)>是S中的一个训练样本,并且属性A的值A(x)未知。
• 处理策略是赋给它结点n的训练样本中该属性的 最常见值。或赋给它结点n的被分裂为c(x)的训 练样本中该属性的最常见的值。 • 为A的每个可能值赋予一个概率。
信息增益度度量
任意样本分类的期望信息: I(s1,s2,……,sm)=-∑Pi log2(pi) (i=1,…,m)
S是s个数据样本的集合。类别属性具有m个不同值Ci。 si是类Ci中的样本数。pi是任意样本属于Ci的概率,并用si/s估计。
由非类别属性A划分为子集的熵: E(A)= ∑(s1j+ ……+smj)/s * I(s1j, ……,smj)
C4.5算法
• • • • • •
a.用增益比率的概念(当具有每条记录都不同值时候); b.合并连续值属性; c.可以处理缺少属性值的训练样本; d. 通过使用不同的修剪技术以避免树的不平衡; e.K次迭代交叉验证; f.规则的产生。
• 增益比率gain ratio衡量属性分裂数据的广度和均匀性 • 分裂信息
• 两种方法:
– 先剪枝法(Public 算法):提前停止树的构造 – 后剪枝法(Sprint 算法):树完全生长后剪枝
两种剪枝标准
• 最小描述长度原则(MDL) – 思想:最简单的解释最期望的 – 做法:对决策树进行二进位编码,编码所 需二进位最少的树即为“最佳剪枝树” • 期望错误率最小原则 –思想:选择期望错误率最小的子树剪枝 –对树中的内部节点计算其剪枝/不剪枝可 能出现的期望错误率,比较后加以取舍
Gain( S , A) SplitInfor mation ( S , A)
在高尔夫的例子里SplitInfo(天气,S)为:
5 5 4 4 5 5 log log log 1.57 14 14 14 14 14 14
2 2 2
天气的收益率为0.246/1.577 = 0.156。 同理风况的收益率为0.049
相关文档
最新文档