3.1 基本形式
给定由d个属性描述的示例x=(x1; x2; x3; … ; xd)。线性模型试图学得一个通过属性的线性组合来进行预测的函数,即
3.2 线性回归
线性回归试图学得一个线性模型尽可能准确地预测实值输出标记。
对于如何确定w和b,均方误差是回归任务中最常用的性能度量,因此我们可以试图让均方误差最小化。
均方误差它对应了常用的欧几里得距离或简称欧氏距离。基于均方误差最小化来进行模型求解的方法为最小二乘法。在线性回归中,最小二乘法就是试图找到一条直线,使所有样本到直线上的欧氏距离之和最小。
更一般的情形是由多个属性组成的样本数据集,此时称为多元线性回归。
3.3对数几率回归
若要做分类任务。只需找一个单调可微函数将分类任务的真实标记y与线性回归模型的预测值联系起来。考虑一个二分类任务,其输出标记y∈{0,1},而线性回归模型产生的预测值z=(w^T)x+b是实值,于是我们将其转化为0/1值。最理想的是单位阶跃函数如下。
很显然,单位阶跃函数并不连续。于是我们希望在一定程度上近似单位阶跃函数的“替代函数”,并希望它单调可微。对数几率函数正是这样一个常用的替代函数y = 1 / (1 + e ^-z),对数几率函数是一种“Sigmoid函数”。示意图如下:
3.4 线性判别分析
线性判别分析(Linear Discriminant Analysis,简称LDA)是一种经典的线性学习方法,在二分类问题上由Fisher提出,亦称“Fisher判别分析”。
LDA的思想非常朴素:给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近、异类样例的投影点尽可能远离;在对新样本进行分类时,将其投影到同样的这条直线上,在根据投影点的位置来确定新样本的类别。示意图如下:
3.5 多分类学习
现实中常遇到多分类学习任务,有些二分类学习方法可直接推广到多分类。
多分类学习的基本思路是拆解法,即将多分类任务拆为若干个二分类任务求解。
最经典的拆分策略有三种:“一对一”(One vs One,简称OvO)、“一对其余”(One vs Rest, 简称OvR)和“多对多”(Many vs Many,简称MvM)。
给定数据集D={(x1, y1), (x2, y2), …, (xm, ym)}。yi∈{C1, C2, … , CN).
OvO将这N个类别两两配对,从而产生N(N-1)/2个二分类任务。
OvR则是每次将一个类的样例作为正例、所有其他类的样例作为反例来训练N个分类器。
示意图如下:
容易看出,OVO需要训练N(N-1)/2个分类器,OVR只需要训练N个分类。因此OVO的存储开销和测试时间消耗都比OVR更大。但在训练时,OvR的每个分类器均使用全部训练样例,而OvO的每个分类器仅用到两个类的样例,因此,在类别很多时,OvO的训练时间开销通常比OvR更小。至于预测性能,则取决于具体的数据分布,在多数情形下两者都差不多。
MvM是每次将若干个类作为正类,若干个其他类作为反类,OvO和OvR都是MvM的特例。
MvM的正反类构造必须有特殊的设计,不能随取。这里用到一种常用的MvM技术:“纠错输出码”(Error Correcting Outputs Codes,简称ECOC)。ECOC是将编码的思想引入类别拆分,并尽可能在解码过程中具有容错性。ECOC工作过程主要分为两步:
编码:对N个类别做M次划分,每次划分将一部分类别划为正类,一部分划为反类,从而形成一个二分类训练集;这样一共产生M个训练集,可以训练出M个分类器。
解码:M个分类器分别对测试样本进行预测,这些预测标记组成一个编码。将这个预测编码与每个类别各自的编码进行比较,返回其中距离最小的类别作为最终预测结果。
类别划分通过“编码矩阵”指定,常见的有二元码和三元码。前者将每个类别分别指定为正类和反类,后者在正,反类之外还可以指定停用类。
纠错输出码之所以称为纠错输出码,是因为在测试阶段,ECOC编码对分类器的错误有一定的容忍和修正能力,某个分类器出错时仍能产生正确的最终结果。一般的,同一个学习任务,ECOC编码越长,纠错能力越强,但是所需训练的分类器也越多,开销会增大;另一方面,对有限类别数,可能的组合数目是有限的,码长超过一定范围后就失去了意义。
3.6 类别不平衡问题
类别不平衡就是指分类任务中不同类别的训练样例数目差别很大的情况。例如正类样例较小,反类样例较多。
现有如下三个解决类别不平衡问题的常见做法
1、对反类样例进行欠采样,即去除一些反例使得正反例数目接近
2、对正类样例进行过采样,即增加一些正例使正、反例数目接近(不是重复采样,会造成严重的过拟合)
3、基于原始训练集进行学习,但在用训练好的分类器进行预测时,将下式嵌入其决策过程中,称为阈值移动