在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
