機器學習第三課:多變量線性迴歸

說明:本文章來自本來對斯坦福大學機器學習視頻教程的學習總結,如有侵權,請聯繫本人,立刻刪除。

在單變量的迴歸模型,增加更多的特徵,就構成了多變量的模型,模型中的特徵爲(x1,x2,.....,xn)


這個公式中有 n+1 個參數和 n 個變量,爲了使得公式能夠簡化一些,引入 x0=1,則公式轉化爲:  

此時模型中的參數是一個 n+1 維的向量,任何一個訓練實例也都是 n+1 維的向量,特徵矩陣 X 的維度是 m*(n+1)。 因此公式可以簡化爲: ,其中上標 T 代表矩陣轉置。




   

我們開始隨機選擇一系列的參數值,計算所有的預測結果後,再給所有的參數一個新的值,如此循環直到收斂。 



梯度下降法實踐 1-特徵縮放 

我們面對多維特徵問題的時候,我們要保證這些特徵都具有相近的尺度,這將幫助梯度下降算法更快地收斂。 以房價問題爲例,假設我們使用兩個特徵,房屋的尺寸和房間的數量,尺寸的值爲 0-2000 平方英尺,而房間數量的值則是 0-5,以兩個參數分別爲橫縱座標,繪製代價函數的等高線圖能,看出圖像會顯得很扁,梯度下降算法需要非常多次的迭代才能收斂。 



解決的方法是嘗試將所有特徵的尺度都儘量縮放到-1 到 1 之間。如圖:



最簡單的方法是令: 




梯度下降法實踐 2-學習率 :

梯度下降算法收斂所需要的迭代次數根據模型的不同而不同,我們不能提前預知,我們可以繪製迭代次數和代價函數的圖表來觀測算法在何時趨於收斂。 


也有一些自動測試是否收斂的方法,例如將代價函數的變化值與某個閥值(例如 0.001)進行比較,但通常看上面這樣的圖表更好。 
梯度下降算法的每次迭代受到學習率的影響,如果學習率 α 過小,則達到收斂所需的迭代次數會非常高;如果學習率 α 過大,每次迭代可能不會減小代價函數,可能會越過局部最小值導致無法收斂。 

通常可以考慮嘗試些學習率: α=0.01,0.03,0.1,0.3,1,3,10

特徵和多項式迴歸:

通常我們需要先觀察數據然後再決定準備嘗試怎樣的模型。 另外,我們可以令

從而將模型轉化爲線性迴歸模型。 

根據函數圖形特性,我們還可以使: 

注:如果我們採用多項式迴歸模型,在運行梯度下降算法前,特徵縮放非常有必要。