线性回归家族-多元线性回归LinearRegression

多元线性回归的基本原理

线性回归是机器学习中最简单的回归算法,多元线性回归指的就是一个样本有多个特征的线性回归问题,所以多元其实指的是多个特征。对于一个有个特征的样本而言,它的回归结果可以写作一个几乎人人熟知的方程:
y ^ i = ω 0 + ω 1 x i 1 + ω 2 x i 2 + . . . + ω n x i n \hat{y}_i=\omega_0+\omega_1x_{i1}+\omega_2x_{i2}+...+\omega_nx_{in} y^i=ω0+ω1xi1+ω2xi2+...+ωnxin
ω \omega ω被统称为模型的参数,其中 ω 0 \omega_0 ω0被称为截距(intercept) ω 1 \omega_1 ω1~ ω n \omega_n ωn 被称为回归系数(regression coefficient),有时也是使用 θ \theta θ或者 β \beta β来表示。
这个表达式,其实就和我们小学时就无比熟悉的y=ax+b是同样的性质。其中 y ^ i \hat{y}_i y^i是我们的目标变量,也就是标签。xi1 ~ xin 是样本i上的不同特征。
如果有m个样本,则回归结果可以被写作:
y ^ = ω 0 + ω 1 x 1 + ω 2 x 2 + . . . + ω n x n \hat\boldsymbol{y}=\omega_0+\omega_1\boldsymbol{x_1}+\omega_2\boldsymbol{x_2}+...+\omega_n\boldsymbol{x_n} y^=ω0+ω1x1+ω2x2+...+ωnxn
其中 y ^ \hat{y} y^是包含了m个全部的样本的回归结果的列向量(结构为(m,1),由于只有一列,以列的形式表示,所以叫做列向量)。注意,通常使用粗体的小写字母来表示列向量,粗体的大写字母表示矩阵或者行列式。可以使用矩阵来表示这个方程,其中 ω \boldsymbol{\omega} ω可以被看做是一个结构为(n+1,1)的列矩阵,X是一个结构为(m,n+1)的特征矩阵,则有:
[ y ^ 1 y ^ 2 ⋮ y ^ n ] = [ 1 x 11 x 12 … x 1 n 1 x 21 x 22 … x 2 n ⋮ ⋮ ⋱ 1 x m 1 x m 2 … x m n ] ∗ [ ω 0 ω 1 ⋮ ω n ] \left[\begin{array}{c}\hat{y}_1\\\hat{y}_2\\\vdots\\\hat{y}_n\end{array}\right]=\left[ \begin{array}{c}1&x_{11} & x_{12} & \ldots & x_{1n} \\1&x_{21} & x_{22} & \ldots & x_{2n} \\\vdots & \vdots & \ddots\\1&x_{m1} & x_{m2} & \ldots & x_{mn} \\\end{array} \right]*\left[\begin{array}{c}\omega_0\\\omega_1\\\vdots\\\omega_n\end{array}\right] y^1y^2y^n=111x11x21xm1x12x22xm2x1nx2nxmnω0ω1ωn
y ^ = X ω \hat\boldsymbol{y}=\boldsymbol{X}\boldsymbol{\omega} y^=Xω
线性回归的任务,就是构造一个预测函数来映射输入的特征矩阵和标签值的线性关系,这个预测函数在不同的教材上写法不同,可能写作 f ( x ) f(x) f(x) y ω ( x ) y_{\omega}(x) yω(x),或者 h ( x ) h(x) h(x)等,但无论如何,这个预测函数的本质就是需要构建的模型。

机器学习中的重要概念:模型

建模,模型究竟是什么?
模型是机器学习算法建立的,用于帮助算法实现预测或实现判断的一个存在。
对于线性回归而言,预测函数 y ^ = X ω \hat\boldsymbol{y}=\boldsymbol{X}\boldsymbol{\omega} y^=Xω就是模型,而其中只有 ω \boldsymbol\omega ω是未知的,所以线性回归原理的核心就是找出模型的参数向量 ω \boldsymbol\omega ω。怎样才能求解出参数向量呢?需要依赖一个重要概念:损失函数。

损失函数

学习KNN时,曾经提到过两种模型表现:在训练集上的表现,和在测试集上的表现。建模,是追求模型在测试集上的表现最优。因此,模型的评估指标往往是用来衡量模型在测试集上的表现的。
然而,线性回归有着基于训练数据求解参数 ω \boldsymbol\omega ω的需求,并且希望训练出来的模型能够尽可能地拟合训练数据,即模型在训练集上的预测准确率越靠近100%越好。
因此,使用“损失函数”这个评估指标,来衡量系数为 ω \boldsymbol\omega ω的模型拟合训练集时产生的信息损失的大小,并以此衡量参数 ω \boldsymbol\omega ω的优劣。如果用一组参数建模后,模型在训练集上表现良好,就说明模型拟合过程中的损失很小,损失函数的值很小,这一组参数就优秀;相反,如果模型在训练集上表现糟糕,损失函数就会很大,模型就训练不足,效果较差,这一组参数也就比较差。即,在求解参数 ω \boldsymbol\omega ω时,追求损失函数最小,让模型在训练数据上的拟合效果最优,即预测准确率尽量靠近100%。
总之,损失函数是衡量参数的优劣的评估指标,用来求解最优参数的工具。
损失函数小,模型在训练集上表现优异,拟合充分,参数优秀;损失函数大,模型在训练集上表现差劲,拟合不足,参数糟糕。
模型追求能够让损失函数最小化的参数组合。
注意:没有”求解参数“需求的算法没有损失函数,比如KNN。
在多元线性回归中,损失函数定义如下:
∑ i = 1 m ( y i − y i ^ ) 2 = ∑ i = 1 m ( y i − X i ω ) 2 \large\sum_{i=1}^m(y_i-\hat{y_i})^2=\sum_{i=1}^m(y_i-\boldsymbol{X_i\omega})^2 i=1m(yiyi^)2=i=1m(yiXiω)2
其中, y i y_i yi是样本 i i i对应的真实标签, y i ^ \hat{y_i} yi^是样本 i i i在一组参数 ω \boldsymbol\omega ω下的预测标签, m代表样本的总量。
在这个平方结果下, y y y y ^ \hat{y} y^分别是真实标签和预测值,也就是说,损失函数是在计算真实标签和预测值之间的距离。因此,损失函数衡量了构造模型的预测结果和
真实标签的差异,预测结果和真实值之间的差异越小越好。所以,求解目标可以转化成:
m i n ω ∑ i = 1 m ( y i − X i ω ) 2 min_\omega\sum_{i=1}^m(y_i-\boldsymbol{X_i\omega})^2 minωi=1m(yiXiω)2
这个式子用矩阵如何表达?一个简单的例子:
假设现在 ω \boldsymbol\omega ω为[1,2]这样一个向量量,求解出的模型为 y = x 1 + 2 x 2 y=x_1+2x_2 y=x1+2x2
在这里插入图片描述
则损失函数的值就是:
( y 1 − y 1 ^ ) 2 + ( y 2 − y 2 ^ ) 2 (y_1-\hat{y_1})^2+(y_2-\hat{y_2})^2 (y1y1^)2+(y2y2^)2
即:
(3-(1x1+2x0.5))2+(2-(1x-1+2x0.5))2=1+4=5
这样的形式如果用矩阵来表达,其实可以写成:
[ ( y 1 − y 1 ^ ) ( y 2 − y 2 ^ ) ] ∗ [ ( y 1 − y 1 ^ ) ( y 2 − y 2 ^ ) ] = ( y − X ω ) T ( y − X ω ) = ∣ ∣ y − X ω ∣ ∣ 2   2 [(y_1-\hat{y_1})(y_2-\hat{y_2})]*\left[\begin{array}{c}(y_1-\hat{y_1})\\(y_2-\hat{y_2})\end{array}\right]=\boldsymbol{(y-X\omega)^T(y-X\omega)}=\boldsymbol{||y-X\omega||_2\,^2} [(y1y1^)(y2y2^)][(y1y1^)(y2y2^)]=(yXω)T(yXω)=yXω22
矩阵相乘是对应未知元素相乘相加,就会得到和上面的式子一模一样的结果。而这样的矩阵可以转变成L2范式的形式。通常称这个损失函数为SSE(Sum of Squared Error,误差平方和)或者RSS(Residual Sum of Squares 残差平方和)。此处,称之为RSS,残差平方和。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值