基于《机器学习》学习整理- chapter 3

来源:互联网 发布:如何参加淘宝客 编辑:程序博客网 时间:2024/04/30 13:55

基于《机器学习》学习整理- chapter 3

@(机器学习)[线性模型]


      • 基于机器学习学习整理- chapter 3
        • 线性形式
        • 线性回归
        • 对数几率回归
        • 线性判别分析
        • 多分类学习
        • 类别不均衡问题

线性形式

由d个属性的线性组合进行预测的函数,表示如下:

f(x)=w1x1+w2x2+...+wdxd+b

一般用向量形式写成
f(x)=wTx+b

其中w=(w1,w2,...,wd),wb学得后,模型就得以确定。

线性回归

线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。
在线性回归中,最小二乘法就是试图找到一条直线,使得所有样本到直线的欧式距离之和最小。
利用最小哦啊二乘”参数估计”可得到wb的最优解的闭式解

w=mi=1yi(xix_)mi=1x2i1m(mi=1xi)2

b=1mi=1m(yiwxi)

其中x_=1mmi=1xix

广义线性模型

令线性回归模型简写为y=wTx+b,若令模型预测值逼近y的衍生物,如我们认为其所对应的输出标记是在指数尺度上变化,那就可将输出标记的对数作为线性模型逼近的目标,即有:

lny=wTx+b

在形式上仍是线性回归,但是实质上已是再求输入空间到输出空间的非线性函数映射。更一般地考虑单调可微函数g(x),令
y=g1(wTx+b)

这样得到的模型称为”广义线性模型”。其中g(x)称为联系函数。

对数几率回归

对于分类任务,运用广义线性模型,只需找一个单调可微函数将分类任务的真实标记y与线性回归模型的预测值联系起来。

sigmoid函数

对于分类任务,最理想的是阶跃函数unit-step function。但是阶跃函数不连续,因此不能作为广义线性模型中的g(),于是我们期望找到能在一定程度上可近似单位阶跃函数的替代函数,并希望可以单调可微,对数几率函数就是这样一个常用的替代函数.

=11+ez

对数几率函数是一种”sigmoid函数”,它将z值转化为一个接近0或者1的y值。并且其输出在z=0附近变化很陡。将对数几率函数作为g(),得到
y=11+e(wTx+b)

可变化为
lny1y=wTx+b

若将y看作是正例的可能性,那么1-y则是反例的可能性,二者的比值称为odds(几率),反映了x作为正例的可能性。因此被称为对数几率回归。虽然是回归,但是任务却是分类。

优点
- 它是直接对分类可能性进行建模,无需事先假设数据分布,就避免了假设分布不准确带来的问题;
- 它不是仅预测类别,而是得到近似概率的预测,对许多需要利用概率辅助决策的任务很有用;
- 对率函数是任意阶可导的凸函数,有很好的数学性质,很多数值优化算法都可直接用于求取最优解。

线性判别分析

线性判别分析(linear discriminant analysis)LDA,是一种经典的线性学习的方法,在二分类问题上最早由Fisher提出,亦称”Fisher判别分析”。

基本思想

给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能的相近、异类样例的投影点尽可能的远离;在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别。如下:
Alt text

给定数据集D={(xi,yi)}mi=1,yi{0,1},令Xi,ui,i分别表示第i{0,1}类实例的集合、均值向量、协方差矩阵。若将数据投影到直线w上,则两类样本的中心在直线上的投影分别为wTu0wTu1;若将所有样本点都投影到直线上,则两类样本的协方差分别为wT0wwT1w,由于直线是以为空间,因此它们均为实数。
欲使同类样例的投影点尽可能接近,可以让同类样例投影点的协方差尽可能小即wT0w+wT1w尽可能的小;而欲使异类样例的投影点尽可能的远离,可以让类中心的距离尽可能的大,即
||wTu0wTu1||22尽可能的大。同时考虑二者,则可得到欲最大化的目标

J=||wTu0wTu1||22wT0w+wT1w=wT(u0u1)(u0u1)TwwT(0+1)w

定义为类内散度矩阵:
Sw=0+1=xX0(xu0)(xu0)T+xX1(xu1)(xu1)T

定义为类间散度矩阵:
Sb=(u0u1)(u0u1)T

则最大化目标J可改写为:
J=wTSbwwTSww

这个就是LDA欲最大化的目标,即SbSw的广义瑞利商。

确定w

广义瑞利商的分子和分母都是关于w的二次项,因此解与w的长度无关,只与其方向有关。不失一般性,令wTSww = 1,则minwwTSbw,由拉格朗日乘子法,等价于

Sbw=λSww
,其中λ是拉格朗日乘子,令Sbw=λ(u0u1),可得
w=S1w(u0u1)

考虑到数值解的稳定性,在实践中,通常是对Sw进行奇异值分解,即Sw=UVT,这里是一个实对角矩阵,器对角线上的元素是Sw的奇异值,然后再由S1w=V1UT得到S1w.
LDA可从贝叶斯决策理论的角度来阐释,并可证明,当两类数据同先验、满足高斯分布且协方差相等时,LDA可达到最优分类。

多分类学习

不失一般性,考虑N个类别C1,C2,..CN,多分类学习的基本思路是”拆解法”,即将多分类任务拆为若干个二分类任务求解。具体来说,先对问题进行拆分,然后拆出的每个二分类任务训练一个分类器;在测试时,对分类器的预测结果进行集成以获得最终的多分类结果。

拆分策略

经典拆分策略:
- 一对一:将N个类别两两配对,从而产生N(N-1)/2个二分类任务,如将为区分类别CiCj训练一个分类器,该分类器将Ci类样例作为正例,将Cj类样例作为反例,在测试阶段,新样本将同时提交给所有分类器,将得到N(N-1)/2个分类结果,最终结果可通过投票产生。即把被预测的最多的类别作为最终分类结果。
- 一对多:每次讲一个类的样例作为正例,所有其他类的样例作为反例来训练N个分类器。在测试时若仅有一个分类器预测为正类,则对应的类别标记作为最终分类结果。若有多个分类器预测为正类,则通常考虑各分类器的预测置信度,选择置信度最大的类别作为分类结果。
Alt text
容易看出,一对多只需训练N个分类器,而一对一需训练N(N-1)/2个分类器。因此一对一的存储开销和测试时间开销通常比一堆多大,但是一对一的训练时间比较小。
- 多对多:每次将若干个类作为正类,若干个其他类作为反类。其中需要这种策略需要特殊的设计,不能随意取。常用的技术:纠错输出码。工作步骤分为:
- 编码:对N个类别做M次划分,每次划分将一部分类别作为正类,一部分划分为反类,从而形成一个二分类训练集;这样一共产生M个训练集,可以训练出M个分类器。
- 解码:M个分类器分别对测试样本进行预测,这些预测标记组成一个编码,将这个预测编码与每个类别各自的编码进行比较,返回其中距离最小的类别最为最终预测结果。
Alt text

类别不均衡问题

类别不均衡就是指分类任务中不同类别的训练样例数目差别很大的情况。不是一般性,假定正类样例少,反类样例较多,如998:2,那么学习方法只需要返回一个永远将新样本预测为反例的学习器。
类别不平衡学习的基本策略–再缩放
- 直接对训练集里的反类样例进行”欠采样,即去除一些反例使得正反例数目接近、然后再进行学习;
- 是对训练集里的正类样例进行”过采样”,即增加一些正例使得正、反例数目接近,然后再进行学习;
- 直接基于原始训练集进行学习,但在用训练好的分类器进行预测时,将下式嵌入到其决策的过程中,称为”阀值移动”。

y1y=y1y×m+m

其中y1y,反应了正例可能性与反例可能性之比值。m+表示正例数目,m表示反例数目。

问题

其中欠采样法的时间开销远小于过采样法,因为前者丢弃很多反例,使得分类器的训练集远小于初始训练集,而过采样法增加了很多正例,使得训练集大于初始训练集。
过采样法不能简单地对初始正例样本进行重复采样,否则会产生严重的过拟合。欠采样若随机丢弃反例,可能会丢弃一些重要信息

0 0
原创粉丝点击