1 / 30

KNN 多类标算法

KNN 多类标算法. M.-L. Zhang and  Z.-H. Zhou .  ML-kNN: A lazy learning approach to multi-label learning .  Pattern Recognition , 2007, 40(7): 2038-2048.

allen-perez
Download Presentation

KNN 多类标算法

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. KNN多类标算法 M.-L. Zhang and Z.-H. Zhou. ML-kNN: A lazy learning approach to multi-label learning. Pattern Recognition, 2007, 40(7): 2038-2048. E. Spyromitros, G. Tsoumakas, I. Vlahavas, “An Empirical Study of Lazy Multilabel Classification Algorithms”, Proc. 5th Hellenic Conference on Artificial Intelligence (SETN 2008), Springer, Syros, Greece, 2008. Multilabel classification via calibrated label rankingJohannes Fürnkranz · Eyke Hüllermeier ·Eneldo Loza Mencía · Klaus BrinkerReceived: 1 February 2007 / Revised: 21 April 2008 / Accepted: 12 June 2008 /Published online: 6 August 2008 Springer Science+Business Media, LLC 2008

  2. 文章组织 • 首先介绍多类标分类问题的算法转化方法的一种:MLKNN • 然后介绍多类标分类问题的问题转化方法的: BRKNN, LPKNN,CLR。 • 两类方法的普遍共识: • 问题转化方法: • 忽略类标关联 • 模型数量多 • 需要数据预处理 • 低效 • 算法转化方法: • 采用类标关联 • 单个模型 • 不需要或有限的预处理 • 高效

  3. MLKNN • 介绍一下标记: • 单个样例表示为x ,x的类标号集合为Y,yx为x的类别向量, yx的第l个分量yx(l)在 时为1,否则为0. • N(x):表示训练数据集中x的k个邻居的标记. • Cx(l) :表示x的k近邻中第l个类标为1的个数: • :

  4. MLKNN • 对于测试样例t,预测yt(l).首先计算t在训练样例集中的k个邻居(N(t)),Ct(l)表示t的k个邻居中第l个类标分量为1的个数,而 表示在t的k个邻居中恰好有Ct(l)个邻居的第l个类标分量为1的事件,方便我们用概率的形式处理。 (1) • 上式就可以求出测试样例t的第l个类标分量的值,也可以看出MLKNN算法的关键步骤:怎样求出(1)。

  5. MLKNN • 利用贝叶斯法则: • 可以推出上页(1)式可变为: • 经过上面的转化和化简,KNN算法就可以用来处理多类标数据了.

  6. MLKNN • 是训练数据集的先验信息,是一个1×|Y|的矩阵。 • 计算后验概率 。 这里有一个s需要解释:s是一个平滑参数用于控制统一的先验(uniform prior), s设为1来服从拉普拉斯smoothing。

  7. MLKNN • 测试过程: • 当新来一个测试样例t时,进行如下操作:

  8. C[]0 1 2 3 0 3 2 1 P(E|Hl1)0.1 0.4 0.3 0.2 C’[]0 1 2 3 0 2 2 0 P(E|Hl0) ¼ 3/8 3/8 ¼ MLKNN P(Elj|Hl1) 0.1 0.4 0.3 0.2 … P(Elj|Hl0) ¼ 3/8 3/8 ¼ … 大小为|Y|×(k+1)

  9. MLKNN 新来一个测试样例t: 2,0,3,1,0 找到训练样例集中它的三个邻居:3,9,10。 计算对于类标分量l的Ctl(l):1,2,2. 对照左边的概率表得到:yt(l) P(Elj|Hl1) 0.1 0.4 0.3 0.2 … P(Elj|Hl1) ¼ 3/8 3/8 ¼ …

  10. MLKNN • 使用的度量方法: • Hamming Loss: • One-error: 文章中是这样解释的: 对于一个测试样例xi,以及向对应的类标集合Yi,好的分类器对于属于Yi的输出应该大于其他的不属于Yi的输出: f(xi,ya)>f(xi,yb), ya属于Yi,yb不属于Yi

  11. MLKNN 文章中解释: 如果: f(xi,ya)>f(xi,yb), rankf(xi,ya)<rankf(xi,yb), ya属于Yi,yb不属于Yi • 度量方法: • Coverage: • Ranking Loss: 但是rankf的输出值是怎样定义的? 假设测试实例(xi,Y),Y=(0,1,1,1) 分类器对于xi的输出为(0.5,0.2,0.6,0.7) Yi表示后三个类标{2,3,4}的集合 根据分类器的输出排序{4,3,1,2} {0.7,0.6,0.5,0.2} 分别标上递增的值{1,2,3,4} 一一对应后得到Yi{2,3,4}对应的rankf值为{4,2,1},取最大的值4

  12. MLKNN • 度量方法: • Average Precision: 本度量方法只计算属于Yi的类标的预测值的排序情况上面的式子还可以变成:

  13. MLKNN • 数据集统计信息: • Label cardinality:数据集中每个样例的平均类标号个数: • Label Density:数据集中每个样例的每个样例的平均类标号个数: (m为数据集样例数量,q为总类别数量,Yi为第i个样例的类标集)

  14. MLKNN • 常用数据集介绍: (distinct表示数据集中互不相同的类标集的个数)

  15. MLKNN • 实验结果:

  16. BRKNN • BR是一种比较常见的多类标问题转化方法,它学习q(类标个数)个二分(binary)分类器,每个分类器对应不同的类标。它把原始数据集转化为q个数据集,每个数据集都包含原始数据集的所有样例。 • 文章中讲到的是BR方法与KNN分类算法的结合。 • BRKNN概念上等价于BR和KNN的简单连接,但是他们的简单结合的计算复杂度是KNN的|L|倍,为了避免,BRKNN像KNN一样独立预测每个类标,但是使用的是单步搜索,这样计算复杂度就和KNN持平了。 • BRKNN有两个基于对每个类标confidence scores的变形: • 类标的confidence:一个新样例x,它的K个最近邻的类标集合为 Yj,j=1…K, 类标r的confidence cr: 这个cr就是MLKNN中的Ctl(l),就是x变成t,l变成了r。

  17. BRKNN • 第一个变形是BRKNN-a,它检查BRKNN对新的测试样例x是否输出空的类标集。也就是对每个类标来说x的K个邻居中至少有一半的邻居不包含这个类标,如果这种状况发生时BRKNN-a负责输出具有最大confidence的类标使x包含这个类标(输出为1)。 • 第二个变形为BRKNN-b,对于测试样例x,先计算它的K近邻的平均类标集合大小(Label cardinality ),得到s,然后输出confidence最高的s个类标为1。

  18. LPKNN • LP:label powerset方法:把训练数据集中出现的不同的类标组合当做是单独的类标,把原始数据集转化成新的单类标数据集,然后可以用各种分类算法进行学习,它更像是一个框架。 • LP方法的优点是考虑到类标号之间的关联,得到这个优点的代价是出现更多的类别,导致不平衡的数据分布,以及更复杂的决策边界。 • LPKNN就是LP方法与KNN算法的结合。

  19. LPKNN • 关于LP方法的组合方法:Random K-Labelsets • 把原问题的训练数据集的类标集合分成若干个类标子集,每个子集的大小都为k,若不足则添加一个类标,划分的方法可以为相交或不相交两种。 • 对每个类标子集训练一个LP学习器。 • 预测时,每个学习器分别预测,然后以投票的方式决定最终输出。 • 可以使用这种方法和LPKNN方法结合,来提高学习效果。

  20. 度量方法 • Hamming loss • Accuracy • Subset accuracy: • F-measure: (TPj+TNj)/ (TPj+FPj+ TNj+ FNj)

  21. 度量方法 • micro F-measure: • macro F-measure:

  22. BRKNN,BRKNN-a,BRKNN-b • 实验结果:

  23. BRKNN,LPKNN,MLKNN • 实验结果:

  24. Calibrated label ranking(CLR) • 多类标ranking方法:加入一个虚拟类标,这个类别的角色是为类标集合ranking以后提供一个自然地断点,断点前面的为样例包含的类标,后面的为样例不包含的类标。 • 自然而然的,可以把这种方法和KNN算法结合(使用BR)。 • 在这之前先介绍一下多类标偏好学习问题(preference)

  25. CLR 偏好学习 偏好 绝对偏好 相对偏好 binary Gradual(逐步) 全序偏好 偏序偏好 a,b,c,d 1,1,0,0 a,b, c,d .9, .8, .1, .3 a,b,c,d a > b > c >d a,b,c,d是类标序列

  26. CLR 偏好学习 而CLR是绝对偏好和相对偏好的结合方法:训练时用binary+偏序,预测时用的是偏序偏好学习。以下是图示: 不相关的 相关的

  27. Calibrated label ranking(CLR) • 先介绍一下label ranking: 一个训练样例包含一个x,和一个由许多成对标签组成的类标集合(pairwise preferences over labels)Rx,Rx属于L2,L为类标集合, • 多类标ranking: 我们学习一个模型来关联一个输入x和一个完整类标集 还有一个分割点,来把这个类标集分成两个集合,一个不相关的类标集Nx,和一个相关的类标集Px=L\Nx,这样样例信息就可以转化成为偏好集合: (preferences set)

  28. Calibrated label ranking(CLR) • 校验类标号的引入 (虚拟类标) : 多类标分类问题的偏好集合表示 引入能分开P和N的校验类标

  29. Calibrated label ranking(CLR) 偏好集合表示的一个校验类标ranking问题 (the set of preferences representing a calibrated label ranking problem) 直观上就是多类标ranking和校验类标的结合。

  30. Calibrated label ranking(CLR) • 这个校验类标在学习和分类过程中是怎样操作的? • 文章中没有提到怎样选择这个校验类标,所以自己试了两种方案: • 一是统计每个样例的类标号个数,如果大于|Y|/2,这个类标就赋值为0,否则赋值为1. • 二是统计训练数据集的Label- cardinality,然后统计每个样例的类标个数,如果大于它,就给这个样例的校验类标赋值为0,否则赋值为1.

More Related