使用最大似然法來求解線性模型(1)


在Coursera機器學習課程中,第一篇練習就是如何使用最小均方差(Least Square)來求解線性模型中的參數。本文從概率論的角度---最大化似然函數,來求解模型參數,得到線性模型。本文內容來源於:《A First Course of Machine Learning》中的第一章和第二章。

 

先來看一個線性模型的例子,奧林匹克百米賽跑的男子組歷年數據如下:

 

 

所謂求得一個線性模型就是:給定一組數據(上圖中的很多點),如何找到一條合適的直線,讓這條直線能夠更好地“匹配”這些點。

一種方式就是使用最小二乘法,通過最小化下面的代價函數J(θ)求得一條直線方程--即線性模型。

 

其中,hθ(x)是待求解的線性模型(本例中就是一條直線),y(i)是樣本x(i)對應的實際值,hθ(x(i))是線性模型在樣本x(i)上的預測值。我們的目標就是讓實際值與預測值二者盡可能地接近--二者之間的“差”盡可能地小,這樣我們的預測結果就越准確,我們的線性模型也越好(不考慮overfitting)

最小二乘法就是最小化J(θ)這個函數,解出θ,代入hθ(x),得到一條直線(hθ(x)就是直線方程)。而這條直線,就是我們的線性模型了。

 

對於這種方式而言,我們的模型就是一條直線,在我們的模型中(直線)沒有能夠反映真實值與預測值之間的誤差的因子。把模型稍微修改一下:

從原來的:(這里的w就相當於上面的θ,t 就是hθ(x),只是為了統一 一下《A First Course of Machine Learning》中用到的符號)

t=wT*x

改成:

t=wT*x+ξ

其中,ξ 用來表示“誤差”---noise,x是訓練樣本數據,w是模型的參數。

 

這樣,我們的新模型表達式:t=wT*x+ξ 就可以顯示地表示 noise 了(不僅僅是一條直線表達式了)。那現在問題還是:怎樣求得一個“最好的” w 和 ξ,得到“最好的”模型?

 

現在不是用上面的最小二乘法了求解w 和 ξ 了,而是用最大似然函數法---(見使用最大似然法來求解線性模型(2)-為什么是最大化似然函數?

 

原文:http://www.cnblogs.com/hapjin/p/6623127.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM