Lecture5

Report
分类
林琛
博士、副教授
本讲要点
• 分类基础
– 分类过程
– 分类算法
• KNN,决策树,神经网络
– 分类评估
• 分类高级
– 预处理与特征选择
– 不平衡分类,多类分类,多标记分类
– 集成分类算法
• Adaboost, bagging, 随机森林
分类过程
• 步骤1:训练
– 已标注的训练集
– 分类“模型”表达
• 步骤2:预测
– 构建测试集
– 应用分类“模型”预测类别
– 评估
一个例子
借助适合于当地使用的
彩色蘑菇图册,逐一辨认
当地食用菌或毒蘑菇是一
个很好的方法。
凭经验知道
•看形状:毒蘑菇一般比较黏滑,菌盖上常沾些杂
物或生长一些像补丁状的斑块。菌柄上常有菌环
(像穿了超短裙一样)。无毒蘑菇很少有菌环。
•观颜色:毒蘑多呈金黄、粉红、白、黑、绿。无
毒蘑菇多为咖啡、淡紫或灰红色。
•闻气味:毒蘑菇有土豆或萝卜味。无毒蘑菇为苦
杏或水果味。
•看分泌物:将采摘的新鲜野蘑菇撕断菌杆,无毒
的分泌物清亮如水,个别为白色,菌面撕断不变
色;有毒的分泌物稠浓,呈赤褐色,撕断后在空
气中易变色
K近邻(KNN) 样本
• 基本思想
– 对于一个测试样本
– 找出最接近测试样本的训练样本
•多少个?K怎么选
•怎样判断相似度?
– 决定测试样本的标签
高
宽
标签
12
10
苹果
10
11
苹果
15
9
梨子
11
11
?
•怎么决定?
• 实例投影到 n维空间
_
_
_
+
_
_
. +
xq
+
_
+
K的选择
.
.
.
.
.
.
.
.
.
.
K=1
最近邻
K=2
K=3:实线,预测红
K=5:虚线,预测蓝
常用方法:
不断增加k直到达到一个较好
的预测值
交叉验证:
将训练集分成若干部分,用
其中一些作为训练,另一些
作为检验
•十折、五折……
相似度度量的选择
• 相似度
– 数值描述两个对象的相似程度
– 通常范围[0,1]
– 一般是对称的
• 相异度
– 数值描述两个对象的差异程度
– 范围[0,1]或者>0(可以到无穷大)
– 一般是对称的
– 严格的测度需要满足三角不等式
简单属性的相似度/相异度及变换
• 回顾: 属性(特征)种类(Lecture 2)
– 标称(Nominal),满足相异性,如身份证号
– 序数(Ordinal),满足相异性,有序性,如门牌号
– 区间(Interval),满足相异性,有序性,可加性,如
日期
– 比率(Ratio),满足全部:如长度
–
复杂对象的相似度测量
• 明氏距离Minkowski Distance
– 曼哈顿距离(城市街区距离):p=1
– 欧式距离 :p=2
• 余弦相似度Cosine Similarity
• 皮尔逊积矩相关系数Pearson Correlation
• 杰卡德相似度Jaccard Similarity
• 编辑距离Edit Distance
请给出上述距离/相似度的值域
相似度量的选择
• Google 的新闻是自动分类和整理的。所谓新闻的分
类无非是要把相似的新闻放到一类中。计算机其实
读不懂新闻,它只能快速计算。这就要求我们设计
一个算法来算出任意两篇新闻的相似性。为了做到
这一点,你打算采取什么样的相似度?
– 吴军《数学之美》
• 考虑如下的一个图形,欧氏距离适合用来测度相似
性吗?
规范化
• 最小-最大规范化
– 首先确定新的数值范围
v' 
假设属性:收入的范围是 $12,000 ~
$98,000 。希望规范化到 [0.0, 1.0]. 则
$73,600 规范化后的值是:
73,600 12,000
(1.0  0)  0  0.716
98,000 12,000
v  min A
(new _ max A  new _ min A)  new _ min A
max A  min A
• Z-score 规范化
– 确定均值μ,标准差σ
v' 
上例中假设 μ = 54,000, σ = 16,000. 换算$73,600
73,600 54,000
 1.225
16,000
v  A

A
• 小数定标规范化
上例中换算$73,600
– 通过移动属性的小数点
0.736
v
v'  j 其中 j 是使得 Max(|ν’|) < 1的最小整数
10
规范化方法比较
• 最小-最大规范化
– 最小,最大值是全局的
– 如果测试数据和训练数据不一致,则会出现“越界”
– 线性变换
• Z-score规范化
– 不受孤立点影响
– 需要保存参数,对测试集进行统一处理
• 小数定标规范化
– 需要保存参数,对测试集进行统一处理
– 线性变换
投票策略
• 多数投票
– 指派到k近邻的多数类
• 加权投票
– 对噪音数据的鲁棒性
– 距离越近权重越大 w
1
d ( xq , x )2
i
查找最近邻
• 穷举
– 将数据集中的点与查询点逐一进行距离比较
• 索引
– 划分互不重叠的空间
– 在空间里查找最近邻
– K-d tree
• K指的不是KNN ,指的是特征维度
K-d树构建 树节点数据结构:
createKDTree//构建k-d树算法
Input:Data-set,Range
Output:k-d tree
If (Data-set为空)
Return 空的k-d tree;
Else //调用节点生成程序:
Split=argmax(sd);
Node-data
//数据集中某个数据点
Range
//该节点所代表的空间范围
Split
//垂直于分割超平面的方向轴
Left
//由位于该节点分割超平面左子空
间内所有数据点所构成的k-d树
Right
//由位于该节点分割超平面右子空
间内所有数据点所构成的k-d树
parent
//父节点
Node-data=median(d[split]);
Data-set' = Data-set\Node-data;
createKDTree(dataLeft,leftRange);
createKDTree(dataRight,rightRange);
看一个例子
K-d树上的最近邻查找
6个二维数据点{(2,3),(5,4),(9,),(4,7),(8,1),(7,2)}
K-d树划分空间
对于给定点(2,4.5),查找最近邻
算法维护数据结构:路径堆栈,当前
最近邻,当前最近距离
1,在k-d树上查找最近区域
路径<(7.2),(5,4)(4,7)>
2,根据堆栈回溯比较每个最近邻
在k-d树上二叉查找
从堆栈最顶端弹出(4,7),距离:3.202
弹出(5.4),距离:3.041<3.202
考虑(5,4)的左空间是否需要搜索
在(2,4.5)的圆心上画半径为3.041的圆
发现与(5,4)的左空间交集
把(2,3)列入路径
弹出(2,3),距离1.5
弹出(7,2),考虑右空间是否需要搜索
在(2,4.5)的圆心上画半径为1.5的圆
不与(7,2)的右空间交集
结束
LSH
• 局部敏感哈希(Locality Sensitive Hashing)
– 用于Jaccard Similarity
– 特征维数很高
Inst
ance
ID
A
B
C
D
E
a
b
c
d
e
f
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
变换
特征
顺序
Inst b
anc
eID
A
1
a
c
d
f
e
0
0
0
0
1
B
0
1
0
0
1
1
C
1
0
0
1
0
1
D
经过多次随机变换特征顺序,得到minh
E
如n=6,Sig(A )= (2,1,5,0,3,2)
Sig(B)=(2,1,3,2,8,0), 近似计算sim(A,B)≈2/6 = 0.33
0
0
1
1
0
0
0
0
0
1
1
0
第一个非零位
minHashing1(A,B,C,D,E)分别为1, 2, 1, 3, 4
KNN扩展到回归问题上
• 回归问题:
– 在教材里被称为“预测”
– 和分类的不同
• 分类:离散
• 回归:数值
• 一个典型的回归问题
– 推荐系统
– KNN方法:协同过滤
协同过滤:k近邻
K近邻的基本思想:
利用偏好相似的用
户进行推荐
user1
u
…
u1
…
v
item1
…
…
2
5
4
4
5
4
4
3
3
3
4
2
…
…
itemN
…
u2
...
3
4
2
3
u3
userM
5
4
5
2
2
直接反馈(评分矩阵)特点:
 稀疏
 动态
 新评分
 新用户
 新项目
基于项目的协同过滤
v
item1
…
…
2
5
4
4
5
4
4
3
3
3
4
...
3
4
2
3
userM
5
4
5
2
user1
u
…
…
2
…
…
itemN
…
2
具体实现(1)
• 怎么选择相似的用户/项目?
– 相似性的计算
• 基于评分的
item1
…
…
2
5
4
4
5
4
4
3
3
3
4
...
3
4
2
3
userM
5
4
5
2
user1
…
…
2
…
…
itemN
…
2
具体实现(2)
• 选择多少个相似的用户/项目?
– 定值K
– 阈值法T
• 一个朴素算法
– 输入:评分矩阵
– 输出:预测评分矩阵
– For each 用户对
• 计算相似度
– End
– For each 需要预测的用户-项目
• 预测评分
– End
具体实现(3)
• 用户打分偏差?
– 规范化
• 能找到足够多的在目标项目上评分的相似
用户吗?(数据稀疏)
– 预处理
对协同过滤的改进(偏差)
user1
item1
…
…
2
-1.75
5
1.25
4
0.25
4
0.25
5
0.66
4
-0.33
4
-0.33
2
-1
3
0
3
0
3
0
4
1
3
1
3
0
4
1
2
-1
3
0
5
1
4
0
5
1
2
-2
…
…
…
…
itemN
…
...
userM
偏好漂移
越老的评分越不可信
衰减因子
Ru ,v  Ru ,v
1
exp t
2
-1
展示的是以平均值来
调整用户评分偏差
同样可以用z-score,
方差等方法来调整
对协同过滤的改进(数据稀疏)
• 方案1:填空
• 方案2:相似用户在相似项目上的评分
user1
item1
…
…
-1.75
1.25
0.25
0.25
0.66
-0.33
-0.33
-1
0
0
0
1
1
0
1
-1
0
1
0
1
-2
…
…
…
…
itemN
…
...
userM
-1
对协同过滤的改进(数据稀疏)
• 方案3:降维
– 评分矩阵分解
– 相似矩阵分解(SVD)
item
item
u
s
e
r
Similarity
matrix
u
s
e
r
对协同过滤的改进(数据稀疏)
图(距离)
• 最短路径
• 最大流
图(传播)
• 随机游走
0.5
0.4
1.0
0.2
1.0
1.0
1.0
问题
• 自由讨论以下问题
• 协同过滤算法能适应大规模的推荐系统吗?
(可伸缩性)
– 存储空间
– 计算效率
• 协同过滤算法如何应对不断增长的评分矩
阵?
• 针对新项目,新用户怎么预测评分?(冷
启动)
基于规则的分类
•
•
如果你有一些分类知识,用 IF-THEN
规则表示
R: IF age = youth AND student =
yes THEN buys_computer = yes
如果有多条规则
IF age = young AND student = no
THEN buys_computer = no
IF age = young AND student = yes
THEN buys_computer = yes
IF age = mid-age
THEN buys_computer = yes
IF age = old AND credit_rating =
excellent
THEN buys_computer = no
IF age = old AND credit_rating =
fair
THEN buys_computer
= yes
– 如何排序
• 训练集:买电脑
age
<=30
<=30
31…40
>40
>40
>40
31…40
<=30
<=30
>40
<=30
31…40
31…40
>40
income student credit_rating buys_computer
no
no fair
high
no
no excellent
high
yes
no fair
high
yes
no fair
medium
yes
yes fair
low
no
yes excellent
low
yes
yes excellent
low
no
no fair
medium
yes
yes fair
low
yes
medium yes fair
yes
medium yes excellent
yes
no excellent
medium
yes
yes fair
high
no
no excellent
medium
规则排序
• 规模序方案:将最高优先权赋予具有“最
苛刻”要求的触发规则
– 规则前件的规模(如触发属性的多少)
• 规则序方案:预先确定规则的次序
– 基于类的序:最普遍的类->最少见的类
– 规则质量的度量
• 覆盖率ncovers = # of tuples covered by R
• 准确率ncorrect = # of tuples correctly classified by R
如何生成规则:决策树方法
• 决策树:是一种从标记类的训练元组中学习到的树结构,其中
– 内部节点(矩形):表示一个属性上的测试
– 分支:一个测试输出
• 可以是二叉或者非二叉的
– 叶节点(椭圆形):存放一个类标号
age
<=30
<=30
31…40
>40
>40
>40
31…40
<=30
<=30
>40
<=30
31…40
31…40
>40
income student credit_rating buys_computer
high
no fair
no
high
no excellent
no
high
no fair
yes
medium
no fair
yes
low
yes fair
yes
low
yes excellent
no
low
yes excellent
yes
medium
no fair
no
low
yes fair
yes
medium yes fair
yes
medium yes excellent
yes
medium
no excellent
yes
high
yes fair
yes
medium
no excellent
no
age?
<=30
31..40
overcast
student?
no
no
yes
yes
yes
>40
credit rating?
excellent
fair
yes
归纳决策树的基本算法
• 贪婪的,自顶向下的重复分治法
– 创建根节点,所有候选属性集合
– 递归调用划分数据集的过程(参数:候选属性集合,元组
集合)
• 找出最好的属性及其分裂准则
– 如果是离散属性且允许多路划分,删除该属性
• 对分裂属性的每个分枝
– 以满足该条件的训练集合与当前候选属性集合为输入
– 递归调用划分过程
– +该节点到根节点
– 停止分裂
• 如果所有训练实例都是同类
• 属性列表为空
– 多数表决
• 训练元祖为空
• 叶子节点
属性选择
• 同时选择测试属性及如何分裂
• 背景:熵
– 随机变量的不确定性越大,把它搞清楚所需要
m
的信息量也要越大
Info( D)   pi log2 ( pi )
i 1
– 反之组分越纯信息量越小
• 信息增益(ID3)
• 增益率(C4.5)
• Gini指标(CART)
离散值属性的信息增益
• 假设按照属性A划分D中的元组 {D1 , D2 ...Dv }
• 这样划分的信息量
v
| Dj |
j 1
| D|
InfoA ( D)  
• 原信息量
 Info( D j )
m
Info( D)   pi log2 ( pi )
i 1
• 信息增益
Gain(A) Info(D) InfoA(D)
• 选择信息增益最大的属性
– 即分后信息量最小,最纯的划分
连续值属性的信息增益
• 找到最优的分裂点
– 对A按照升序排列
– 考虑所有可能的分裂点(一般是两个相邻值的中
点) (ai+ai+1)/2
– 计算最小信息增益
• 元组划分(二叉)
– D1 :A ≤ split-point
– D2 :A > split-point
使用信息增益构造决策树
age
<=30
<=30
31…40
>40
>40
>40
31…40
<=30
<=30
>40
<=30
31…40
31…40
>40
income student credit_rating
10000
no fair
9000
no excellent
11000
no fair
4000
no fair
3000
yes fair
2000
yes excellent
1000
yes excellent
5000
no fair
1000
yes fair
6000
yes fair
5000
yes excellent
4000
no excellent
9000
yes fair
5000
no excellent
buys_computer
no
no
yes
yes
yes
no
yes
no
yes
yes
yes
yes
yes
no
原信息量(不划分)
Info ( D)  I (9,5)  
9
9
5
5
log 2 ( )  log 2 ( ) 0.940
14
14 14
14
属性”age”
age
<=30
31…40
>40
pi
2
4
3
Infoage ( D ) 

ni I(pi, ni)
3 0.971
0 0
2 0.971
5
4
I ( 2,3) 
I ( 4,0)
14
14
5
I (3,2)  0.694
14
Gain( student )  0.151
Gain(credit _ rating )  0.048
课堂小quiz:计算Gain(income)=?
增益率
课堂小quiz:一般来说,信息增益偏向选择具有多个不同值的属性还是少量值的属
性?为什么?
• 利用分裂信息对信息增益进行了规范化
• 分裂信息:分裂产生的信息量
v
SplitInfoA ( D)  
• 增益率
j 1
| Dj |
| D|
 log2 (
| Dj |
| D|
)
GainRatio( A)  Gain( A) / SplitInfoA ( D)
使用增益率构造决策树
income
10000
9000
5000
1000
Position
student
student
officer
teacher
credit_rating
fair
excellent
fair
fair
buys_computer
no
no
no
yes
Split _ Info(income)  Split _ Info(credit )
 Split _ Info( Position)
Info position ( D) 
age?
2
1
1
I (2, 0)  I (1, 0)  I (0,1)
4
4
4
0
<=30
31..40
?
>40
3
1
I (2,1)  I (1, 0)  0.688
4
4
3
1
Infoincome 3000 ( D)  I (3, 0)  I (1, 0)  0
4
4
Infocredit ( D) 
原信息量(不划分)
3
3 1
1
Info( D)  I (3,1)   log 2 ( )  log 2 ( ) 0.811
4
4
4
4
Gain( position)  0.811
Gain(credit )  0.123
Gain(income)  0.811
Gini指标
• 考虑属性上的二元划分(二叉树)
– 离散属性
• 划分为两个子集
• 对于每个子集中的元组 gini( D) 1 n 2
 pj
– 其中p 是类 j 出现在 D中的相对频率
j
j 1
• 该二元划分
|D |
|D |
gini A ( D)  1 gini ( D1)  2 gini ( D 2)
|D|
|D|
• 选择最小Gini指标的属性和划分
– 连续值属性
• 考虑所有可能的分裂点(相邻值的中点)
使用Gini指标归纳决策树
age
<=30
<=30
31…40
>40
>40
>40
31…40
<=30
<=30
>40
<=30
31…40
31…40
>40
income student credit_rating
high
no
fair
high
no
excellent
high
no
fair
medium
no
fair
low
yes fair
low
yes excellent
low
yes excellent
medium
no
fair
low
yes fair
medium
yes fair
medium
yes excellent
medium
no
excellent
high
yes fair
medium
no
excellent
buys_computer
no
no
yes
yes
yes
no
yes
no
yes
yes
yes
yes
yes
no
同理, Gini{low,high} =0.458
Gini{medium,high} =0.450
最优划分:{low, medium}和{high}
Income属性的二元划分
 10 
4
gini
(
D
)

Gini
(
D
)



 Gini( D2 )
income{low, medium}
1
{low, medium} {high}
14
 
 14 
{low, high} {medium}
{medium, high} {low}
比较
分裂准则
• 信息增益
• 增益率
• Gini指标
特点
• 偏向大量值的属性
• 偏向少量值的属性
• 偏向平衡的划分
• 偏向不平衡的划分
课堂小quiz:为左右两栏连线
答案:信息增益和Gini指标偏向大量值的属性
增益率偏向少量值的属性和不平衡的划分
Gini指标偏向平衡的划分
剪枝
• 过拟合
– 由于数据中的噪声和离群点,许多分支反映的是训
练数据中的异常
– 测试数据是未观测到的,可能效果不好。
• 剪枝
– 先剪枝
• 例如,一旦发现分裂准则不满足预定义的阈值,则停止划
分
– 后剪枝
• 完全生长树后检查
– 代价复杂度(CART)
» 由底向上,如果某个内部节点的子树的树叶节点个数和树
的错误率(误分类元组所占百分比)比剪去子树代价复杂
度高,则剪枝
• 由叶子替换子树
由决策树提取分类规则
• 沿着树中由根节点到每个叶节点的路径,
提取IF –Then 规则
• 由于决策树的分支是互斥和穷举的
age?
– 互斥:没有两个规则被相同的元组所触发
– 穷举:所有属性值组合都存在一个对应规则
<=30
31..40
overcast
>40
• 因此,规则的序不重要
student?
课堂小quiz:提取该
决策树的规则?
no
no
yes
yes
yes
credit rating?
excellent
fair
yes
神经网络
• 原型:生物神经元之间的相互连接从而让信息传递的部位
披称为突触(Synapse)。突触按其传递信息的不同机制,可
分为化学突触和电突触、其中化学突触占大多数,其神经
冲动传递借助于化学递质的作用。生物神经元的结构大致
描述如下图所示。
MP模型
• 神经元的形式化数学描述
– 多输出、单输入
– 兴奋和抑制
– 阈值特性(偏倚)
x0
w0
x1
w1
bias 

k
f
output y
n
xn
y  sign( wi xi   k )
wn
Input
weight
vector x vector w
i 0
weighted
sum
Activation
function
1
y
1 e
(
n
 wi xi k )
i 0
感知器模型
Output vector
• 模拟神经网络
– 前馈网络
– 层间无反馈
Output layer
Hidden layer
wij
Input layer
Input vector: X
训练神经网络
• 后向传播算法
– 初始化权重和阈值(偏倚)
• -1.0~1.0
– 向前传播输入
• 根据激励函数计算上一层的输出
• 作为下一层的输入
– 向后传播误差
• 对于输出层单元,误差=(真实值-输出值)x导数
• 对于隐藏层单元,误差=(反向连接误差加权和)x导数
• 更新权重和偏倚:+步长x误差x输出
– 重复直至收敛
后向传播更新算法
第一步:随机初始化
Logistic函数
f (I ) 
1
1
1  e I
1
6
2
5
1
3
W14=0.2
节点5
W15=-0.3 W25=0.1
节点6
W46=-0.3 W56=-0.2 6=0.1
W24=0.4
W35=0.2
第二步:向前传播
4
0
W34=-0.5 4=0.4
节点4
1
节点4
I=-0.7
O=0.332
节点5
I=0.1
O=0.525
节点6
I=-0.105
O=0.474
第三步:向后传播更新权重和偏倚,步长=0.9
Errj  Oj (1  Oj )(Tj  Oj )
1. 节点6,误差0.474x(1-0.474)(1-0.474)=0.1311,更新权重
W46=--0.3+0.9x0.1311x0.332=-0.261
W56=-0.2+0.9x0.1311x0.525=-0.138
6=-0.4+0.9x-0.0087=-0.408
2. 节点5,误差=0.525x(1-0.525)x0.1311x-0.2=-0.0065
5=0.2
以上分类器的讨论
• 形状
– KNN:任意形状,线性
– 决策树:矩形
– ANN:任意形状,特别是非线性
• 增量学习
– KNN
• 并行计算
– ANN
• 计算开销
• 更复杂的情况
– 不平衡分类
– 多类分类
– 多标记分类
分类效果的评估
混淆矩阵:
Actual class\Predicted class
C1
¬ C1
C1
True Positives (TP)
False Negatives (FN)
¬ C1
False Positives (FP)
True Negatives (TN)
• 准确率:正确分类的元组百分比
Accuracy = (TP + TN)/All
课堂小quiz:癌症识别应该用什么评估指标?
• 误差率: 1 – accuracy,或者
Error rate = (FP + FN)/All

• 精度:正确分类的正例占结果比率
Precision=TP/(TP+FP)
• 召回率:发现的正例占正例比重
Recall=TP/(TP+FN)
• F-score

灵敏度: 正确识别的正例
 Sensitivity = TP/P
特效性:正确识别的负例
 Specificity = TN/N
评估:ROC 曲线
课堂小quiz:一般来说,精度越高,召回率也越高吗?
•
ROC (Receiver Operating
Characteristics) 曲线
–
•
•
•
比较两个分类器的可视化工具
权衡trade-off 真正例(精度)和伪正
例(召回率)
根据测试元组属于正例的可能性降序
排序
对角线:不准确模型




纵轴:真正例
横轴:伪正例
对角线
曲线下面积

完全准确:1.0

完全不准确:0.5
评估分类器的一般过程(1)
• 保持法Holdout
– 随机划分数据为训练集和测试集
– 在训练集上建立分类器,在测试集上评估
– 随机子抽样random subsampling
• 重复k次上述过程
• 获得平均结果
• 交叉验证Cross Validation
– K折交叉验证
• 随机划分为k个互不相交的子集,大小相等
• 重复下列过程k次
– 在其中k-1个子集上进行训练,剩下一个子集上进行评估
– 留一leave-one-out
评估分类器的一般过程(2)
• 当数据集很小时,如何进行分类器的评估?
• 自助bootstrap
– 有放回的抽样
– .632自助法
• 有放回的随机采样构成和原数据集大小一致的训练
集
• 不出现在训练集中的元组构成测试集
• 如果数据集中的元组个数是d,则训练集包含63%的
元组,测试集包含37%的元组
– (1 – 1/d)d ≈ e-1 = 0.368
评估分类器的一般过程(3)
• 怎样比较两个分类器的好坏?
• 假设对两个模型做了10轮10折交叉验证,误差
率分别为
– M1:30.5,32.2,20.7,20.6,31.0,41.0,27.7,26.0,21.5,26.0
– M2:22.4,14.5,22.4,19.6,20.7,20.4,22.1,19.4,16.2,35.0
– 请问哪个模型比较好?
• 统计显著性检验
– T-假设:假设两个小规模样本集(<30一般)是采样
自相同的正态分布null-hypothesis
• 样本数-1=自由度
• 要拒绝该假设,且置信度为p则t值需要大于该自由度下p的
临界值
分类中的高级话题
• 多标记分类
– 文本分类中的多义性
– 样本集分解
– 多标记分类器
• 多类分类
– 非常常见
– 多个二类分类
– 多类问题
• 不平衡分类
– 疾病、互联网问题
– 降采样
– 代价敏感学习
集成分类器
• 集成学习方法:提高准确率的一般策略
– 组合分类模型 M1, M2, …, Mk得到一个改进的模型M*
• 常见方法
– Bagging装袋
– Boosting提升
– 随机森林:决策树
Bagging: Boostrap Aggregation
• 训练
– 数据集D 有 d 个元组
• 每一轮生成训练集 Di (规模d )由 D中有放回的抽样
得到 (bootstrap)
• 训练分类器Mi
• 分类
– 每个分类器Mi 独立预测
– M* 返回多数投票
Boosting
• 思想
– 分类器的权重
– 样本的权重
• 步骤
– 在每一轮中
•
•
•
赋予每个元组权重
学习分类器
更新权重,使得被误分
的元组得到更多关注
– 集成分类器考虑每一
个分类器的准确率
• AdaBoost
– 初始每一个样本的权重
相同1/d
– 每一轮中
• 有放回抽样(自助)生
成训练集,每个样本被
抽样的概率=权重
• 训练分类器
• 在训练集上评估误差率
d
error( M i )   w j  err ( X j )
j
• 误分类的样本增加权重,
反之降低
– 集成分类器:加权投票
log
1  error( M i )
error( M i )
随机森林
• 每个分类器是一棵决策树
– Forest-RI
• 随机输入F个特征,F=log2d+1,d是属性数目
• 在F个特征上选择分裂属性
• 完全增长,不剪枝
– Forest-RC
• 当d很小时,产生F个输入特征的线性组合新特征
• 选择分裂属性
• 集成分类
– 每棵决策树参与预测,多数投票

similar documents