【数据科学系统学习】机器学习算法 # 西瓜书学习记录 [1] 线性回归和 Logistic 回归
最近开始学习西瓜书《机器学习》,一本畅销的机器学习书籍,同时将结合李航的《统计学习方法》和《机器学习实战》这两本书,致力于输出更完善的内容,尽可能的用容易理解的方式输出。
在学习过程中,博主没有根据目录进行学习,因此在每篇文章开头都注明了所述内容。文中内容为根据博主的理解而进行梳理,如果有理解偏差的地方,一起讨论。
本篇内容为西瓜书第 3 章线性模型 3.1
,3.2
,3.3
节内容:
- 3.1 基本形式
- 3.2 线性回归
- 3.3 对数几率回归
基本形式
线性组合:
一般用向量形式写为:
其中,表示给定的d
个属性,线性模型试图学得一个通过属性的线性组合来进行预测的函数。是系数,它直观表达了各属性在预测中的重要性,因此线性模型有很好的可解释性。当w
和b
学得之后,模型就得以确定。
线性回归
给定一个数据集:
线性回归试图学得一个线性模型以尽可能准确地预测实值输出标记。
一元线性回归
一元线性回归的基本形式
先考虑只有一个属性的情况,即只包括一个自变量和一个因变量。线性回归试图学得:
使得:
对离散属性,若属性值间存在“序”关系,可通过连续化将其转化为连续值。如属性“身高”的取值高、中、低可转化为{1.0, 0.5, 0.0}
;若属性值间不存在序关系,假定有 k
个属性值,通常转化为 k
维向量,如“瓜类”的取值“西瓜”、“南瓜”、“黄瓜”可转化为(0, 0, 1)
、(0, 1, 0)
、(1, 0, 0)
。
求解一元线性回归参数
接下来,就是确定w
和b
了。
学习的任务就是要基于均方误差最小化来对模型的参数w
和b
进行求解,我们用均方误差最小化来衡量f(x)
和y
之间的差别。
arg(argument of the maximum / minimum): 当f(x)
取最小值时,x
的取值。即使目标函数取最小值时的变量值。
以上,基于均方误差最小化来进行模型求解的方法称为最小二乘法。
均方误差的几何意义对应着欧氏距离。因此,在线性回归中,最小二乘法就是试图找到一条直线,使所有样本到直线上的欧氏距离之和最小。即求解w
和b
使得下列式子最小化:
这个过程称为线性回归模型的最小二乘“参数估计”。
求解过程如下,将分别对w
和b
求导:
令上式分别为 0,即可得到w
和b
最优解的解析解:
其中,为的均值。
多元线性回归
多元线性回归基本形式
现在,我们考虑多个属性的情形,即开头给出的数据集d
,样本有d
个属性描述。此时线性回归试图学得:
使得:
多元线性回归的损失函数
我们仍用均方误差最小化来衡量f(x)
和y
之间的差别,损失函数形式如下:
将截距b
合并到w
,使得新的权重向量新增加了一维。即
相应地,每个样本也增加了一维。即
此时,
再把标记也写成向量形式:
则损失函数可改写为:
最小二乘法求多元线性回归的参数
我们要求解多元线性回归模型,就是要求解使均方误差最小化时所对应的参数,类似于
有
求得对应模型的解,即使得均方误差函数最小化时的权重向量。
同上,我们可以用最小二乘法对模型的参数进行估计,具体做法是:损失函数对需要求解的参数进行求导,并且令其导数为 0,求得相应的参数。
损失函数对参数求导最后得到:
令上式为 0 可得:
其中,需满足条件为满秩矩阵或正定矩阵。
令,最终学得的多元线性回归模型为:
广义线性模型
将线性回归模型简写为:
在线性回归中,所对应的输出标记是在线性尺度(直线)上变化的,我们想把它映射到别的尺度上,来令模型预测值逼近y
的衍生物。如指数尺度上,就可以将输出标记的对数作为线性模型逼近的目标,这里是在用去逼近y
。即
称为对数线性回归。
上式在形式上仍是线性回归,但实质上已经是在求取输入空间到输出空间的非线性函数映射。示意图如下:
更一般地,考虑单调可微函数g(·)
,令
这样得到的模型称为广义线性模型。其中,函数g(·)
称为联系函数。
显然,对数线性回归是广义线性模型在g(·)=ln(·)
时的特例。
对数几率回归
上面我们介绍的是使用线性模型进行回归学习,接下来要介绍的是做分类任务。如何进行这一分类任务呢?对于广义线性模型来说,找一个单调可微函数将分类任务的真实标记y
与线性回归模型的预测值联系起来即可。
对数几率函数
我们考虑二分类任务。
线性回归模型产生的预测值是实值:
二分类任务的输出标记为:
我们需要将实值z
转换为 0/1 值
。可通过单位阶跃函数转换:
即若预测值z
大于 0 就判为正例,小于 0 判为反例,预测值为临界值 0 则可任意判别。如下图所示:
可以看出,单位阶跃函数(红色部分)不连续,故不满足函数g(·)
单调可微的条件,因此我们希望找到能在一定程度上近似它的替代函数,这个函数就是对数几率函数 (logistic function),简称对率函数,它是一种 Sigmoid 函数。
对数几率函数:
Sigmoid 函数:
即形似 S 的函数,对率函数是 Sigmoid 函数最重要的代表。
对数几率回归模型
对率函数将z
值转化为一个接近 0 或 1 的y
值,并且在输出值z=0
附近变化很陡。将它作为代入广义线性模型,得到模型:
将上式变化为以下形式:
若将y
视为样本x
作为正例的可能性,则1-y
是其反例可能性,两者的比值
称为几率,反映了x
作为正例的相对可能性,对其取对数得到对数几率:
由以上推导可知,该模型实际上是在用线性回归模型的预测结果去逼近真实标记的对数几率。称它为对数几率回归 (logistic regression 亦称 logit regression),是一种分类学习方法。
logistic regression:
在周志华的《机器学习》里译为对数几率回归,在李航的《统计学习方法》里译为逻辑斯谛回归。本文中不区分两种译法,都是指 logistic regression,特此说明。
二项逻辑斯谛回归模型
在下式中
我们希望确定式中的w
和b
。若将y
视为后验概率估计p(y=1 | x)
,则式
可重写为
显然有
上式即为二项逻辑斯谛回归模型的条件概率分布。逻辑斯谛回归比较两个条件概率值的大小,将实例x
分到概率值较大的那一类。
由以上二式可得:
这就是说,在逻辑斯谛回归模型中,输出y=1
的对数几率是输入x
的线性函数,或者说,输出y=1
的对数几率是由输入x
的线性函数表示的模型,即逻辑斯谛回归模型。
换个角度看,是通过逻辑斯谛回归模型将线性函数转换为了概率,也就是说线性函数的值越接近正无穷,概率值就越接近 1;线性函数的值越接近负无穷,概率值就越接近 0。
极大似然法估计参数
下面通过极大似然法来估计w
和b
。
首先做一个符号说明,令:
给定数据集:
对率回归模型最大化“对数似然”:
这个式子的意思是,对于每一个样本来说,找到参数使其属于真实标记的概率最大。 即令每个样本属于其真实标记的概率越大越好。
上式中的似然项可重写为:
代回式中得到对数似然函数,化解为:
得到最大化目标函数,等价于最小化下式:
这是关于的高阶可到连续凸函数,这样问题就变成了以对数似然函数为目标函数的最优化问题。经典的数值优化算法如梯度下降法和牛顿法等都可求得最优解。
以牛顿法为例,其第t+1
轮迭代解的更新公式为
其一二阶导数分别为:
假设的极大似然估计值是,则学到的逻辑斯谛回归模型为
参考链接:
线性模型(1) —— 多元线性回归
西瓜书《机器学习》阅读笔记6——Chapter3_公式(3.27)的推导过程
逻辑斯蒂回归(Logistic Regression)
不足之处,欢迎指正。