【西瓜书】周志华《机器学习》学习笔记与习题探讨(三)③

【西瓜书】周志华《机器学习》学习笔记与习题探讨(三)③

【第3章 线性模型】

〖一、知识点归纳〗


五、多分类学习

多分类学习有两个思路。

一种是将二分类学习方法推广到多分类,比如上一节讲到的LDA。

另一种则是利用二分类的学习器来解决多分类问题。

下面主要讨论第二种。


1、拆解法与拆分策略

拆解法:将多分类任务拆解成为若干个二分类任务求解。

拆解法步骤:

1.通过拆分策略对问题进行【拆分】

2.为拆分出的每个二分类任务【训练】一个分类器;

3.对各个分类器的结果进行【集成】,以获得多分类结果。

(牢记这三个关键词。)

最经典的拆分策略有三种,即“一对一(OvO)”、“一对其余(OvR)”、“多对多(MvM)”。

多分类学习有N 个类别 C_1,C_2,...,C_N ,给定数据集 D=\{(\boldsymbol x_1,y_1),(\boldsymbol x_2,y_2),...,(\boldsymbol x_m,y_m)\},y_i\in\{C_1,C_2,...,C_n\}

1、OvO:

N 个分类分别两两配对,从而【拆分】N(N-1)/2 个二分类任务;【训练】时为了区分 C_iC_j 这两个分类,这 N(N-1)/2 个分类器中的一个将 C_i 作为正例, C_j 作为反例;测试时候将新样本同时提交给所有分类器,将得到 N(N-1)/2 个分类结果,【集成】的方法是通过投票在这些结果中选出最终结果。

2、OvR:

N 个分类中的1个类拿出来作为一个分类器的正例,其余均设置为反例,从而【拆分】成 N 个分类任务;【训练】得到 N 个分类结果;【集成】的方法是考虑各被判为正例的分类器的置信度,选择置信度大的类别标记作为分类的结果。(如只有一个,直接选择)

OvO与OvR示意图

3、MvM:

MvM是OvO和OvR的一般形式,反过来说,OvO和OvR是MvM的特例。

MvM每次将若干个类作为正类,若干个其他类作为反类。但其构造必须有特殊的设计,不能随意选取。常用的一种MvM技术是“纠错输出码”(ECOC)技术。

2、“纠错输出码”(ECOC)技术

ECOC过程主要分两步:

编码:对 N 个类进行 M 次划分,产生 M 个分类器;

解码M 个分类器对测试样本进行预测,得到 M 个预测标记,将其组成编码;这个编码与 N 个类别各自的编码进行比较,返回其中距离最小的类别作为最终预测的结果。

编码形式又分为二元码和三元码,前者指定“正类”、“反类”,后者又多一个“停用类”。

以二元ECOC码为例:如下图,首先,将 NN=4 )个类通过设计构造成 MM=5 )个分类器( f_1,f_2,f_3,f_4,f_5 ),每个分类器为每个类分配了一个标记结果( -1+1 ),这样一来,每一个类 C_i,i\in\{1,N\} 都获得了一个 M 位的编码,这个编码就是【各类所对应的编码】。

当有一个测试例 A 的时,先将 A 依照次序放入 M 个分类器中,得到了 M 个分类标记结果(-1,-1,+1,-1,+1);再将这 M 个标记结果编成一个纠错输出码(-1-1+1-1+1);最后去和【各类所对应的编码】进行比较海明距离或欧式距离,距离最短的对应编码对应的分类就是结果。(图中结果为 C_3

ECOC编码示意图

纠错输出码还有一个功能是为分类器的错误进行修正。比如正确的分类结果是(-1,-1,+1,-1,+1),但如果分类器 f_2 出了错误,得到的结果就是(-1,+1,+1,-1,+1)。但通过这一套编码,可以让最终的结果仍为 C_3

分类器越多,ECOC编码越长,纠错能力越强,但开销越大;而且,如果分类有限,那么可组合的数目也有限,码长超过一定程度,也没有意义了。

同等长度的编码,【各类所对应的编码】之间计算出的距离越远,编码的纠错能力越强,但当码长到达一定程度时,无法得出最优解。


六、类别不平衡问题

以二分类问题为例,该问题一般指的是训练集中正负样本数比例相差过大(比如正例9998个,负例2个),其一般会造成以下的一些情况:

1. 类别少的误判惩罚过低,导致有所偏袒,当样本不确定时倾向于把样本分类为多数类。

2. 样本数量分布很不平衡时,特征的分布同样会不平衡。

3. 传统的评价指标变得不可靠,例如准确率。

而在多分类问题中,尽管原始训练集中可能不同类别训练样本数目相当,通过OvR、MvM进行拆分时也有可能会造成上述情况,所以类别不平衡问题亟待解决。

解决类别不平衡问题一个基本思路是“再缩放”。

线性模型解决二分类问题中,我们通常将得到一个预测值 yy 的衍生物,将其与某个固定值比较,来判断其为正例还是反例。

如果说将 y 看做样本 \boldsymbol x 作为正例的可能性,那么 1-y 就是其成为反例的可能性。

两者的比值称为“几率”,反映了样本作为正例的相对可能性。

几率=\frac{正例可能性}{反例可能性}=\frac{y}{1-y}

正反例数目相同时,当其大于1时,可预测为正例,反之预测为反例;

但当正反例数目不同时, m^+ 代表正例数目, m^- 代表反例数目,观测几率应是 \frac{m^+}{m^-} ,而只要分类器的预测几率 \frac{y}{y-1} 大于观测几率,就应判定为正例。

故,实际情况需对决策进行调整,变为: \frac{y'}{y'-1}=\frac{y}{y-1}\times \frac{m^-}{m^+}


专栏:

安立桐乱谈编程

西瓜书系列合集:

【西瓜书】周志华《机器学习》学习笔记与习题探讨(一)

【西瓜书】周志华《机器学习》学习笔记与习题探讨(一)续

【西瓜书】周志华《机器学习》学习笔记与习题探讨(二)①

【西瓜书】周志华《机器学习》学习笔记与习题探讨(二)②

【西瓜书】周志华《机器学习》学习笔记与习题探讨(二)③

【西瓜书】周志华《机器学习》学习笔记与习题探讨(二)④

【西瓜书】周志华《机器学习》学习笔记与习题探讨(三)①

【西瓜书】周志华《机器学习》学习笔记与习题探讨(三)②

发布于 2017-11-28

文章被以下专栏收录