监督学习—最小二乘法
原文作者:馬同學(xué)
原文地址:最小二乘法的本質(zhì)是什么?
?最小平方法是十九世紀(jì)統(tǒng)計(jì)學(xué)的主題曲。從許多方面來(lái)看,它之于統(tǒng)計(jì)學(xué)就相當(dāng)于十八世紀(jì)的微積分之于數(shù)學(xué)。
---史蒂芬-史蒂格勒《The History of Statics》
目錄
一、日用而不知
二、最小二乘法
三、推廣
四、最小二乘法與正太分布
五、skleran的LR模型使用
一、日用而不知
來(lái)看一個(gè)生活中的例子,比如有5把尺子,如下圖所示:
用他們分別測(cè)量一線段的長(zhǎng)度,得到的數(shù)值分別為(顏色指不同的尺子):
| 紅 | 10.2 |
| 藍(lán) | 10.3 |
| 橙 | 9.8 |
| 黃 | 9.9 |
| 綠 | 9.8 |
之所以出現(xiàn)的不同的值,可能因?yàn)?#xff1a;
- 不同廠家生產(chǎn)的尺子,精度不同
- 材質(zhì)不同,熱脹冷縮不一樣
- 測(cè)量的時(shí)候心情起伏不定
- 。。。。
總之就是有誤差,這種情況下,一般取平均值來(lái)作為線段的長(zhǎng)度:
日常中就是這么使用的,可是作為很事er的數(shù)學(xué)愛(ài)好者,自然要想下:
- 這樣做有道理么?
- 用調(diào)和平均數(shù)行不行?
- 用中位數(shù)行不行?
- 用幾何平均數(shù)行不行?
二、最小二乘法
換一種思路來(lái)思考剛才的問(wèn)題,首先把測(cè)試得到的值畫(huà)在笛卡爾坐標(biāo)系中,分別記做yi:
首先,要把猜測(cè)的線段長(zhǎng)度的真實(shí)值用平行于橫軸的直線來(lái)表示,因?yàn)槭遣聹y(cè)的,所以用虛線畫(huà),記做y:
每個(gè)點(diǎn)都向y做垂線,垂線的長(zhǎng)度就是|y-yi|,也可以理解為測(cè)量值和真實(shí)值之間的誤差:
因?yàn)檎`差是長(zhǎng)度還要取絕對(duì)值,計(jì)算起來(lái)麻煩,就干脆用平方來(lái)代表誤差:
?誤差的平方和就是:
因?yàn)閥是猜測(cè)的,可以不斷變化:
自然誤差的平方和是不斷變化的,
法國(guó)數(shù)學(xué)家,阿德里安-馬里·勒讓德提出讓總的誤差的平方最小的y值就是真值,這是基于,如果誤差是隨機(jī)的,應(yīng)該圍繞真值上下波動(dòng),(關(guān)于這點(diǎn)可以看下如何理解無(wú)偏估計(jì))。勒讓德的想法變成代數(shù)式就是:
這個(gè)猜想也蠻符合直覺(jué)的,來(lái)算一下。這是一個(gè)二次函數(shù),對(duì)其求導(dǎo),導(dǎo)數(shù)為0的時(shí)候取得最小值:
正好是算數(shù)平均數(shù)。原來(lái)算數(shù)平均數(shù)可以讓誤差最小啊,這樣看來(lái)選用它顯得講道理了。以下這種方法就是最小二乘法,所謂二乘就是平方的意思,臺(tái)灣直接翻譯為最小平方法
三、推廣
算數(shù)平均數(shù)只是最小二乘法的特例,適用范圍比較狹窄,而最小二乘法用途就比較廣泛。比如溫度與冰淇淋的銷(xiāo)量:
看上去像某種線性關(guān)系:
可以假設(shè)這種線性關(guān)系為:
通過(guò)最小二乘法的思想:
上圖的i、y、x分別為:
總的誤差平方為:
不同的a、b會(huì)導(dǎo)致不同的誤差平方,根據(jù)多元微積分的知識(shí),當(dāng):
這個(gè)時(shí)候誤差平方取最小值。對(duì)于a、b而言,上述方程組為線性方程組,用之前的數(shù)據(jù)解出來(lái),
也就是這跟直線:
其實(shí)還可以假設(shè):
在這個(gè)假設(shè)下,可以根據(jù)最小二乘法,算出a、b、c,得到下面這個(gè)紅色的曲線:
同一組數(shù)據(jù),選擇不同的f(x),通過(guò)最小二乘法可以得到不一樣的擬合曲線:
不同的數(shù)據(jù),更可以選擇不同的f(x),通過(guò)最小二乘法可以得到不一樣的擬合曲線:
?f(x)也不能選擇任意的函數(shù),還是有一些講究的,這里就不介紹了。
四、最小二乘法與正太分布
我們對(duì)勒讓德的猜測(cè),即最小二乘法,仍然抱有懷疑,萬(wàn)一這個(gè)猜測(cè)是錯(cuò)誤的怎么辦?
?數(shù)學(xué)王子高斯也想我們一樣持有懷疑,高斯換了一個(gè)思考框架,通過(guò)統(tǒng)計(jì)論那一套來(lái)思考
五、skleran的LR模型使用
LinearRegression?擬合一個(gè)帶有系數(shù)??的線性模型,使得數(shù)據(jù)集實(shí)際觀測(cè)數(shù)據(jù)和預(yù)測(cè)數(shù)據(jù)(估計(jì)值)之間的誤差平方和最小。其數(shù)學(xué)表達(dá)式為:
?
LinearRegression?會(huì)調(diào)用?fit?方法來(lái)擬合數(shù)組(x,y),并且將線性模型的系數(shù)??存儲(chǔ)在其成員變量?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])然而,對(duì)于最小二乘的系數(shù)估計(jì)問(wèn)題,其依賴(lài)于模型各項(xiàng)的相互獨(dú)立性。當(dāng)各項(xiàng)是相關(guān)的,且設(shè)計(jì)矩陣??的各列近似線性相關(guān),那么,設(shè)計(jì)矩陣會(huì)趨向于奇異矩陣,這會(huì)導(dǎo)致最小二乘估計(jì)對(duì)于隨機(jī)誤差非常敏感,產(chǎn)生很大的方差。例如,在沒(méi)有實(shí)驗(yàn)設(shè)計(jì)的情況下收集到的數(shù)據(jù),這種多重共線性(multicollinearity)的情況可能真的會(huì)出現(xiàn)。
總結(jié)
以上是生活随笔為你收集整理的监督学习—最小二乘法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 算法测试—机器学习算法评价指标
- 下一篇: sklearn应用—高斯混合