code

2017年2月2日 星期四

Machine Learning筆記7 - Polynomial Regression

Data即便看起來不像是直線,也可以apply linear regression

例如下面這個data set:

明顯的,我們找不出一條直線方程式可以適合的fit這個data set,但是我們可以找出一個x的三次方程式,配上一個係數vector w:


我們此時可以用linear regression來找出w,為什麼?



1-D Polynomial Regression

因為linear regression的定義是:prediction f和未知數w是線性關係(不會出現w的次方>=2),跟x無關:


所以即便用一個x的三次方程式來fit data set,只要w的次方<=1,就是一個f的linear function。

所以對一個polynomial x function才能fit data set的problem來說,我們可以把所有的input data寫成一個matrix X (最高次方p),當然要記得加上x0項 = 1:


接下來就是解optimize least squared error,答案仍然是一樣的:


Underfitting & Overfitting

如果用x的0次方程式來fit某個1-D data set如下:


由於我們只需要找到w0,所以根本不用管xi data,所以X matrix只會有一個column,而且全部都是1。最後找到的least square polynomial只是一個常數函數 f = w0,見上圖。這是underfitting。


如果用x的一次函數來fit這個data set的話,仍然是underfitting:

如果用x的三次方程式來fit這個data set的話,看起來是最好的:


提醒一下,預測出來的y' = w0 + w1*x1 + w2*x2^2 + w3*x3^3


如果我們自作主張,用x的十次方函數來fit這個只有十個點的data set:


可以看到最後形成的least square prediction f即便可以通過所有的點(因為有十個點對應十個未知數w0 ~ w9,一定能解出這十個連立方程式),但是完全不具預測性。這就是overfitting。


2-D以上Polynomial Regression

以下slide講得很清楚,懶得打字啦:



Summary

polynomial regression基本上就是linear regression的x function高次方版本,可以寫成通式如下:



不論g(x)是什麼,只要f和w的關西是線性的(w次方 <= 1),則我們都可以使用least square estimation來找出w vector,做出一個prediction function y' (or say f):




沒有留言:

張貼留言