3.1基本形式
线性模型旨在学得一个通过属性(特征)的线性组合来进行预测的函数
向量形式可写为
3.2线性回归
1.线性回归旨在学得一个线性模型以尽可能准确地预测。
2.对于离散特征,若有序(“高”与“矮”),可通过连续化转化为连续值;若无序(“西瓜”与“南瓜”),则通常转化为k维向量。
3.线性回归为尽可能准确地预测实值输出标记,需要确定w和b,使得f(x)与y差别尽可能小,即使均方误差误差最小化。可以使用最小二乘参数估计的方法得到w和b的最优解,具体推导过程如下:
4.若样本有多个特征描述,则线性回归可称为多元线性回归。同样可以利用最小二乘对向量w和b进行估计,具体推导过程如下所示:
5.线性模型有丰富的变化,例如对数线性模型,而其是广义线性模型的特例。
其中g()称为联系函数(link function),当g()=ln()时,模型即为对数线性回归 模型。
3.3对数几率回归
1.对数几率回归也常称为逻辑回归,在线性模型的基础上套一个映射函数来进行分类任务,其表达式为
可变化为
2.y/(1-y)称为“几率”,反映了x作为正例的相对可能性。
3.优点:可以直接对分类可能性进行建模,无需事先假设数据分布,避免了假设分布不准确所带来的问题;可以得到近似概率预测,对许多需利用概率辅助决策的任务很有用;对率函数是任意阶可导的凸函数,许多数值优化算法可直接用于求取最优解。
4.可利用极大似然法来估计w和b,具体推导过程如下所示:
3.4线性判别分析
1.线性判别分析(LDA)的基本思想是给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近,异类样例的投影点尽可能远离;在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别。
2.给定数据集,,令分别表示第i类的集合、均值向量、协方差矩阵。欲使同类样例的投影点尽可能接近,可以让同类样例投影点的协方差尽可能小,即尽可能小;欲使异类样例的投影点尽可能远离,可以让类中心之间的距离尽可能大,即尽可能大。同时考虑两者,最终得到要最大化的目标函数
推导过程如下
定义“类内散度矩阵”
定义“类间散度矩阵”
那么目标函数可重写为
3.需利用拉格朗日乘子法确定w,推导过程如下
4.LDA可推广到多分类任务中。
3.5多分类学习
多分类学习的基本思路是“拆解法”,即将多分类任务拆为若干个二分类任务求解,再为每个二分类任务训练一个分类器,最后在测试时,对多个分类器的预测结果进行集成以获得最终的多分类结果。最经典的拆分策略有三种,分别是“一对一”(OvO)、“一对其余”(OvR)、“多对多”(MvM)。
1.OvO
给定数据集D,共有N个类别,OvO将这N个类别两两配对,产生N(N-1)/2个二分类任务。比如OvO为区分类别Ci和Cj训练一个分类器,该分类器可把Ci类样例作为正例,Cj类样例作为反例。在测试阶段,新样本将同时提交给所有分类器,从而得到N(N-1)/2个分类结果,预测得最多的类别作为最终分类结果。
2.OvR
给定数据集D,共有N个类别,OvR 每次将一个类的样例作为正例,所有其他类的样例作为反例来训练 N 个分类器.在测试时若仅有一个分类器预测为正类,则对应的类别标记作为最终分类结果。若有多个分类器预测为正类,则通常考虑各分类器的预测置信度,选择置信度最大的类别标记作为分类结果。下图为西瓜书中OvO和OvR示意图。
3.OvO与OvR的比较
虽然OvO需要训练的分类器数量比OvR的多,但在训练时,OvR 的每个分类器均使用全部训练样例,而 OvO 的每个分类器仅用到两个类的样例。因此,在类别很多时,OvO 的训练时间开销通常比 OvR 更小。至于预测性能,则取决于具体的数据分布,在多数情形下两者差不多。
4.MvM
MvM 是每次将若干个类作为正类,若干个其他类作为反类,OvO和OvR是其特例。“纠错输出码”(ECOC)是一种常用的MvM技术,将编码的思想引入类别拆分,并尽可能在解码过程中具有容错性,其过程主要分为两步:
- 编码:对 N 个类别做 M 次划分, 每次划分将一部分类别划为正类,一部分划为反类,从而形成一个二分类训练集;这样一共产生 M 个训练集,可训练出 M 个分类器。
- 解码:M 个分类器分别对测试样本进行预测,这些预测标记组成一个编码.将这个预测编码与每个类别各自的编码进行比较,返回其中距离最小的类别作为最终预测结果。
3.6类别不平衡问题
类别不平衡是指分类任务中不同类别的训练样例数目差别很大的情况,这会导致分类器没有价值。解决类别不平衡问题的一个基本策略是“再缩放”,当训练集中正、反例的数目不同时,令 m+表示正例数目,m-表示反例数目,则观测几率是m+/m-,我们将观测几率代表真实几率(因为通常假设训练集是真实样本总体的无偏采样),所以当分类器的预测几率高于观测几率即可判断为正例,即
然而“再缩放”实践起来比较艰难,因为"训练集是真实样本总体的无偏采样"这个假设往往并不成立。现在一般采用三种做法:
(1)对训练集里的反例进行"欠采样" ,即去除一些反例使正、反例数目接近,再进行学习。
(2)对训练集里的正例进行"过来样" ,即增加一些正例使正、反例数目接近,再进行学习。
(3)直接基于原始训练集进行学习,但在用训练好的分类器进行预测时,将下式嵌入到其决策过程中,称为"阈值移动" 。