线性回归 最小二乘法 方差

线性回归定义:

    在上一个主题中,也是一个与回归相关的,不过上一节更侧重于梯度这个概念,这一节更侧重于回归本身与偏差和方差的概念。

    回归最简单的定义是,给出一个点集D,用一个函数去拟合这个点集,并且使得点集与拟合函数间的误差最小。

   image    上图所示,给出一个点集(x,y), 需要用一个函数去拟合这个点集,蓝色的点是点集中的点,而红色的曲线是函数的曲线,第一张图是一个最简单的模型,对应的函数为y = f(x) = ax + b,这个就是一个线性函数,

    第二张图是二次曲线,对应的函数是y = f(x) = ax^2 + b。

    第三张图我也不知道是什么函数,瞎画的。

    第四张图可以认为是一个N次曲线,N = M - 1,M是点集中点的个数,有一个定理是,对于给定的M个点,我们可以用一个M - 1次的函数去完美的经过这个点集。

    真正的线性回归,不仅会考虑使得曲线与给定点集的拟合程度最好,还会考虑模型最简单,这个话题我们将在本章后面的偏差、方差的权衡中深入的说,另外这个话题还可以参考我之前的一篇文章:贝叶斯、概率分布与机器学习,里面对模型复杂度的问题也进行了一些讨论。

    线性回归(linear regression),并非是指的线性函数,也就是

image (为了方便起见,以后向量我就不在上面加箭头了)

    x0,x1…表示一个点不同的维度,比如说上一节中提到的,房子的价钱是由包括面积、房间的个数、房屋的朝向等等因素去决定的。而是用广义的线性函数:

 image    wj是系数,w就是这个系数组成的向量,它影响着不同维度的Φj(x)在回归函数中的影响度,比如说对于房屋的售价来说,房间朝向的w一定比房间面积的w更小。Φ(x)是可以换成不同的函数,不一定要求Φ(x)=x,这样的模型我们认为是广义线性模型。


最小二乘法

示例

某次实验得到了四个数据点 (x, y)(1, 6)(2, 5)(3, 7)(4, 10)(右图中红色的点)。我们希望找出一条和这四个点最匹配的直线 y=\beta_1+\beta_2 x,即找出在某种“最佳情况”下能够大致符合如下超定线性方程组的 \beta_1 和 \beta_2

\begin{alignat}{4}\beta_1  +  1\beta_2 &&\; = \;&& 6 & \\\beta_1  +  2\beta_2 &&\; = \;&& 5 & \\\beta_1  +  3\beta_2 &&\; = \;&& 7 & \\\beta_1  +  4\beta_2 &&\; = \;&& 10 & \\\end{alignat}

最小二乘法采用的手段是尽量使得等号两边的方差最小,也就是找出这个函数的最小值:

\begin{align}S(\beta_1, \beta_2) = &\left[6-(\beta_1+1\beta_2)\right]^2+\left[5-(\beta_1+2\beta_2)   \right]^2 \\&+\left[7-(\beta_1 +  3\beta_2)\right]^2+\left[10-(\beta_1  +  4\beta_2)\right]^2.\\\end{align}

最小值可以通过对 S(\beta_1, \beta_2) 分别求 \beta_1 和 \beta_2 的偏导数,然后使它们等于零得到。

\frac{\partial S}{\partial \beta_1}=0=8\beta_1 + 20\beta_2 -56
\frac{\partial S}{\partial \beta_2}=0=20\beta_1 + 60\beta_2 -154.

如此就得到了一个只有两个未知数的方程组,很容易就可以解出:

\beta_1=3.5
\beta_2=1.4

也就是说直线 y=3.5+1.4x 是最佳的。


偏差、方差的权衡(trade-off):

    偏差(bias)和方差(variance)是统计学的概念。首先得明确的,方差是多个模型间的比较,而非对一个模型而言的,对于单独的一个模型,比如说:

image

    这样的一个给定了具体系数的估计函数,是不能说f(x)的方差是多少。而偏差可以是单个数据集中的,也可以是多个数据集中的,这个得看具体的定义。

    方差和偏差一般来说,是从同一个数据集中,用科学的采样方法得到几个不同的子数据集,用这些子数据集得到的模型,就可以谈他们的方差和偏差的情况了。方差和偏差的变化一般是和模型的复杂程度成正比的,就像本文一开始那四张小图片一样,当我们一味的追求模型精确匹配,则可能会导致同一组数据训练出不同的模型,它们之间的差异非常大。这就叫做方差,不过他们的偏差就很小了,如下图所示:

image     上图的蓝色和绿色的点是表示一个数据集中采样得到的不同的子数据集,我们有两个N次的曲线去拟合这些点集,则可以得到两条曲线(蓝色和深绿色),它们的差异就很大,但是他们本是由同一个数据集生成的,这个就是模型复杂造成的方差大。模型越复杂,偏差就越小,而模型越简单,偏差就越大,方差和偏差是按下面的方式进行变化的:

image     当方差和偏差加起来最优的点,就是我们最佳的模型复杂度。

     用一个很通俗的例子来说,现在咱们国家一味的追求GDP,GDP就像是模型的偏差,国家希望现有的GDP和目标的GDP差异尽量的小,但是其中使用了很多复杂的手段,比如说倒卖土地、强拆等等,这个增加了模型的复杂度,也会使得偏差(居民的收入分配)变大,穷的人越穷(被赶出城市的人与进入城市买不起房的人),富的人越富(倒卖土地的人与卖房子的人)。其实本来模型不需要这么复杂,能够让居民的收入分配与国家的发展取得一个平衡的模型是最好的模型。

    最后还是用数学的语言来描述一下偏差和方差:

image    E(L)是损失函数,h(x)表示真实值的平均,第一部分是与y(模型的估计函数)有关的,这个部分是由于我们选择不同的估计函数(模型)带来的差异,而第二部分是与y无关的,这个部分可以认为是模型的固有噪声。

    对于上面公式的第一部分,我们可以化成下面的形式:

image    这个部分在PRML的1.5.5推导,前一半是表示偏差,而后一半表示方差,我们可以得出:损失函数=偏差^2+方差+固有噪音。

    下图也来自PRML:

image

    这是一个曲线拟合的问题,对同分布的不同的数据集进行了多次的曲线拟合,左边表示方差,右边表示偏差,绿色是真实值函数。ln lambda表示模型的复杂程度,这个值越小,表示模型的复杂程度越高,在第一行,大家的复杂度都很低(每个人都很穷)的时候,方差是很小的,但是偏差同样很小(国家也很穷),但是到了最后一幅图,我们可以得到,每个人的复杂程度都很高的情况下,不同的函数就有着天壤之别了(贫富差异大),但是偏差就很小了(国家很富有)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值