监督学习—最小二乘法

原文作者:马同学

原文地址:最小二乘法的本质是什么?

 最小平方法是十九世纪统计学的主题曲。从许多方面来看,它之于统计学就相当于十八世纪的微积分之于数学。

---史蒂芬-史蒂格勒《The History of Statics》

目录

一、日用而不知

二、最小二乘法

三、推广

四、最小二乘法与正太分布

五、skleran的LR模型使用


一、日用而不知

来看一个生活中的例子,比如有5把尺子,如下图所示:

用他们分别测量一线段的长度,得到的数值分别为(颜色指不同的尺子):

 长度
10.2
10.3
9.8
9.9
绿9.8

之所以出现的不同的值,可能因为:

  • 不同厂家生产的尺子,精度不同
  • 材质不同,热胀冷缩不一样
  • 测量的时候心情起伏不定
  • 。。。。

总之就是有误差,这种情况下,一般取平均值来作为线段的长度:

日常中就是这么使用的,可是作为很事er的数学爱好者,自然要想下:

  • 这样做有道理么?
  • 用调和平均数行不行?
  • 用中位数行不行?
  • 用几何平均数行不行?

二、最小二乘法

换一种思路来思考刚才的问题,首先把测试得到的值画在笛卡尔坐标系中,分别记做yi:

首先,要把猜测的线段长度的真实值用平行于横轴的直线来表示,因为是猜测的,所以用虚线画,记做y:

每个点都向y做垂线,垂线的长度就是|y-yi|,也可以理解为测量值和真实值之间的误差:

因为误差是长度还要取绝对值,计算起来麻烦,就干脆用平方来代表误差:

 误差的平方和就是:

因为y是猜测的,可以不断变化:

自然误差的平方和是不断变化的,

法国数学家,阿德里安-马里·勒让德提出让总的误差的平方最小的y值就是真值,这是基于,如果误差是随机的,应该围绕真值上下波动,(关于这点可以看下如何理解无偏估计)。勒让德的想法变成代数式就是:

这个猜想也蛮符合直觉的,来算一下。这是一个二次函数,对其求导,导数为0的时候取得最小值:

正好是算数平均数。原来算数平均数可以让误差最小啊,这样看来选用它显得讲道理了。以下这种方法就是最小二乘法,所谓二乘就是平方的意思,台湾直接翻译为最小平方法

三、推广

算数平均数只是最小二乘法的特例,适用范围比较狭窄,而最小二乘法用途就比较广泛。比如温度与冰淇淋的销量:

看上去像某种线性关系:

可以假设这种线性关系为:

通过最小二乘法的思想:

上图的i、y、x分别为:

总的误差平方为:

不同的a、b会导致不同的误差平方,根据多元微积分的知识,当:

这个时候误差平方取最小值。对于a、b而言,上述方程组为线性方程组,用之前的数据解出来,

也就是这跟直线:

其实还可以假设:

在这个假设下,可以根据最小二乘法,算出a、b、c,得到下面这个红色的曲线:

同一组数据,选择不同的f(x),通过最小二乘法可以得到不一样的拟合曲线:

不同的数据,更可以选择不同的f(x),通过最小二乘法可以得到不一样的拟合曲线:

 f(x)也不能选择任意的函数,还是有一些讲究的,这里就不介绍了。

四、最小二乘法与正太分布

我们对勒让德的猜测,即最小二乘法,仍然抱有怀疑,万一这个猜测是错误的怎么办?

 数学王子高斯也想我们一样持有怀疑,高斯换了一个思考框架,通过统计论那一套来思考

五、skleran的LR模型使用

LinearRegression 拟合一个带有系数 w = (w_1, ..., w_p) 的线性模型,使得数据集实际观测数据和预测数据(估计值)之间的误差平方和最小。其数学表达式为:

\underset{w}{min\,} {|| X w - y||_2}^2

 

LinearRegression 会调用 fit 方法来拟合数组(x,y),并且将线性模型的系数 w 存储在其成员变量 coef_ 中:

>>> from sklearn import linear_model
>>> reg = linear_model.LinearRegression()
>>> reg.fit ([[0, 0], [1, 1], [2, 2]], [0, 1, 2])
LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)
>>> reg.coef_
array([ 0.5,  0.5])

然而,对于最小二乘的系数估计问题,其依赖于模型各项的相互独立性。当各项是相关的,且设计矩阵 X 的各列近似线性相关,那么,设计矩阵会趋向于奇异矩阵,这会导致最小二乘估计对于随机误差非常敏感,产生很大的方差。例如,在没有实验设计的情况下收集到的数据,这种多重共线性(multicollinearity)的情况可能真的会出现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值