59
分分 分分 分分 分分分

林琛 博士 、 副 教授

Embed Size (px)

DESCRIPTION

分类. 林琛 博士 、 副 教授. 本讲要点. 分类基础 分类过程 分类算法 KNN ,决策树,神经网络 分类评估 分类高级 预处理与特征选择 不平衡分类,多类分类,多标记分类 集成分类算法 Adaboost , bagging, 随机森林. 分类过程. 步骤 1 :训练 已标注的训练集 分类“模型”表达 步骤 2 :预测 构建测试 集 应用分类“模型”预测类别 评估. 一个例子.  借助适合于当地使用的彩色蘑菇图册,逐一辨认当地食用菌或毒蘑菇是一个很好的方法。. - PowerPoint PPT Presentation

Citation preview

Page 1: 林琛 博士 、 副 教授

分类

林琛博士、副教授

Page 2: 林琛 博士 、 副 教授

本讲要点• 分类基础

– 分类过程– 分类算法

• KNN ,决策树,神经网络– 分类评估

• 分类高级– 预处理与特征选择– 不平衡分类,多类分类,多标记分类– 集成分类算法

• Adaboost, bagging, 随机森林

Page 3: 林琛 博士 、 副 教授

分类过程• 步骤 1 :训练

– 已标注的训练集– 分类“模型”表达

• 步骤 2 :预测– 构建测试集– 应用分类“模型”预测类别– 评估

Page 4: 林琛 博士 、 副 教授

一个例子

毒蘑菇?

•看形状:毒蘑菇一般比较黏滑,菌盖上常沾些杂物或生长一些像补丁状的斑块。菌柄上常有菌环(像穿了超短裙一样)。无毒蘑菇很少有菌环。•观颜色:毒蘑多呈金黄、粉红、白、黑、绿。无毒蘑菇多为咖啡、淡紫或灰红色。•闻气味:毒蘑菇有土豆或萝卜味。无毒蘑菇为苦杏或水果味。•看分泌物:将采摘的新鲜野蘑菇撕断菌杆,无毒的分泌物清亮如水,个别为白色,菌面撕断不变色;有毒的分泌物稠浓,呈赤褐色,撕断后在空气中易变色

凭经验知道

 借助适合于当地使用的彩色蘑菇图册,逐一辨认当地食用菌或毒蘑菇是一个很好的方法。  

Page 5: 林琛 博士 、 副 教授

K 近邻( KNN )• 基本思想

– 对于一个测试样本– 找出最接近测试样本的训练样本

– 决定测试样本的标签

• 实例投影到 n 维空间

样本 高 宽 标签

12 10 苹果

10 11 苹果

15 9 梨子

11 11 ?

. _

+_ xq

+

_ _+

_

_

+

•多少个? K 怎么选•怎样判断相似度?

•怎么决定?

Page 6: 林琛 博士 、 副 教授

K 的选择.

..

. .

K=1最近邻

.

..

. .

K=2

K=3 :实线,预测红K=5 :虚线,预测蓝

常用方法:不断增加 k 直到达到一个较好的预测值交叉验证:将训练集分成若干部分,用其中一些作为训练,另一些作为检验•十折、五折……

Page 7: 林琛 博士 、 副 教授

相似度度量的选择• 相似度

– 数值描述两个对象的相似程度– 通常范围 [0,1]– 一般是对称的

• 相异度– 数值描述两个对象的差异程度– 范围 [0,1] 或者 >0 (可以到无穷大)– 一般是对称的– 严格的测度需要满足三角不等式

Page 8: 林琛 博士 、 副 教授

简单属性的相似度 / 相异度及变换

• 回顾: 属性(特征)种类( Lecture 2 )– 标称( Nominal ),满足相异性,如身份证号– 序数( Ordinal ) , 满足相异性,有序性,如门牌号– 区间( Interval ),满足相异性,有序性,可加性,如日期

– 比率( Ratio ),满足全部:如长度

Page 9: 林琛 博士 、 副 教授

复杂对象的相似度测量• 明氏距离Minkowski Distance

– 曼哈顿距离(城市街区距离): p=1– 欧式距离 :p=2

• 余弦相似度 Cosine Similarity

• 皮尔逊积矩相关系数 Pearson Correlation

• 杰卡德相似度 Jaccard Similarity

• 编辑距离 Edit Distance请给出上述距离 / 相似度的值域

Page 10: 林琛 博士 、 副 教授

相似度量的选择• Google 的新闻是自动分类和整理的。所谓新闻的分类

无非是要把相似的新闻放到一类中。计算机其实读不懂新闻,它只能快速计算。这就要求我们设计一个算法来算出任意两篇新闻的相似性。为了做到这一点,你打算采取什么样的相似度?– 吴军《数学之美》

• 考虑如下的一个图形,欧氏距离适合用来测度相似性吗?

Page 11: 林琛 博士 、 副 教授

规范化

• 最小 - 最大规范化– 首先确定新的数值范围

• Z-score 规范化– 确定均值 μ, 标准差 σ

• 小数定标规范化– 通过移动属性的小数点

716.00)00.1(000,12000,98

000,12600,73

AAA

AA

A

minnewminnewmaxnewminmax

minvv _)__('

A

Avv

'

j

vv

10' 其中 j 是使得 Max(|ν’|) < 1 的最小整数

225.1000,16

000,54600,73

假设属性:收入的范围是 $12,000 ~$98,000 。希望规范化到 [0.0, 1.0]. 则$73,600 规范化后的值是 :

上例中假设 μ = 54,000, σ = 16,000. 换算 $73,600

上例中换算 $73,600

0.736

Page 12: 林琛 博士 、 副 教授

规范化方法比较• 最小 - 最大规范化

– 最小,最大值是全局的– 如果测试数据和训练数据不一致,则会出现“越界”– 线性变换

• Z-score规范化– 不受孤立点影响– 需要保存参数,对测试集进行统一处理

• 小数定标规范化– 需要保存参数,对测试集进行统一处理– 线性变换

Page 13: 林琛 博士 、 副 教授

投票策略• 多数投票

–指派到 k 近邻的多数类• 加权投票

– 对噪音数据的鲁棒性–距离越近权重越大

2),(1

ixqxdw

Page 14: 林琛 博士 、 副 教授

查找最近邻• 穷举

– 将数据集中的点与查询点逐一进行距离比较• 索引

–划分互不重叠的空间– 在空间里查找最近邻– K-d tree

• K指的不是 KNN ,指的是特征维度

Page 15: 林琛 博士 、 副 教授

K-d 树构建createKDTree//构建 k-d 树算法Input : Data-set , RangeOutput : k-d treeIf (Data-set 为空 )

Return 空的 k-d tree;

Else //调用节点生成程序:   Split=argmax(sd);

Node-data=median(d[split]);Data-set' = Data-set\Node-data;createKDTree(dataLeft,leftRange );createKDTree(dataRight,rightRange );

树节点数据结构:Node-data// 数据集中某个数据点Range//该节点所代表的空间范围Split//垂直于分割超平面的方向轴Left//由位于该节点分割超平面左子空间内所有数据点所构成的 k-d 树Right//由位于该节点分割超平面右子空间内所有数据点所构成的 k-d 树parent//父节点

看一个例子

Page 16: 林琛 博士 、 副 教授

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) 的右空间交集结束

算法维护数据结构:路径堆栈,当前最近邻,当前最近距离

Page 17: 林琛 博士 、 副 教授

LSH• 局部敏感哈希 (Locality Sensitive Hashing)

– 用于 Jaccard Similarity– 特征维数很高

InstanceID

a b c d e f

A 0 1 0 0 1 0B 1 0 0 0 1 1C 0 1 0 1 1 0D 0 0 1 1 0 0E 0 0 0 1 0 1

InstanceID

b a c d f e

A 1 0 0 0 0 1

B 0 1 0 0 1 1

C 1 0 0 1 0 1

D 0 0 1 1 0 0

E 0 0 0 1 1 0

变换特征顺序

第一个非零位minHashing1(A,B,C,D,E) 分别为 1, 2, 1, 3, 4

经过多次随机变换特征顺序,得到 minh如 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

Page 18: 林琛 博士 、 副 教授

KNN扩展到回归问题上• 回归问题:

– 在教材里被称为“预测”–和分类的不同

• 分类:离散• 回归:数值

• 一个典型的回归问题–推荐系统– KNN 方法:协同过滤

Page 19: 林琛 博士 、 副 教授

协同过滤: k 近邻

item1 … … … … itemN

user1 2 5 4 4

… 5 4 4

… 2 3 3 3 4

... 3 4 2 3 2

userM 5 4 5 2

直接反馈(评分矩阵)特点:稀疏动态

新评分 新用户 新项目

v

u

u1

u2

u3

K 近邻的基本思想:利用偏好相似的用户进行推荐

Page 20: 林琛 博士 、 副 教授

基于项目的协同过滤

item1 … … … … itemN

user1 2 5 4 4

… 5 4 4

… 2 3 3 3 4

... 3 4 2 3 2

userM 5 4 5 2

v

u

Page 21: 林琛 博士 、 副 教授

具体实现( 1 )• 怎么选择相似的用户 /项目?

– 相似性的计算• 基于评分的

item1 … … … … itemN

user1 2 5 4 4

… 5 4 4

… 2 3 3 3 4

... 3 4 2 3 2

userM 5 4 5 2

Page 22: 林琛 博士 、 副 教授

具体实现( 2 )• 选择多少个相似的用户 /项目?

– 定值 K– 阈值法 T

• 一个朴素算法– 输入:评分矩阵– 输出:预测评分矩阵– For each 用户对

• 计算相似度– End– For each 需要预测的用户 -项目

• 预测评分– End

Page 23: 林琛 博士 、 副 教授

具体实现( 3 )• 用户打分偏差?

–规范化• 能找到足够多的在目标项目上评分的相似

用户吗?(数据稀疏)– 预处理

Page 24: 林琛 博士 、 副 教授

对协同过滤的改进(偏差)item1 … … … … itemN

user1 2 5 4 4

… 5 4 4

… 2 3 3 3 4

... 3 3 4 2 3 2

userM 5 4 5 2

item1 … … … … itemN

user1 -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

userM 1 0 1 -2

展示的是以平均值来调整用户评分偏差同样可以用 z-score ,方差等方法来调整

偏好漂移越老的评分越不可信衰减因子 , ,

1

expu v u vR Rt

Page 25: 林琛 博士 、 副 教授

对协同过滤的改进(数据稀疏)• 方案 1 :填空

• 方案 2 :相似用户在相似项目上的评分

item1 … … … … itemN

user1 -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

userM 1 0 1 -2

Page 26: 林琛 博士 、 副 教授

对协同过滤的改进(数据稀疏)• 方案 3 :降维

– 评分矩阵分解– 相似矩阵分解 (SVD)

user

item

user

item

Similaritymatrix

Page 27: 林琛 博士 、 副 教授

对协同过滤的改进(数据稀疏)图(距离)• 最短路径• 最大流

图(传播)• 随机游走

0.6

0.4

0.2

0.8

1.0

1.00.5

1.01.0

Page 28: 林琛 博士 、 副 教授

问题• 自由讨论以下问题• 协同过滤算法能适应大规模的推荐系统吗?

(可伸缩性)–存储空间–计算效率

• 协同过滤算法如何应对不断增长的评分矩阵?• 针对新项目,新用户怎么预测评分?(冷启动)

Page 29: 林琛 博士 、 副 教授

基于规则的分类• 如果你有一些分类知识,用 IF-THEN 规则表示

R: IF age = youth AND student = yes THEN buys_computer = yes

• 如果有多条规则IF age = young AND student = no THEN

buys_computer = noIF age = young AND student = yes THEN

buys_computer = yesIF age = mid-age

THEN buys_computer = yesIF age = old AND credit_rating = excellent

THEN buys_computer = noIF age = old AND credit_rating = fair

THEN buys_computer = yes

– 如何排序

• 训练集:买电脑age income student credit_rating buys_computer

<=30 high no fair no<=30 high no excellent no31…40 high no fair yes>40 medium no fair yes>40 low yes fair yes>40 low yes excellent no31…40 low yes excellent yes<=30 medium no fair no<=30 low yes fair yes>40 medium yes fair yes<=30 medium yes excellent yes31…40 medium no excellent yes31…40 high yes fair yes>40 medium no excellent no

Page 30: 林琛 博士 、 副 教授

规则排序• 规模序方案:将最高优先权赋予具有“最苛刻”要求的触发规则–规则前件的规模(如触发属性的多少)

• 规则序方案:预先确定规则的次序– 基于类的序:最普遍的类 -> 最少见的类–规则质量的度量

• 覆盖率 ncovers = # of tuples covered by R

• 准确率 ncorrect = # of tuples correctly classified by R

Page 31: 林琛 博士 、 副 教授

如何生成规则:决策树方法• 决策树:是一种从标记类的训练元组中学习到的树结构,其中

– 内部节点(矩形):表示一个属性上的测试– 分支:一个测试输出

• 可以是二叉或者非二叉的– 叶节点(椭圆形):存放一个类标号

age income student credit_rating buys_computer<=30 high no fair no<=30 high no excellent no31…40 high no fair yes>40 medium no fair yes>40 low yes fair yes>40 low yes excellent no31…40 low yes excellent yes<=30 medium no fair no<=30 low yes fair yes>40 medium yes fair yes<=30 medium yes excellent yes31…40 medium no excellent yes31…40 high yes fair yes>40 medium no excellent no

age?

overcast

student? credit rating?

<=30 >40

no yes yes

yes

31..40

no

fairexcellentyesno

Page 32: 林琛 博士 、 副 教授

归纳决策树的基本算法

• 贪婪的,自顶向下的重复分治法– 创建根节点,所有候选属性集合– 递归调用划分数据集的过程(参数:候选属性集合,元组

集合)• 找出最好的属性及其分裂准则

– 如果是离散属性且允许多路划分,删除该属性• 对分裂属性的每个分枝

– 以满足该条件的训练集合与当前候选属性集合为输入– 递归调用划分过程– + 该节点到根节点

– 停止分裂• 如果所有训练实例都是同类• 属性列表为空

– 多数表决• 训练元祖为空• 叶子节点

Page 33: 林琛 博士 、 副 教授

属性选择• 同时选择测试属性及如何分裂• 背景:熵

– 随机变量的不确定性越大,把它搞清楚所需要的信息量也要越大

– 反之组分越纯信息量越小• 信息增益( ID3 )• 增益率( C4.5 )• Gini 指标( CART )

)(log)( 21

i

m

ii ppDInfo

Page 34: 林琛 博士 、 副 教授

离散值属性的信息增益• 假设按照属性 A划分 D 中的元组• 这样划分的信息量

• 原信息量

• 信息增益

• 选择信息增益最大的属性– 即分后信息量最小,最纯的划分

1 2{ , ... }vD D D

)(||

||)(

1j

v

j

jA DInfo

D

DDInfo

)(log)( 21

i

m

ii ppDInfo

(D)InfoInfo(D)Gain(A) A

Page 35: 林琛 博士 、 副 教授

连续值属性的信息增益• 找到最优的分裂点

– 对 A 按照升序排列– 考虑所有可能的分裂点(一般是两个相邻值的中

点) (ai+ai+1)/2

– 计算最小信息增益• 元组划分(二叉)

– D1 : A ≤ split-point– D2 : A > split-point

Page 36: 林琛 博士 、 副 教授

使用信息增益构造决策树age income student credit_rating buys_computer

<=30 10000 no fair no<=30 9000 no excellent no31…40 11000 no fair yes>40 4000 no fair yes>40 3000 yes fair yes>40 2000 yes excellent no31…40 1000 yes excellent yes<=30 5000 no fair no<=30 1000 yes fair yes>40 6000 yes fair yes<=30 5000 yes excellent yes31…40 4000 no excellent yes31…40 9000 yes fair yes>40 5000 no excellent no

属性” age”

原信息量(不划分)

940.0)14

5(log

14

5)

14

9(log

14

9)5,9()( 22 IDInfo

age pi ni I(pi, ni)<=30 2 3 0.97131…40 4 0 0>40 3 2 0.971

694.0)2,3(14

5

)0,4(14

4)3,2(

14

5)(

I

IIDInfoage

( ) 0.151

( _ ) 0.048

Gain student

Gain credit rating

课堂小 quiz:计算 Gain(income)= ?

Page 37: 林琛 博士 、 副 教授

增益率

• 利用分裂信息对信息增益进行了规范化• 分裂信息:分裂产生的信息量

• 增益率

课堂小 quiz :一般来说,信息增益偏向选择具有多个不同值的属性还是少量值的属性?为什么?

)||

||(log

||

||)( 2

1 D

D

D

DDSplitInfo j

v

j

jA

( ) ( ) / ( )AGainRatio A Gain A SplitInfo D

Page 38: 林琛 博士 、 副 教授

使用增益率构造决策树income Position credit_rating buys_computer

10000 student fair no9000 student excellent no5000 officer fair no1000 teacher fair yes

3000

2 1 1( ) (2,0) (1,0) (0,1)

4 4 40

3 1( ) (2,1) (1,0) 0.688

4 43 1

( ) (3,0) (1,0) 04 4

position

credit

income

Info D I I I

Info D I I

Info D I I

( ) 0.811

( ) 0.123

( ) 0.811

Gain position

Gain credit

Gain income

age?

<=30 >4031..40

原信息量(不划分)

2 2

3 3 1 1( ) (3,1) log ( ) log ( ) 0.811

4 4 4 4Info D I

_ _ (( ) )

_ ( )

Info Info credit

Split

Split i

Info

ncome Spli

Posi n

t

tio

Page 39: 林琛 博士 、 副 教授

Gini指标• 考虑属性上的二元划分(二叉树)

–离散属性• 划分为两个子集• 对于每个子集中的元组

– 其中 pj 是类 j 出现在 D 中的相对频率• 该二元划分

• 选择最小 Gini 指标的属性和划分– 连续值属性

• 考虑所有可能的分裂点(相邻值的中点)

n

jp jDgini

1

21)(

)(||||)(

||||)( 2

21

1 DginiDD

DginiDDDginiA

Page 40: 林琛 博士 、 副 教授

使用 Gini指标归纳决策树age income student credit_rating buys_computer

<=30 high no fair no<=30 high no excellent no31…40 high no fair yes>40 medium no fair yes>40 low yes fair yes>40 low yes excellent no31…40 low yes excellent yes<=30 medium no fair no<=30 low yes fair yes>40 medium yes fair yes<=30 medium yes excellent yes31…40 medium no excellent yes31…40 high yes fair yes>40 medium no excellent no

Income 属性的二元划分{low, medium} {high}{low, high} {medium}{medium, high} {low}

)(14

4)(

14

10)( 21},{ DGiniDGiniDgini mediumlowincome

同理, Gini{low,high} =0.458Gini{medium,high} =0.450

最优划分: {low, medium}和 {high}

Page 41: 林琛 博士 、 副 教授

比较分裂准则• 信息增益• 增益率• Gini指标

特点• 偏向大量值的属性• 偏向少量值的属性• 偏向平衡的划分• 偏向不平衡的划分

课堂小 quiz :为左右两栏连线

答案:信息增益和 Gini指标偏向大量值的属性增益率偏向少量值的属性和不平衡的划分Gini指标偏向平衡的划分

Page 42: 林琛 博士 、 副 教授

剪枝

• 过拟合– 由于数据中的噪声和离群点,许多分支反映的是训练数

据中的异常– 测试数据是未观测到的,可能效果不好。

• 剪枝– 先剪枝

• 例如,一旦发现分裂准则不满足预定义的阈值,则停止划分– 后剪枝

• 完全生长树后检查– 代价复杂度( CART )

» 由底向上,如果某个内部节点的子树的树叶节点个数和树的错误率(误分类元组所占百分比)比剪去子树代价复杂度高,则剪枝

• 由叶子替换子树

Page 43: 林琛 博士 、 副 教授

由决策树提取分类规则• 沿着树中由根节点到每个叶节点的路径,提取 IF –Then 规则

• 由于决策树的分支是互斥和穷举的–互斥:没有两个规则被相同的元组所触发– 穷举:所有属性值组合都存在一个对应规则

• 因此,规则的序不重要

age?

overcast

student? credit rating?

<=30 >40

no yes yes

yes

31..40

no

fairexcellentyesno课堂小 quiz :提取该决策树的规则?

Page 44: 林琛 博士 、 副 教授

神经网络• 原型:生物神经元之间的相互连接从而让信息传递的部位披称为突触 (Synapse) 。突触按其传递信息的不同机制,可分为化学突触和电突触、其中化学突触占大多数,其神经冲动传递借助于化学递质的作用。生物神经元的结构大致描述如下图所示。

Page 45: 林琛 博士 、 副 教授

MP模型• 神经元的形式化数学描述

– 多输出、单输入– 兴奋和抑制– 阈值特性(偏倚)

f

weighted sum

Inputvector x

output y

Activationfunction

weightvector w

å

w0

w1

wn

x0

x1

xn

n

i 0

n

i 0

( )

y sign( )

1

1i i k

i i k

w x

w x

y

e

biask

Page 46: 林琛 博士 、 副 教授

感知器模型• 模拟神经网络

–前馈网络–层间无反馈

Output layer

Input layer

Hidden layer

Output vector

Input vector: X

wij

Page 47: 林琛 博士 、 副 教授

训练神经网络• 后向传播算法

– 初始化权重和阈值(偏倚)• -1.0~1.0

– 向前传播输入• 根据激励函数计算上一层的输出• 作为下一层的输入

– 向后传播误差• 对于输出层单元,误差 = (真实值 -输出值) x导数• 对于隐藏层单元,误差 = (反向连接误差加权和) x导数• 更新权重和偏倚: +步长 x误差 x输出

– 重复直至收敛

Page 48: 林琛 博士 、 副 教授

后向传播更新算法

1

2

3

4

5

6

1

0

1

1

节点 4 W14=0.2 W24=0.4 W34=-0.5 4=0.4

节点 5 W15=-0.3 W25=0.1 W35=0.2 5=0.2

节点 6 W46=-0.3 W56=-0.2 6=0.1

Logistic函数1

1( )

Ief I

第一步:随机初始化

节点 4 I=-0.7 O=0.332

节点 5 I=0.1 O=0.525

节点 6 I=-0.105 O=0.474

第二步:向前传播

第三步:向后传播更新权重和偏倚,步长 =0.9

1. 节点 6 ,误差 0.474x(1-0.474)(1-0.474)=0.1311 ,更新权重W46=--0.3+0.9x0.1311x0.332=-0.261W56=-0.2+0.9x0.1311x0.525=-0.1386=-0.4+0.9x-0.0087=-0.408

2. 节点 5 ,误差 =0.525x(1-0.525)x0.1311x-0.2=-0.0065

(1 )( )j j j j jErr O O T O

Page 49: 林琛 博士 、 副 教授

以上分类器的讨论• 形状

– KNN :任意形状,线性– 决策树:矩形– ANN :任意形状,特别是非线性

• 增量学习– KNN

• 并行计算– ANN

• 计算开销• 更复杂的情况

– 不平衡分类– 多类分类– 多标记分类

Page 50: 林琛 博士 、 副 教授

分类效果的评估混淆矩阵 :

Actual class\Predicted class C1 ¬ C1

C1 True Positives (TP) False Negatives (FN)

¬ C1 False Positives (FP) True Negatives (TN)

• 准确率:正确分类的元组百分比Accuracy = (TP + TN)/All

• 误差率: 1 – accuracy ,或者Error rate = (FP + FN)/All

• 精度:正确分类的正例占结果比率Precision=TP/(TP+FP)

• 召回率:发现的正例占正例比重 Recall=TP/(TP+FN)

• F-score

课堂小 quiz :癌症识别应该用什么评估指标?

灵敏度 : 正确识别的正例 Sensitivity = TP/P

特效性:正确识别的负例 Specificity = TN/N

Page 51: 林琛 博士 、 副 教授

评估: ROC 曲线

• ROC (Receiver Operating Characteristics) 曲线– 比较两个分类器的可视化工具

• 权衡 trade-off 真正例(精度)和伪正例(召回率)

• 根据测试元组属于正例的可能性降序排序

• 对角线:不准确模型

纵轴:真正例 横轴:伪正例 对角线 曲线下面积

完全准确: 1.0 完全不准确:

0.5

课堂小 quiz :一般来说,精度越高,召回率也越高吗?

Page 52: 林琛 博士 、 副 教授

评估分类器的一般过程( 1 )• 保持法 Holdout

– 随机划分数据为训练集和测试集– 在训练集上建立分类器,在测试集上评估– 随机子抽样 random subsampling

• 重复 k次上述过程• 获得平均结果

• 交叉验证 Cross Validation– K 折交叉验证

• 随机划分为 k 个互不相交的子集,大小相等• 重复下列过程 k次

– 在其中 k-1 个子集上进行训练,剩下一个子集上进行评估– 留一 leave-one-out

Page 53: 林琛 博士 、 副 教授

评估分类器的一般过程( 2 )• 当数据集很小时,如何进行分类器的评估?• 自助 bootstrap

– 有放回的抽样– .632自助法

• 有放回的随机采样构成和原数据集大小一致的训练集

• 不出现在训练集中的元组构成测试集• 如果数据集中的元组个数是 d ,则训练集包含 63%

的元组,测试集包含 37% 的元组– (1 – 1/d)d ≈ e-1 = 0.368

Page 54: 林琛 博士 、 副 教授

评估分类器的一般过程( 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

的临界值

Page 55: 林琛 博士 、 副 教授

分类中的高级话题• 多标记分类

– 文本分类中的多义性– 样本集分解– 多标记分类器

• 多类分类– 非常常见– 多个二类分类– 多类问题

• 不平衡分类– 疾病、互联网问题– 降采样– 代价敏感学习

Page 56: 林琛 博士 、 副 教授

集成分类器

• 集成学习方法:提高准确率的一般策略– 组合分类模型 M1, M2, …, Mk得到一个改进的模型M*

• 常见方法– Bagging装袋– Boosting提升– 随机森林:决策树

Page 57: 林琛 博士 、 副 教授

Bagging: Boostrap Aggregation

• 训练– 数据集 D 有 d 个元组

• 每一轮生成训练集 Di (规模 d )由 D 中有放回的抽样得到 (bootstrap)

• 训练分类器Mi

• 分类–每个分类器Mi 独立预测– M* 返回多数投票

Page 58: 林琛 博士 、 副 教授

Boosting

• 思想– 分类器的权重– 样本的权重

• 步骤– 在每一轮中

• 赋予每个元组权重• 学习分类器• 更新权重,使得被误

分的元组得到更多关注

– 集成分类器考虑每一个分类器的准确率

• AdaBoost– 初始每一个样本的权重

相同 1/d– 每一轮中

• 有放回抽样(自助)生成训练集,每个样本被抽样的概率 =权重

• 训练分类器• 在训练集上评估误差率

• 误分类的样本增加权重,反之降低

– 集成分类器:加权投票

d

jji errwMerror )()( jX

)(

)(1log

i

i

Merror

Merror

Page 59: 林琛 博士 、 副 教授

随机森林• 每个分类器是一棵决策树

– Forest-RI • 随机输入 F 个特征, F=log2d+1 , d 是属性数目• 在 F 个特征上选择分裂属性• 完全增长,不剪枝

– Forest-RC • 当 d 很小时,产生 F 个输入特征的线性组合新特征• 选择分裂属性

• 集成分类–每棵决策树参与预测,多数投票