监督学习—最小二乘法
原文作者:馬同學
原文地址:最小二乘法的本質是什么?
?最小平方法是十九世紀統計學的主題曲。從許多方面來看,它之于統計學就相當于十八世紀的微積分之于數學。
---史蒂芬-史蒂格勒《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?擬合一個帶有系數??的線性模型,使得數據集實際觀測數據和預測數據(估計值)之間的誤差平方和最小。其數學表達式為:
?
LinearRegression?會調用?fit?方法來擬合數組(x,y),并且將線性模型的系數??存儲在其成員變量?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])然而,對于最小二乘的系數估計問題,其依賴于模型各項的相互獨立性。當各項是相關的,且設計矩陣??的各列近似線性相關,那么,設計矩陣會趨向于奇異矩陣,這會導致最小二乘估計對于隨機誤差非常敏感,產生很大的方差。例如,在沒有實驗設計的情況下收集到的數據,這種多重共線性(multicollinearity)的情況可能真的會出現。
總結
以上是生活随笔為你收集整理的监督学习—最小二乘法的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 算法测试—机器学习算法评价指标
- 下一篇: sklearn应用—高斯混合
