Chapter 3 Linear Model

第三章、线性模型

&3.1 基本形式

*f(x)=(w^T)*x+b其中,w=(w1,w2,…,wd),x=(x1,x2,…,xd);
*线性模型形式简单,易于建模,有很好的可解释性,对于机器学习来说十分基本且重要
*许多功能强大的非线性模型可在线性模型的基础上通过层级结构和高维映射而得

&3.2 线性回归

*数据集D={(x1,y1),(x2,y2),…,(xm,ym)},其中xi=(xi1,xi2,…,xid)
对数据中的离散属性,若有序可将其离散化,若无序则可以用one-hot编码
确定w和b的关键在于衡量f(xi)与y之间的差别。其中最常用的是均方误差(用到了欧氏距离):
(w
,b
) = arg min(∑(f(xi)-y)^2)(一元回归中用最小二乘法,将式子分别对w和b求导等于零)
*当处理多元线性回归时,把w和b吸入向量形式w:
w=(XTX)(-1)XTy,其中(XTX)为满秩矩阵或正定矩阵
*当然现实中往往难以使(X^TX)满秩,某些项目中甚至存在变量数多于样例数,导致X的列数多于行数,此时可求解出多个
w,他们都能使MSE最小化。在其中做出选择,往往需要由学习算法决定,常见的做法是引入正则化项。
*广义线性模型:f(x)=g(-1)((wT)*x+b),其中,对数线性回归是个g(.)=ln(.)的特例

&3.3 对数几率回归

*对于二分类问题,我们需要的输出标记为y∈{0,1},因此,我们需要将线性回归模型产生的预测值转换为0/1
最理想的转换方式为“单位跃阶函数”(Heaviside函数,unit-step function),即z>0为正例,z<0为反例,z=0则任意
但是单位跃阶函数不连续,不能直接用作g^(-1)(.)因此引入在一定程度上可以近似单位阶跃函数的“替代函数”(surrogate function)
并且单调可微,那就是我们常见的Sigmoid函数中的对数几率函数(logistics function):
y=1/(1+e^(-z))
该式可转换为:ln(y/(1-y))=z=(w^T)*x+b,其中我们把y看做所求结果的正例可能性,相应的1-y则为反例可能性,两者的比值称为比率,
所以该函数称为对数几率函数。
*综上,我们了解到我们构造这样的广义线性模型,可以用其预测结果去逼近真实标记的对数几率。对应的模型称为“对数几率回归”(Logistic regression)
当然,实际上它服务的是分类学习方法。他的优点有:它直接对分类可能性进行建模,无需对数据的先验分布,这对需用概率辅助决策的任务很有用。
对于对数几率函数的变式,我们可以求出后验正例可能性:p(y=1|x)=(e((wT)x+b))/(1+e((wT)x+b));
反例可能性:p(y=0|x)=1/(1+e((wT)x+b));那么,在呈现这2个式子时,为了求解w和b,我们用极大似然法来估计。对率回归模型最大化
“对数似然”:
l(w,b)=∑ln(p(yi|xi;w,b)),再用β=(w;b),将该似然项重写为p(yi|xi;w,b)=yip1(xi;β)+(1-yi)p0(xi;β)
通过将其的最大化转换为最小化:l(β)=∑(ln(1+eT
xi))-yi
β
xi)(该式为关于β的高阶可导连续凸函数,)
利用凸优化理论,随后利用梯度下降法或牛顿法等求出β。λx+(1−λ)y∈X,对于任意的 λ∈(0,1)
牛顿法:初始点出发,找切线于与x轴的交点,以此为下一初始点继续构造切线,重复迭代直到导数为0或迭代至最大(最好是凸函数不然初始点的选择
可能)造成越找越错
梯度下降法:从初始点开始,找该点的梯度向量(就是函数变化增加最快的地方),要梯度向量具体来说,对于函数f(x,y),在点(x0,y0),
沿着梯度向量的方向就是(∂f/∂x0, ∂f/∂y0)T的方向是f(x,y)增加最快的地方。或者说,沿着梯度向量的方向,更加容易找到函数的最大值。
反过来说,沿着梯度向量相反的方向,也就是 -(∂f/∂x0, ∂f/∂y0)T的方向,梯度减少最快,也就是更加容易找到函数的最小值。

&3.4 线性判别分析(Linear Discriminant Analysis,LDA)

*区分LDA与Fisher判别分析在于LDA假设了各类样本的协方差矩阵相同且满秩
*LDA的主要思想就是给定训练样例集,将其投影到一条直线上使其能有效分类,分类的效果,取决于类内散度矩阵与类间散度矩阵的广义瑞利商,越大越好
确定投影向量w的方法:规定类内散度矩阵投影到直线上的值为1,求负的类间散度矩阵的最小值,其中有一点,类间散度矩阵Sbw的方向为两类在
直线上的中心点所呈现出的方向。
*Bayes角度:
*多分类任务中,引入全局散度矩阵St。
*由于LDA往往具有映射性,所以常常也被视为一种经典的监督将为技术。

&3.5 多分类学习

*拆分策略一般包括:OvO:将N个类别两两分类,从而产生N(N-1)/2个二分类任务,OVR:每次将一个类别作正例,其他类别一起做为反例去训练分类器,;
若测试结果只有一个正例,则将对应的类别标记为最终结果,若有多个分类器预测为正类,则考虑选择预测置信度最大的。可见OvR只训练N个分类器;
*MvM:上述两种实际上是MvM的特例,MvM每次从所有类中选取若干类为正,若干类为负进行分类训练,不过MvM的正反类构造必须有特殊的设计,常用的技术为
“纠错输出码”(Error Correcting Output Codes,ECOC),即第一步:编码:做M次二分类划分,这样一共产生M个训练集,M个分类器;第二步:解码:
用M个分类器分别对测试样本进行预测,将其结果组成一个编码。将该编码与各自编码比较,返回距离最小的类别即是该测试集类别。

&3.6 类别不平衡问题(class-imbalance)

*若不同类别的训练样例数目不相关,我们之前用的分类方式可能就显得鸡肋了。类别不平衡问题就是指分类任务中不同类别的训练样例数目差别很大的问题。
*解决方法:设训练集中有m+个正例,m-个反例,于是,用该训练集训练出的分类器预测几率(y/1-y)>(m+/m-)才预测为正例。为此,我们需要使用一个基本策略
——‘再缩放’(rescaling),however,实际上我们连保证样本是总体的无偏采样都做不到,所以再缩放往往是很困难的,这又需要我们引入如下三种技术:
1)欠采样,即去除一些反例是正反例数目接近
2)过采样,增加样本中的正例数目
3)基于原始训练集,但再缩放强行使用

猜你喜欢

转载自blog.csdn.net/qq_23129193/article/details/84779081
今日推荐