线性模型
1 基本形式
线性模型形式简单、易于建模,却蕴含这机器学习的一些重要思想。**许多功能强大的非线性模型可以在线性模型的基础上通过引入层次结构或者高维映射而得。
w直观的表达了各个属性在预测上的重要性,因此线性模型有很好的可解释性。
2 线性回归
视图学得一个线性模型来尽可能准确的预测实际的输出标记。
我们试图让均方差最小:
利用均方差最小化来对模型求解的方法称为最小二乘法。在线性模型中,最小二乘法就是试图找到一条直线使得所有样本到直线的距离和最小。
为了求解最小的w、b,我们对E(w,b)求导:
最终得到闭式解:
我们也可以令模型预测值逼近y的衍生,例如:
它实际是让ewTx+b逼近y,虽然形式上是线性回归,但是实际是求取输入空间到输出空间的非线性函数映射。这里的对数函数起到了将线性回归模型的预测值与真实标记相联系的作用。
上述模型为广义线性模型,其中g(.)称为联系函数。
3 对数几率回归
对于分类问题,我们需要额外的寻找一个单调可微函数将分类任务的真实标记y与线性回归模型的预测值联系起来。
以二分类问题为例,最理想的是单位阶跃函数:
但是阶跃函数不连续,所以不能用来代替式3.15中的g,所以我要找到一个单调可微的函数来替代阶跃函数,对数几率函数就是一个常用的替代函数。
对数几率函数是一种sigmoid函数,将其带入广义线性模型得到
若将y视为x为正例的可能性,1-y为其为反例的可能性,两者的比值为x为正例的相对可能性。对于几率取对数得到的就是“对数几率”。
所以分类问题中的y实际是用线性模型的预测结果去逼近真是标记的对数几率,所以其对应模型称为:对数几率回归(logistic regression)(也有称逻辑回归,但是与英文含义相差较大)。虽然名字中带回归,但实际是一种分类学习方法。
4 线性判别分析(LDA/fisher判别)
LDA思想是给定训练样本,将样本投影到一条直线上,使得同类的投影点接近,不同类的远离。对新的样本进行分类时,将其投影到直线上,根据其投影位置来确定类别。
在概率论和统计学中,协方差用于衡量两个变量的总体误差。而方差是协方差的一种特殊情况,即当两个变量是相同的情况。
LDA要使得类间最大化,类内最小化,则其大化目标是:
5 多分类学习
很多二分类方法可以直接推广到多分类中,但是更多情况下,我们是基于一些策略将二分类学习器用于解决多分类问题。
多分类问题的基本思路是拆解法,将多分类问题拆为多个二分类问题进行求解。
给定数据集D = {(x1,y1),(x2,y2)...,(xm,ym)},yi∈{C1,C2...CN}
一对一: One v One,将N个类别的数据集两两配对,从而产生N(N-1)/2个分类任务,测试阶段,将新样本交给所有分类器,得到N(N-1)/2个分类结果,把被预测得最多的类别作为最终分类结果。
一对多:One v Rest.每次将一个类的样例作为正例、其他所有类的样例作为反例来训练N个分类器。在测试时如果有一个分类器预测为正,则对应的类别标记作为最终分类结果。
一对多训练N个分类器,但一对一训练N(N-1)/2分类器,一对一的存储开销和测试时间开销通常比一对多更大。
但是在训练时一对多的每个分类器均使用全部训练数据,而一对一只是用两个类别的训练数据,所以当类别很多时,一对一开销比一对多小。测试性能取决于具体的数据分布。
- 多对多:每次选若干个正例,若干个反例,一对多、一对一都是多对多的特例。多对多的正反类构造需要特殊的设计,常用的是纠错输出码技术ECOC,纠错输出码对分类器的错误有一定的容忍和修正能力。ECOC编码越长,纠错能力越强。
编码:对N个类别做M次划分,每次都将一部分化为正,形成一个二分类的训练集;共产生了M个训练集,可以训练M个分类器。
解码:M个分类器分别对样本进行预测,这些预测标记组成编码。将预测的编码与每个类的自编码进行比较,返回距离最小的类作为结果。
下图中,f1分类器将第二类作为正例,其它为反例;f2分类器将1、3类作为正例,其它为反例...
结果与C3最为接近,所以判断为类别3.
6 类别不平衡问题
指训练样例中不同类别数目差很大的情况。
在我们使用y = wTx+ b对新样本x进行分类时,实际上是用y值与一个阈值进行比较,通常在y>0.5的时候,将x视为正例。y实际表达的是一种正例的可能性。
几率y/1-y则反应了正例可能性与反例可能性的比值,阈值为0.5的时候表明分类器认为正例反例可能性相同,当y/1-y > 1时为正例。
当训练集正例反例数目不同时。
所以需要令
这就是处理类别不平衡学习的基本策略:再缩放
现有的做法有三类:
- 欠采样:除去反例,使得正反例数目相近。
- 过采样:增加正例,使得正反例数据相近。
- 阈值移动:基于原始数据集进行学习训练,在用训练好的分类器进行预测时,将上式嵌入其中。