机器学习算法之线性回归

目录

一、线性回归的起源

二、线性回归的基本形式

三、线性回归的损失计算


一、线性回归的起源

线性回归(Linear Regression)模型是机器学习中最简单、最基础的监督学习模型,虽然简单,但却也非常重要,线性回归是很多复杂模型的基础。

线性回归要处理的一类问题是:给定一组输入样本,和每个样本对应的目标值,需要在某一损失准则下,找到(学习到)目标值和输入值的函数关系,这样,当有一个新的样本到达时,可以预测其对应的目标值是多少。

线性回归之所以被称为叫回归,源于线性回归方法最早提出时是发表在《遗传的身高向平均数方向的回归》一文中,其提出者——英国著名的生物学家兼统计学家弗朗西斯•高尔顿在研究父辈和子辈身高的遗传关系时提出了一个直线方程,来拟合被调查父母的平均身高 x 和 子女平均身高 y 之前的关系:

y=33.73+0.516x

以上y、x的单位都是英寸,换算成米之后即:

y=0.8567+0.516x

也就是说,当父母平均身高为1.7米时,儿女的身高约为1.7339米。而当父母平均身高为1.8米时,儿女的身高约为1.7855米。它反映了一个规律,即儿子的身高,有向他们父辈的平均身高回归的趋势。从此“线形回归”的名称被沿用下来,作为根据一种变量预测另一种变量或多种变量关系的描述方法。

二、线性回归的基本形式

给定由d个属性描述的示例 \mathbf{x}=(x_{1};x_{2};...;x_{d}), 其中x_{i}\textbf{x}在第i个属性上的取值,线性模型试图学得一个通过属性的线性组合来进行预测的函数,即:

f(\textbf{x})=\omega_{1}x_{1}+\omega_{2}x_{2}+...+\omega_{d}x_{d}+b

写成向量形式即:

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

其中,\textbf{w}=(\omega_{1};\omega_{2};...;\omega_{d})。其含义可理解为各个特征的权重参数,例如,某个人对相亲对象的好感具象成一个得分值并用线性模型进行学习:

f_{impression}(\textbf{x})=0.4\cdot x_{appearance}+0.4\cdot x_{behaviour}+0.1\cdot x_{height}+0.1\cdot x_{education}+1

这表明,此人对相亲对象的外貌appearance与举止behaviour更为重视,而对身高height与学历education相对而言重视程度更低。从中可以看出,线性模型具有良好的可解释性,可以清晰地知晓预测值的构成和由来。而在金融风控、医疗健康等领域对于可解释性要求较高,故而在工业实际应用中,线性回归模型十分常见。

三、线性回归的损失计算

线性回归模型的训练就是为了习得式子f(\textbf{x})=\textbf{w}^{T}\textbf{x}+b中的\textbf{w}b,使输入\mathbf{x}=(x_{1};x_{2};...;x_{d})得到的输出得分值f(\mathbf{x})接近于真实值\mathbf{y},其关键在于定义损失函数,以衡量预测值与真实值之间的差异。

均方误差是回归任务中最常用的性能度量,即:

loss = \frac{1}{m}\sum_{i=1}^{m}(f(\mathbf{x})-\mathbf{y})^{2}=\frac{1}{m}\sum_{i=1}^{m}(\mathbf{y}-\mathbf{w}\mathbf{x}-b)^{2}

因此我们可试图让均方误差最小化,求解\textbf{w}b使损失值最小化的过程,即线性回归模型的最小二乘“参数估计”。直观上看,均方误差对应的是欧几里得距离(即欧氏距离),表示的是预测点到真实点的距离。之所以不用三次方计算损失函数,是因为奇次方计算的损失可以是负数,误差和会相互抵消,而对损失函数求导后其导数恒正,更新参数时会出错。之所以不用四次方甚至更高的偶数次方计算损失函数,是因为计算量大,而且惩罚项过大,会使得模型受噪音影响严重。

利用最小二乘法求\textbf{w}b,为便于讨论,将\textbf{w}b吸收入向量形式\hat{\mathbf{w}}=(\mathbf{w};b),将数据集D表示为一个m×(d+1)大小的矩阵\mathbf{X},其中每行对应于一个样本,该行前d个元素对应于样本的d个属性值,最后一个元素恒置为1,即:

\mathbf{X}=\begin{pmatrix} x_{11} &x_{12} & ... & x_{1d} & 1\\ x_{21} &x_{22} & ... & x_{2d} & 1\\ ... &... & ... & ... & ...\\ x_{m1} &x_{m2} & ... & x_{md} & 1\\ \end{pmatrix}=\begin{pmatrix} \mathbf{x}_{1}^{T} & 1\\ \mathbf{x}_{2}^{T} & 1\\ ...& ...\\ \mathbf{x}_{m}^{T} & 1 \end{pmatrix}

将真实值表示为向量形式即\mathbf{y}=(y_{1};y_{2};...;y_{m}),则要求的就是使:

Loss=(\mathbf{y}-\mathbf{X}\hat{\mathbf{w}})^{T}(\mathbf{y}-\mathbf{X}\hat{\mathbf{w}})

最小时的参数\hat{\mathbf{w}}

Loss对\hat{\mathbf{w}}求导得到:

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

\frac{ \partial Loss}{\partial \hat{\mathbf{w}}}=0时可得\hat{\mathbf{w}}的最优解。

\mathbf{X}^{T}\mathbf{X}为满秩矩阵或正定矩阵时,可求得\hat{\mathbf{w}}=(\mathbf{X}^{T}\mathbf{X})^{-1}\mathbf{X}^{T}\mathbf{y}.其中,(\mathbf{X}^{T}\mathbf{X})^{-1}(\mathbf{X}^{T}\mathbf{X})的逆矩阵。

\hat{\mathbf{x_{i}}}=(\mathbf{x_{i}},1),则最终学习到的线性模型为:

f(\hat{\mathbf{x_{i}}})=\hat{\mathbf{x_{i}}}^{T}(\mathbf{X^{T}}\mathbf{X})^{-1}\mathbf{X^{T}}\mathbf{y}

在现实任务中,\mathbf{X}^{T}\mathbf{X}往往不是满秩矩阵,即数据集中的样本属性个数超过样本条数,列数多于行数。此时可以解出多个\hat{\mathbf{w}},都能得到最小的均方误差。选择哪一个解作为输出,将由学习算法的归纳偏好决定,常见的做法是引入正则化 (regularization) 项。

参考资料:

周志华老师《机器学习》

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值