2015年1月11日 星期日

[機器學習](四)多變數/多元線性回歸(Multiple linear regression)學習演算法

上一篇講解了單變數的線性回歸學習演算法,這邊我們將其擴展為多個變數。同樣我們以房價例子為例,只是這次總共有四個房屋的特徵,也就是面積、房間數、層數、屋齡:


我們一樣給出一些定義:

n = 總特徵數
${ x }^{ (i) }$ = 第i個樣本的所有特徵值,我們以向量表示,例如${ x }^{ (2) } = \begin{bmatrix} 1416 \\ 3 \\ 2 \\ 40 \end{bmatrix}$
${ x }_{ j }^{ (i) }$ = 第i個樣本的第j個特徵的值,例如${ x }_{ 3 }^{ (2) }$ = 2。

為了方便表示,額外定義了一個特徵${ x }_{ 0 }^{ (i) }=1$,使得原本n維的特徵變成n+1維。


所有特徵我們將它表示成一個向量$x=\begin{bmatrix} { x }_{ 0 } \\  { x }_{ 1 } \\{ x }_{ 2 } \\...\\{ x }_{ n } \end{bmatrix}$ ,所有參數我們也將它表示成一個向量$\theta =\begin{bmatrix} { \theta  }_{ 0 } \\ { \theta  }_{ 1 } \\ { \theta  }_{ 2 } \\ ... \\ { \theta  }_{ n } \end{bmatrix}$

將兩者相乘後我們的假設函數${ h }_{ \theta  }(x)$就可以寫成${ \theta  }^{ T }x$。如此將特徵以及參數表示成向量形式,就稱為多元線性回歸(Multivariate Linear Regression),多元的意思就是用來預測多個特徵,只是一種更加好聽的說法。

將梯度下降法用於多元線性回歸:


更新$\theta$的方法與單變數線性回歸時的方法一樣,只是現在要同時更新${ \theta  }_{ 0 }$到${ \theta  }_{ n }$。

單變數線性回歸時,我們的特徵個數只有一個,我們把它叫做${ x }^{ (i) }$。在多變數線性回歸時,若仍然只有一個特徵,我們會叫它${ x }_{ 1 }^{ (i) }$,將梯度下降法用在多變數線性回歸的方式如下,深藍色框為成本函數對參數${ \theta  }_{ 0 }$求的偏導項。


在這裡,我們會改寫一下梯度下降演算法式子的寫法。舉例來說,如果現在有兩個特徵,則兩邊粉色框中的式子是一樣的,因為慣例上我們都假設${ x }_{ 0 }^{ (i) }=1$,之前單變數時其實偷偷省略了這個${ x }_{ 0 }^{ (i) }$。

以此類推,下面淺藍色框兩邊也都一樣,之前只有一個特徵時,最尾端寫成${ x }^{ (i) }$,現在會寫成${ x }_{ 1 }^{ (i) }$。綠色框則是因為現在有兩個特徵,比之前多了一個特徵${ x }_{ 2 }^{ (i) }$所多出的更新式子。

沒有留言:

張貼留言