线性回归----最小二乘法

来源:互联网 发布:对p2p网络信贷的看法 编辑:程序博客网 时间:2024/05/28 23:22

转载:http://blog.sciencenet.cn/blog-430956-621997.html 

            http://sbp810050504.blog.51cto.com/2799422/1269572

最小二乘:

“最小二乘法”的核心就是保证所有数据偏差的平方和最小。(而“平方”在古代就被称为“二乘”)

假设我们收集到一些船只的数据:

\

我们画出散点图:

假如我们选取前两个点:(237,32.4)(152,15.5)就可以得到方程组:

并拟合出一条直线:

现在,问题来了,这样的两个a,b是不是最优解呢,专业的说法:a,b是不是模型的最优化参数?在这之前我们得

先解决一个问题:a,b在满足什么条件的时候才是最好的。答案是:保证所有数据偏差的平方和最小的时候。至于为什么

使用平方在最后进行说明。

先来看看怎么计算最好的a,b。

假设所有数据的平方和为M,则

 

  我们现在要做的就是求使得M最小的a和b,请注意这个方程,我们已经知道yi和xi,那么这个方程其实就是一个以

a,b为自变量,以M为因变量的二元函数。

这时候我们就可以利用偏导数进行求解,在偏导数中,就是把两个变量中的一个视为常数来进行求导,通过对M来

求偏导,我们得出一个方程组:

 

这样就很容易求得a,b了。


“为什么要使用平方和而不是绝对值的和”

首先我们考虑数据拟合的实际状况;当我们寻找模型来拟合数据的时候,偏差是不可避免的。对一个拟合良好的

模型而言,这个偏差整体应该符合正态分布。这个为什么是正态分布?其实就是个假设,你用什么分布,就要在后继

的计算中运用相应的概率密度函数。而偏差符合什么分布最靠谱呢?扔一枚硬币,扔一次硬币每一面出现的概率是0.5,

你扔多次,某一面出现的概率次数就符合二项分布,这是离散的。当次数趋向于无穷大时候,再来看这个分布就符合正

态分布。

接下来我们理解另一个函数------极大似然函数,在模型拟合中,极大似然函数的本质就是让我们用来拟合数据模型

与每个数据点更为相符,这就是要求偏差的大小应该基本一致,或者说符合正态分布。怎么才能使偏差的大小基本一致,

这里我们使用偏差出现的概率相乘的大小来表示。因为概率大小都在0到1之间并符合期望为x的正态分布,两个偏差值

越接近中心期望x,乘积越大。极大似然函数就是用来表示这一关系的,当然在这里联乘的形式可以取对数改为概率求和,

如果你还有印象的话,正态分布的概率密度函数是欧拉数的幂函数形式,而幂中有一个负号有一个平方,平方就是偏差的

平方,负号则将原来求最大值变成了求最小值,这时候反过来看这个极大似然函数的求解其实就是最小二乘法。

问题描述是:给定平面上 N 个点,(这里不妨假设我们想用一条直线来拟合这些点——回归可以看作是拟合的特例,

即允许误差的拟合),找出一条最佳描述了这些点的直线。


一个接踵而来的问题就是,我们如何定义最佳?我们设每个点的坐标为 (Xi, Yi) 。如果直线为 y = f(x) 。那么 (Xi, Yi) 跟

直线对这个点的“预测”:(Xi, f(Xi)) 就相差了一个 ΔYi = |Yi – f(Xi)| 。最小二乘就是说寻找直线使得 (ΔY1)^2 + (ΔY2)^2 + ..

(即误差的平方和)最小,至于为什么是误差的平方和而不是误差的绝对值和,统计学上也没有什么好的解释。

然而贝叶斯方法却能对此提供一个完美的解释。
我们假设直线对于坐标 Xi 给出的预测 f(Xi) 是最靠谱的预测,所有纵坐标偏离 f(Xi) 的那些数据点都含有噪音,

是噪音使得它们偏离了完美的一条直线,一个合理的假设就是偏离路线越远的概率越小,具体小多少,可以

用一个正态分布曲线来模拟,这个分布曲线以直线对 Xi 给出的预测 f(Xi) 为中心,实际纵坐标为 Yi 的点

(Xi, Yi) 发生的概率就正比于 EXP[-(ΔYi)^2]。(EXP(..) 代表以常数 e 为底的多少次方)。

现在我们回到问题的贝叶斯方面,我们要想最大化的后验概率是:
P(h|D) ∝ P(h) * P(D|h)
又见贝叶斯!这里 h 就是指一条特定的直线,D 就是指这 N 个数据点。我们需要寻找一条直线 h 使得

P(h) * P(D|h) 最大。很显然,P(h) 这个先验概率是均匀的,因为哪条直线也不比另一条更优越。所以

我们只需要看 P(D|h) 这一项,这一项是指这条直线生成这些数据点的概率,刚才说过了,生成数据点

(Xi, Yi) 的概率为 EXP[-(ΔYi)^2] 乘以一个常数。而 P(D|h) = P(d1|h) * P(d2|h) * .. 即假设各个数据点是

独立生成的,所以可以把每个概率乘起来。于是生成 N 个数据点的概率为

EXP[-(ΔY1)^2] * EXP[-(ΔY2)^2] * EXP[-(ΔY3)^2] * .. = EXP{-[(ΔY1)^2 + (ΔY2)^2 + (ΔY3)^2 + ..]}

最大化这个概率就是要最小化 (ΔY1)^2 + (ΔY2)^2 + (ΔY3)^2 + .. 。 熟悉这个式子吗?


原创粉丝点击