线性模型总结

前言

        线性模型是机器学习的基础,其数学模型、思想等在机器学习中均有巨大的价值,因此在此对周志华老师《机器学习》第三章线性模型相关内容做出精简的总结。

 一、线性模型基本形式

        线性模型一章的基础。

        给定由d个属性描述(特征)的样本x=(x1,x2,……,xd),其中xi是x在第i个属性上的取值,线性模型试图学得一个通过属性的线性组合来进行预测的函数

f(\vec{x})=w_{1}x_{1}+w_{2}x_{2}+\cdots +w_{d}x_{d}+b

一般用向量形式写成:

 f(\vec{x})=\vec{w}^{T}\vec{x}+b

其中\vec{w}b学得之后即可确定。

        线性模型的概念很简单,但却是接下来线性回归与线性分类的基础,从线性模型的基本概念中,我们可以得到以下几点:

1、线性模型易于建模,我们可以以线性模型为基础进行非线性拟合。

2、由于\vec{w}的存在,线性模型有着很好的可解释性,如\vec{w}表达了\vec{x}各分量在预测时的重要性。

二、线性回归

        本章讨论的主要是有监督学习。

        对于有监督学习,总结如下:

                训练对象:数据集D

D:\left \{ (\vec{x}_{1},y_{1}) , (\vec{x}_{2},y_{2}) ,\cdots , (\vec{x}_{n},y_{n}) \right \}

                        其中\vec{x}_{i}为d维样本,{y_{i}}为一维标签,用于指明样本所属类别。

                训练目标:求得\vec{w},b,使

 f(\vec{x}_{i})\simeq y_{i}

        接下来我们将讨论最基础的线性回归。

1、线性回归的最基础模型

        继承上面的有监督学习部分,对于线性回归的最基础模型,求解/训练\vec{w},b的方法可以概括为:选定某种性能度量方法,求使之最优时的\vec{w},b

性能度量方法
有监督学习错误率/精度
均方误差
查准率、查全率、BEP、F1
ROC、AUC
代价敏感错误率、代价曲线
无监督学习紧密性(CP)
间隔性(SP)
戴维森堡丁指数(DBI)
邓恩指数(DVI)

我们选择均方误差为例:

均方误差:

 E=\sum_{i=1}^{n}(f(x_{i})-y_{i})^{2}

        当f(x_{})y差别最小时,均方误差最小,因此我们试图训练/求解\vec{w},b使均方误差最小化 。

 具体写为:

 (\vec{w}^{*},b^{*})=argmin E_{(w,b)}

        在线性回归时,其几何意义是:找到一条直线,是所有样本到直线上的欧氏距离之和最小。

那么如何使其最小?

        最简单的,我们对E(\vec{w},b)\vec{w},b分别求偏导,当其为0时,有E(\vec{w},b)最小,此时的\vec{w},b

即是我们需要的\vec{w}^{*},b^{*}

        在求导前,我们可能需要先对数据进行处理,使之便于计算。

我们使:

\hat{w}=(\vec{w};b)

X=\begin{bmatrix} x\vec{}_{1}^{T} & 1\\ x\vec{}_{2}^{T}& 1\\ \vdots & \vdots \\ x\vec{}_{n}^{T} & 1 \end{bmatrix}

y=\begin{bmatrix} y_{1}\\ y_{2}\\ \vdots \\ y_{n}\end{bmatrix}

注:'";"表示数组竖直堆叠

为了便于理解,我们列出各个变量的大小:

\vec{w}系数向量,我们可称之为特征向量/特征矩阵d*1
\hat{w}合并w、b,w在上,b在下(d+1)*1
y标签数值
\vec{y}所有标记的向量形式n*1
\vec{x}_{i}有d维特征的样本d*1
X见公式,一行为[一个样本的d维特征,1]n*(d+1)

明晰其大小后,我们就可以方便的理解下面的公式:

X\hat{w}=\vec{y}

\begin{bmatrix} x\vec{}_{1}^{T} & 1\\ x\vec{}_{2}^{T}& 1\\ \vdots & \vdots \\ x\vec{}_{n}^{T} & 1 \end{bmatrix}\times \begin{bmatrix} \vec{w}\\ b\end{bmatrix}=\begin{bmatrix} \vec{x}_{1}^{T}\vec{w}+b\\ \vec{x}_{2}^{T}\vec{w}+b\\ \vdots \\ \vec{x}_{n}^{T}\vec{w}+b\end{bmatrix}

注:此处的\vec{y}为我们预测的标签,而非训练样本给定的标签。

基于以上,我们的目标函数可写为:

\hat{w}^{*}=argmin(\vec{y}-X\hat{w})^{T}(\vec{y}-X\hat{w})

注:理解为使(\vec{y}-X\hat{w})^{T}(\vec{y}-X\hat{w})最小时的\hat{w}的取值,(\vec{y}-X\hat{w})^{T}(\vec{y}-X\hat{w})的结果是一个数值

现在可以求导了,对目标函数求导可得:

\frac{\partial E_{\hat{w}}}{\partial \hat{w}}=2X^{T}(X\hat{w}-\vec{y})

        我们需要得到该式为0时\hat{w}的值,看起来很复杂,这里有直接的结论:

X^{T}X为正定矩阵时,式为0时有:

\hat{w}^{*}=(X^{T}X)^{-1}X^{T}\vec{y}

X^{T}X不是正定矩阵时,我们或可解出多个\hat{w},此时我们可以引入正则化以选择某一个。

        好了!到此为止,就解出训练好的\vec{w},b了!

        当样本不为向量,我们有更简便的解法,具体公式见西瓜书。

2、广义线性模型

        使预测值逼近y的衍生物,即:

g(y)=\vec{w}^{T}\vec{x}+b

y=g^{-1}(\vec{w}^{T}\vec{x}+b)

注:g:联系函数,必须是单调可微的

        这就实现了我们在之前提到过的以线性模型为基础进行非线性拟合,更多的,还有神经网络模型,也是以线性模型为基础进行非线性拟合,且原则上,它可以拟合任意非线性函数。

3、对数几率回归

        使用上面基础的线性回归模型,我们可以用样本的特征属性预测其对应y的值,这里的y可以连续变化,使连续值。放到真实世界里举例,y可以是对某季度销售额的预测,可以是某人的身高的预测(其范围是不定的),但是,如果我们想用线性回归模型完成分类任务呢?

一个可行的方法是:

以某值m为界限,

y_{i}>m时,样本i为正例;

y_{i}<m时,样本i为反例;

y_{i}=m时,样本i随意分类。

        不过我们还有更好的方法,就是对数几率回归

        对数几率回归是广义线性模型的特例,其联系函数g(z)为对数几率函数(sigmoid):

g=\frac{1}{1+e^{-z}}

代入线性模型,就是:

y=\frac{1}{1+e^{-(\vec{w}^{T}\vec{x}+b)}}

此时,我们有:

以0.5为界限,

y_{i}>0.5时,样本i为正例;

y_{i}<0.5时,样本i为反例;

y_{i}=0.5时,样本i随意分类。

 

        sigmoid函数将范围不定的线性回归约束至(0,1),且逼近于阶跃函数,使分类更加清晰明确。它还有一个优点是:它是线性可微的,且对任意阶可导,这使它有很好的数学性质。sigmoid函数广泛应用于机器学习中,是神经网络最常见的函数。

        另外,我们还可以将上面的对数几率回归模型变化为:

\ln \frac{y}{1-y}=\vec{w}^{T}\vec{x}+b

对该式:

y表示样本\vec{x}作为正例的可能性

1-y表示样本\vec{x}作为反例的可能性

二者的比值\frac{y}{1-y}成为几率(odds),反映了\vec{x}作为正例的相对可能性

\ln \frac{y}{1-y}则为对数几率(log odds / logit)

        基于此,我们可以看到对数几率回归不仅可以预测分类,更给出了近似概率预测。

三、线性分类

        实际上,对数几率回归就是用于分类的模型,但在此,我们讨论一些专门用于线性分类的模型

        

1、多分类学习

        对于n个类别C1,C2,C3……Cn,多分类学习的基本思路是拆解法,即将多分类任务拆分为若干个二分类问题求解。

经典的拆分策略有三种:

“一对一”(OvO):将n个类别两两配对,从而产生n(n-1)/2个二分类任务,最终得到n(n-1)/2个分类结果,把被预测的最多的类别作为最终的分类结果。

“一对其余“(OvR):每次将一个类作为正例,其余作为反例,共训练n个分类器。若出现仅有一个分类器预测为正类,则对应类别为最终分类结果;若多个分类器预测为正类,则考虑各个分类器的预测置信度,选择置信度最大的类别标记作为分类结果。

”多对多“(MvM):每次将若干个类作为正类,其他类为反类,共划分M次。正、反类构造需要有特殊的设计,不能随意划分,最常用的MvM技术是”纠错输出码“(EOOC),该部分知识在西瓜书上有详细的介绍,在此不再赘述。


待更新………………        

以上思路均来源于周志华老师《机器学习》第三章,仅为个人的理解,如有错误欢迎指正。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值