线性回归之最小二乘法简述

监督学习中,如果预测的变量是离散的,我们称其为分类(如决策树,支持向量机等),如果预测的变量是连续的,我们称其为回归。
在统计学中,线性回归方程是利用最小二乘函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。(这反过来又应当由多个相关的因变量预测的多元线性回归区别,而不是一个单一的标量变量。)
在线性回归中,数据使用线性预测函数来建模,并且未知的模型参数也是通过数据来估计。这些模型被叫做线性模型。最常用的线性回归建模是给定X值的y的条件均值是X的仿射函数。不太一般的情况,线性回归模型可以是一个中位数或一些其他的给定X的条件下y的条件分布的分位数作为X的线性函数表示。像所有形式的回归分析一样,线性回归也把焦点放在给定X值的y的条件概率分布,而不是X和y的联合概率分布(多元分析领域)。

摘引自百度百科:https://baike.baidu.com/item/%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92%E6%96%B9%E7%A8%8B/7198720

最小二乘法

假定我们有N个训练样本x,及每一个样本对应的真实结果变量Y,基于统计学回归的思想,我们期望通过统计的方法在,利用已有的数据集来确实Y与x之间的某种关系,使得我们可以利用这种关系来预测一个未知结果变量Y'的新样本x',同时使得Y’接近或等于真实的结果变量。
上面所说的关系,最简单的形式便是是线性关系,即线性模型。
线性回归模型经常用最小二乘逼近来拟合,但他们也可能用别的方法来拟合,比如用最小化“拟合缺陷”在一些其他规范里(比如最小绝对误差回归),或者在回归中最小化最小二乘损失函数的乘法。相反,最小二乘逼近可以用来拟合那些非线性的模型。因此,尽管最小二乘法和线性模型是紧密相连的,但他们是不能划等号的。
最小二乘的理论式如下:
Y ( w , x ) = w 0 + w 1 ∗ x 1 + w 2 ∗ x 2 + . . . + w i ∗ x i = ∑ x ⃗ i ∗ w ⃗ i T = X ⃗ ∗ W ⃗ T Y(w, x) = w_{0} + w_{1} * x_{1} + w_{2} * x_{2} + ... + w_{i} * x_{i} \\ = \sum \vec{x}_{i} * \vec{w}^{T}_{i} \\ = \vec{X} * \vec{W}^{T} \\ Y(w,x)=w0+w1x1+w2x2+...+wixi=x iw iT=X W T
为什么要把x向量作为除数,而w向量作为被乘数呢?因为对数机器学习而言,我们通常会有用来训练的样本集合,每一个样本x是由多个维度的属性i组合成的,每一个xi的属性值都是已知的,因此所有这些样本就构成了表达式中的常量矩阵,而w向量反倒是我们所要试图求解的对象。

但如何从这些多的候选参数向量中选出最优的呢?直接通过前面的公式来寻找虽然直接但不快速,是不是可以间接找到最优解呢?这就引入了损失函数的概念。

很显然,通过方程计算某一个样本的因变量(即结果变量Y’),与真实值Y是有偏差的,而这个偏差的大小对于不同的样本又是不一样的,是随机的,那么自然而然地,最简单的方法我们可以通过求平均值求得平均的因变量Y。
Y ′ ^ = ( Y 1 ′ + Y 2 ′ + . . + Y n ′ ) / n \hat{Y'} = (Y'_{1} + Y'_{2} + .. + Y'_{n}) / n Y^=(Y1+Y2+..+Yn)/n
但这样的结果是不准确的,结果波动很大。

换个角度,既然我们已经有了预测结果、真实结果,那我们不是可以通过均方差公式来求得所有的误差总和吗?即有
θ = ∑ ( y i ′ − y i ) 2 \theta = \sum{(y'_{i} - y_{i}})^{2} θ=(yiyi)2
我们想要求得一个最接近真实值的预测结果,那就可以转换为求误差和的最小值,这就是最小二乘法,所谓“二乘”就是平方的意思,再稍微展开一下就得到了
L ( θ ) = ∑ ( y i − x i ∗ w ) 2 L(\theta) = \sum{(y_{i} - x_i * w)^{2}} L(θ)=(yixiw)2
这个方程是二阶的,那我们可以通过求极值的方法,对上式求导,找到一组值wi,使得误差总和最小,也即求得一个最佳的线性模型,使得预测结果最接近真实值。

若求w向量,我们知道会有多个不同的结果,所以这里使用W矩阵来表示所有的这些结果向量,用X矩阵表示所有的训练样本集合,则可以通过矩阵乘法对上面的等式对W求偏导并令结果为0:
矩 阵 的 平 方 等 于 转 置 阵 与 其 的 乘 积 L ( θ ) = ( Y − X ∗ W ) 2 = ( Y − X ∗ W ) T ∗ ( Y − X ∗ W ) = ( Y T − W T ∗ X T ) ∗ ( Y − X ∗ W ) = Y T ∗ Y − W T ∗ X T ∗ Y − Y T ∗ X ∗ W + W T ∗ X T ∗ X ∗ W 其 中 根 据 对 称 阵 的 性 质 , W T ∗ X T ∗ Y = Y T ∗ X ∗ W , 进 而 全 并 后 的 结 果 为 L ( θ ) = Y T ∗ Y − 2 ∗ Y T ∗ X ∗ W + W T ∗ X T ∗ X ∗ W 求 偏 导 α α W L ( θ ) = α α W ∗ X T ∗ Y + α W T ∗ X T α W ∗ X ∗ W + α W T ∗ X T α W ∗ X ∗ W = − 2 ∗ X T ∗ Y + 2 ∗ X T ∗ X ∗ W = 0 如 果 矩 阵 X T ∗ X 非 奇 异 则 W ⃗ 有 唯 一 解 , 即 有 ( X T ∗ X ) ∗ W ⃗ = ( X ) T ∗ Y W ⃗ = ( X T ∗ X ) − 1 ∗ X T ∗ Y 矩阵的平方等于转置阵与其的乘积\\ L(\theta) = (Y - X * W)^2\\ = (Y - X * W)^T * (Y - X * W) \\ = (Y^T - W^T * X^T) * (Y - X * W) \\ = Y^T * Y - W^T * X^T * Y - Y^T * X * W + W^T * X^T * X * W \\ 其中根据对称阵的性质,W^T * X^T * Y = Y^T * X * W,进而全并后的结果为 \\ L(\theta) = Y^T * Y - 2 * Y ^T * X * W + W^T * X^T * X * W \\ 求偏导 \\ \frac{\alpha}{\alpha_{W}}L(\theta)= \frac{\alpha}{\alpha_{W}} * X^T * Y + \frac{\alpha_{W^T * X^T}}{\alpha_{W}} * X * W + \frac{\alpha_{W^T * X^T}}{\alpha_{W}} * X * W \\ = -2 * X^T * Y + 2 * X^T * X * W = 0 \\ 如果矩阵X^{T} * X非奇异则\vec{W}有唯一解,即有 \\ (X^{T} * X) * \vec{W} = (X)^{T} * Y \\ \vec{W} =(X^{T} * X)^{-1} * X^{T} * Y \\ L(θ)=(YXW)2=(YXW)T(YXW)=(YTWTXT)(YXW)=YTYWTXTYYTXW+WTXTXWWTXTY=YTXWL(θ)=YTY2YTXW+WTXTXWαWαL(θ)=αWαXTY+αWαWTXTXW+αWαWTXTXW=2XTY+2XTXW=0XTXW (XTX)W =(X)TYW =(XTX)1XTY

如果想要求得W,则必须保证X是列满秩的,关于秩的概念见下节。

一元方程例子

我们通过房屋面积大小预测房价时,他们的关系是一个一次函数,
f ( x ) = a x + b f(x) = ax + b f(x)=ax+b
那么我们利用最小二乘法求导有:
α α a f ( x ) = 2 ∑ ( a x i + b − Y i ) x i = 0 α α b f ( x ) = 2 ∑ ( a x i + b − Y i ) = 0 \frac{\alpha}{\alpha_{a}}f(x) = 2 \sum{(ax_{i} + b - Y_{i}})x_{i} = 0 \\ \frac{\alpha}{\alpha_{b}}f(x) = 2 \sum{(ax_{i} + b - Y_{i}}) = 0 αaαf(x)=2(axi+bYi)xi=0αbαf(x)=2(axi+bYi)=0
通过将所有的样本集体代入,求解上面的方程组可得到最终的a b

当然f(x)也可以是二阶的或更高阶,求解过程一样,只是最终得到的拟合模型不再是直线,而是曲线或面了。

变量矩阵更新

最小二乘法的求解过程并不依赖训练数据,每一次计算都是独立的,因此通常我们会随机生成一个变量矩阵W,在每一轮求得一个新的变量矩阵后,需要同时把新的W矩阵与之前的W矩阵进行状态叠加,以达到修正W矩阵,减少下一轮的训练误差,一个完整的ALS训练过程就是这样一直不停地计算W同时更新W,直到某一次的训练误差小于给定值或是达到一次的迭代次数。
W矩阵的更新方法通过公式表示如下:
W = W − α ∗ W A L S , 其 中 W 指 历 史 W 矩 阵 , W A L S 是 当 前 训 练 轮 次 生 成 的 W 新 的 W 矩 阵 W = W - \alpha * W_{ALS},其中W指历史W矩阵,W_{ALS}是当前训练轮次生成的W新的W矩阵 W=WαWALSWWWALSWW

秩的概念

一个矩阵的,等于其经过初等变换后,得到的非相关行向量或列向量的最小个数或最大阶数,即取行数或列数的最小值所构成的一个方阵
一个矩阵,可以被表示成一个方程组,例如对于一个3阶方阵,可以表示成如下的一组等式:
a 11 ∗ x + a 12 ∗ y + a 13 ∗ z = 0   ( 1 ) a 21 ∗ x + a 22 ∗ y + a 23 ∗ z = 0   ( 2 ) a 31 ∗ x + a 32 ∗ y + a 33 ∗ z = 0   ( 3 ) a_{11} * x + a_{12} * y + a_{13} * z = 0 \ (1) \\ a_{21} * x + a_{22} * y + a_{23} * z = 0 \ (2) \\ a_{31} * x + a_{32} * y + a_{33} * z = 0 \ (3) a11x+a12y+a13z=0 (1)a21x+a22y+a23z=0 (2)a31x+a32y+a33z=0 (3)
表达的意思是我们有三个未知变量x, y, z,同时有一个常量矩阵A(a),那么如何才能唯一计算出这三个变量的值呢?
一般地说法,对于这样一个含有三个未知变量的方程组,若我们想要求出它的解,则必须至少有三个可用的等式,才能求出,但这种说法是不准确的。
三个可用的等式,不能是任意的,是有限制条件的,即这三个等式(1)、(2)、(3)不能通过加减变换使得任意一个等式被消去,否则我们无法确定一个唯一解,但可以有无穷多个解。下面以一个实际的例子来直观表述:
2 ∗ x + 3 ∗ y + 4 ∗ z = 0   ( 1 ) 3 ∗ x + 4 ∗ y + 5 ∗ z = 0   ( 2 ) x + y + z = 0   ( 3 ) 2 * x + 3 * y + 4 * z = 0 \ (1) \\ 3 * x + 4 * y + 5 * z = 0 \ (2) \\ x + y + z = 0 \ (3) 2x+3y+4z=0 (1)3x+4y+5z=0 (2)x+y+z=0 (3)
通过简单的变换最终可得到两个等式:
x + y + z = 0 y + 2 ∗ z = 0 x + y + z = 0 \\ y + 2 * z = 0 x+y+z=0y+2z=0
像如上的方程组,我们是不能找到一个唯一解来表示x, y, z这三个变量的,但可以有无穷多个解,比如有
x = − 1 , y = 2 , z = − 1 x = 0 , y = 0 , z = 0 x = 1 , y = − 2 , z = 1 . . . x = -1, y = 2, z = -1 \\ x = 0, y = 0, z = 0 \\ x = 1, y = -2, z = 1 \\ ... x=1,y=2,z=1x=0,y=0,z=0x=1,y=2,z=1...
转换成线性代数的说法,当常量矩阵A(a)的行向量存在线性关系时,我们可以通过初等变换,最终得到一个简化后的矩阵,其中有关系的行向量被消去,余下的行向量不再有线性关系,此时该矩阵的,就是非零向量的个数。

满秩

对于一个方阵,在经过任意次的初等变换后,都不能消去其中的任意一行时,则称此方阵为满秩矩阵,而对于其它的矩阵我们可以称之为列满秩行满秩矩阵。

推荐博主,大牛讲解,简单又生动,受益良多:https://blog.csdn.net/ccnt_2012/article/details/81127117

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值