线性模型(linear model)试图学得一个通过属性的线性组合来进行预测的函数。如,给定由d个属性描述的示例 x=(x1;x2;...;xd) x = ( x 1 ; x 2 ; . . . ; x d ) ,其中 xi x i 是在 i i 个属性上的取值,则线性模型为
下面介绍几种经典的线性模型。
给定数据集 D={(x1,y1),(x2,y2),...,(xm,ym)} D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } ,其中 xi=(xi1;xi2;...;xid),yi∈R x i = ( x i 1 ; x i 2 ; . . . ; x i d ) , y i ∈ R ,( yi y i 是对应的 xi x i 的标签)
线性回归试图学得
广义线性模型在做分类任务时,只需找一个单调可微函数将分类任务的真实标记 y y 与线性回归模型的预测值联系起来。
考虑二分类任务时,输出标记为 y={0,1} y = { 0 , 1 } ,而线性回归模型产生的预测值 z=wTx+b z = w T x + b 是实值,所以要将实值 z z 转换为 0/1 0 / 1 值,最理想的是”单位阶跃函数“(unit-step function)。(若预测值为临界值0时则可以任意判别)。
但问题是单位阶跃函数是不连续的函数,因此不能直接用作 g−(⋅) g − ( ⋅ ) 。故有没有理想的替代函数,既有单位阶跃函数的特点,同时是单调可微的呢?对数几率函数(logistic function)就是这样一个常用的替代函数:
性别判别分析(Linear Discriminant Analysis)简称LDA,是一种经典的线性学习方法,它的思想很简单:给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近、异类样例的投影点尽可能远离;在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别。
令给定的数据集 D={(xi,yi)}mi=1,yi∈{0,1} D = { ( x i , y i ) } i = 1 m , y i ∈ { 0 , 1 } 。
令 Xi、μi、Σi X i 、 μ i 、 Σ i 分别代表第 i∈{0,1} i ∈ { 0 , 1 } 类示例的集合、均值向量、协方差矩阵。
则两类样本在直线上的投影分别为 wTμ0 w T μ 0 和 wTμ1 w T μ 1 。
两类样本的协方差分别为 wTΣ0w w T Σ 0 w 和 wTΣ1w w T Σ 1 w 。
由于直线是一维空间(于直线本身考虑,直线就是一维),因此 wTμ0 w T μ 0 、 wTμ1 w T μ 1 、 wTΣ0w w T Σ 0 w 和 wTΣ1w w T Σ 1 w 均为实数。
要使同类样例的投影点尽可能接近,可以让同类样例的投影点的协方差尽可能小,及 wTΣ0w+wTΣ1w w T Σ 0 w + w T Σ 1 w 尽可能小;要使异类样例的投影点尽可能远离,可以让类中心之间的距离尽可能大,即 ||wTμ0−wTμ1||22 | | w T μ 0 − w T μ 1 | | 2 2 尽可能大。同时考虑两者,则得到最大化目标:
在很多情况下,我们会利用二分类学习器来解决多分类问题。不失一般性,考虑 N N 个类别 C1,C2,...,CN C 1 , C 2 , . . . , C N ,多分类学习的基本思路是“拆解法”,即将多分类任务拆为若干个二分类任务求解。
最经典的拆分策略有三种:“一对一”(One vs. One,简称OvO)、“一对其余”(One vs. Rest,简称OvR)和“多对多”(Many vs. Many,简称MvM)。
给定数据集D
D={(x1,y1,(x2,y2),...,(xm,ym))},yi∈{C1,C2,...,CN} D = { ( x 1 , y 1 , ( x 2 , y 2 ) , . . . , ( x m , y m ) ) } , y i ∈ { C 1 , C 2 , . . . , C N } 。
当使用OvO拆分时,将这 N N 个类别两两配对,从而产生 N(N−1)/2 N ( N − 1 ) / 2 个二分类任务。在训练阶段,OvO将为区分 Ci C i 和 Cj C j 训练成一个分类器,该分类器把 D D 中的 Ci C i 类样例作为正例, Cj C j 类样例作为反例。在测试阶段,新样本将同时提交给所有分类器,于是得到 N(N−1)/2 N ( N − 1 ) / 2 个分类结果,最终把预测的最多的类别作为最终分类结果。
当使用OvR拆分时,在训练阶段,将一个类的样例作为正例,所有其它类的样例作为反例来训练 N N 个分类器。在测试阶段,新样本将同时提交给所有分类器,若仅有一个分类器预测为正类、则对应的类别标记作为最终分类结果;若有多个分类器预测为正类,则通常考虑各分类器的预测置信程度,选择置信度最大的类别标记作为分类结果。
对比OvO和OvR可以看出,OvR只需训练 N N 个分类器,而OvO需训练 N(N−1)/2 N ( N − 1 ) / 2 个分类器,因此,OvO的存储开销和测试时间开销通常比OvR更大。但在训练时,OvR的每个分类器均使用全部的训练样例,OvO的每个分类器仅使用两个类的样例,因此,在类别很多时,OvO的训练时间开销通常比OvR小。但预测性能在多数情况下两者差不多。
MvM是每次将若干个类作为正类,若干个其它类作为反类。它的正反类构造必须有特殊的设计,不能随便选取。
“纠错输出码”(Error Correcting Output Codes,简称ECOC)是一种最常用的MvM技术。其工作工程主要分为两步:
编码:对 N N 个类别做 M M 次划分,形成一个二分类训练集,这样产生 M M 个训练集,可训练出 M M 个分类器。
解码: M M 个分类器分别对测试演变进行预测,这些预测标记组成一个编码。将这个预测标记与每个类别各自的编码进行比较,返回其中距离最小的类别作为最终预测结果。
类别划分通过“编码矩阵”(coding matrix)指定,常见有二元码(只有正类和反类)和三元码(正类反类和停用类)。在测试阶段,ECOC编码对分类器的错误有一定的容忍和修正能力。下图是一个示意图:
上图(a)的若取海明距离(在信息编码中,两个合法代码对应位上编码不同的位数称为码距,又称海明距离)最小,又或者取欧氏距离最小的预测结果是 C3 C 3 。
类别不平衡(class-imbalance)就是指分类任务中不同类别的训练样例数目差别很大的情况。在使用OvR、MvM策略后产生的二分类任务仍可能出现类别不平衡现象。不失一般性,我们假设正类样例较少,反类样例较多。
从线性分类器的角度讨论,在用 y=wTx+b y = w T x + b 对新样本 x x 进行分类时,通常将预测出来的y值与阀值比较,例如当 y>0.5 y > 0.5 时判别为正例,否则反例。故: