三、线性模型
来源:@https://github.com/familyld/Machine_Learning/blob/master/03linear_model.md
本章大致内容:
- 线性回归:如何把连续属性离散化?
线性回归
连续属性离散化
属性值之间有序:
- 属性值之间有序:即属性间有明确的大小关系,比如把“高度”取值{高,中,低}转换为{1.0,0.5,0.0};
- 属性值之间无序:若该属性有k个属性值,则将其转换为k维向量,比如{男人,女人}转换为(0,1)和(1,0)。
最小二乘法:
线性回归最常用的性能度量是均方误差(MSE),对于单变量线性回归,则有:
我们会将这种描述模型总误差的式子称为损失函数或者目标函数,由于m是确定值,即常数,所以可以把这一项拿走。
最小二乘法(least square method)就是基于均方误差最小化来进行模型求解的一种方法,寻找可使损失函数值最小的参数 w 和 b 的过程称为最小二乘参数估计(parameter estimation)。
通过对损失函数分别求参数 w 和 b 的偏导,并且令导数为0,可以得到这两个参数的闭式(closed-form)解(也即解析解):
在实际任务中,只要我们把自变量(x, y, m)的值代入就可以求出数值解了。
为什么可以这样求解呢?因为损失函数是一个凸函数(记住是向下凸,类似U型曲线),导数为0表示该函数曲线最低的一点,此时对应的参数值就是能使均方误差最小的参数值。特别地,要判断一个函数是否凸函数,可以求其二阶导数,若二阶导数在区间上非负则称其为凸函数,若在区间上恒大于零则称其为严格凸函数。
多元线性回归
前面是直线拟合,样例只有一个属性。对于样例包含多个属性的情况,我们就要用到多元线性回归(multivariate linear regression)(又称作多变量线性回归)了。
令 w^=(w;b)。把数据集表示为 m×(d+1) 大小的矩阵,每一行对应一个样例,前 d 列是样例的 d 个属性,最后一列恒置为1,对应偏置项。把样例的实值标记也写作向量形式,记作 y。则此时损失函数为:
同样使用最小二乘法进行参数估计,首先对 w^ 求导:
令该式值为0可得到 w^ 的闭式解:
这就要求 XTX 必须是可逆矩阵,也即必须是满秩矩阵(full-rank matrix),这是线性代数方面的知识,书中并未展开讨论。但是!现实任务中 XTX 往往不是满秩的,很多时候 X 的列数很多,甚至超出行数(例如推荐系统,商品数是远远超出用户数的),此时 XTX 显然不满秩,会解出多个 w^。这些解都能使得均方误差最小化,这时就需要由学习算法的归纳偏好决定了,常见的做法是引入正则化(regularization)项。
广义线性模型
除了直接让模型预测值逼近实值标记 y,我们还可以让它逼近 y 的衍生物,这就是广义线性模型(generalized linear model)的思想,也即:
其中 g(⋅) 称为联系函数(link function),要求单调可微。使用广义线性模型我们可以实现强大的非线性函数映射功能。比方说对数线性回归(log-linear regression),令 g(⋅)=ln(⋅),此时模型预测值对应的是实值标记在指数尺度上的变化:
对数几率回归(逻辑回归)
线性模型的输出是一个实值,而分类任务的标记是离散值,怎么把这两者联系起来呢?其实广义线性模型已经给了我们答案,我们要做的就是找到一个单调可微的联系函数,把两者联系起来。
对于一个二分类任务,比较理想的联系函数是单位阶跃函数(unit-step function):
对数几率函数有时也称为对率函数,是一种Sigmoid函数(即形似S的函数)。将它作为 g−(⋅) 代入广义线性模型可得:
该式可以改写为:
其中,y/1−y 称作几率(odds),我们可以把 y 理解为该样本是正例的概率,把 1−y 理解为该样本是反例的概率,而几率表示的就是该样本作为正例的相对可能性。若几率大于1,则表明该样本更可能是正例。对几率取对数就得到对数几率(log odds,也称为logit)。几率大于1时,对数几率是正数。
由此可以看出,对数几率回归的实质使用线性回归模型的预测值逼近分类任务真实标记的对数几率。它有几个优点:
- 直接对分类的概率建模,无需实现假设数据分布,从而避免了假设分布不准确带来的问题;
- 不仅可预测出类别,还能得到该预测的概率,这对一些利用概率辅助决策的任务很有用;
- 对数几率函数是任意阶可导的凸函数,有许多数值优化算法都可以求出最优解。
网友评论