给定数据集,其中。"线性回归"(linear regression)试图学得一个线性模型以尽可能准确地预测实值输出标记。
我们先考虑一种最简单的情形:输入属性的数目只有一个。为便于讨论,此时我们忽略关于属性的下标,即,其中。对离散属性,若属性值间存在"序"(order)关系,可通过连续化将其转化为连续值,例如二值属性"身高"的取值"高""矮"可转化为,三值属性"高度"的取值"高""中""低"可转化为;若属性值间不存在序关系,假定有k个属性值,则通常转化为k维向量,例如属性"瓜类"的取值"西瓜""南瓜""黄瓜"可转化为。
线性回归试图学得
如何确定ω和b呢?显然,关键在于如何衡量f(x)与y之间的差别。2.3节介绍过,均方误差(2.2)是回归任务中最常用的性能度量,因此我们可试图让均方误差最小化,即
均方误差有非常好的几何意义,它对应了常用的欧几里得距离或简称"欧氏距离"(Euclidean distance)。基于均方误差最小化来进行模型求解的方法称为"最小二乘法" (least square method)。在线性回归中,最小A乘法就是试图找到一条直线,使所有样本到直线上的欧氏距离之和最小。
求解ω和b使最小化的过程,称为线性回归模型的最小二乘"参数估计"(parameter estimation)。我们可将E(ω,b)分到对ω和b求导,得到
然后令式(3.5)和(3.6)为零可得到ω和b最优解的闭式(closed-form)解:
其中为x的均值。
更一般的情形是如本节开头的数据集D,样本由d个属性描述。此时我们试图学得
这称为"多元线性回归"(multivariate linear regression)。
类似的,可利用最小二乘法来对ω和b进行估计。为便于讨论,我们把ω和b吸收入向量形式,相应的,把数据集D表示为一个大小的矩阵X,其中每行对应于一个示例,该行前d个元素对应于示例的d个属性值,最后一个元素恒置为1,即
再把标记也写成向量形式,则类似于式(3.4),有
令,对求导得到
令上式为零可得最优解的闭式解,但由于涉及矩阵逆的计算,比单变量情形要复杂一些。下面我们做一个简单的讨论。
当为满秩矩阵(full-rank matrix)或正走矩阵(positive definite matrix)时,令式(3.10)为零可得
其中是矩阵的逆矩阵。令,则最终学得的多元线性回归模型为
然而,现实任务中往往不是满秩矩阵。例如在许多任务中我们会遇到大量的变量?其数目甚至超过样例数,导致X的列数多于行数,显然不满秩。此时可解出多个,它们都能使均方误差最小化。选择哪一个解作为输出,将由学习算法的归纳偏好决定,常见的做法是引入正则化(regularization)项。
线性模型虽简单,却有丰富的变化。例如对于样例,当我们希望线性模型(3.2)的预测值逼近真实标记ν时,就得到了线性回归模型。为便于观察,我们把线性回归模型简写为
可否令模型预测值逼近u的衍生物呢?譬如说,假设我们认为示例所对应的输出标记是在指数尺度上变化,那就可将输出标记的对数作为线性模型逼近的目标,即
这就是"对数线性回归"(log-linear regression),它实际上是在试图让逼近y。式(3.14)在形式上仍是线性回归,但实质上已是在求取输入空间到输出空间的非线性函数映射,如图3.1所示。这里的对数函数起到了将线性回归模型的预测值与真实标记联系起来的作用。
更一般地,考虑单调可微函数g(.),令
这样得到的模型称为"广义线性模型"(generalized linear model) ,其中函数g(-)称为"联系函数"(link function)。显然,对数线性回归是广义线性模型在g(-)=ln(.)时的特例。