天天看點

機器學習之——多變量線性回歸

在之前的部落格中,描述過單變量線性回歸(linear regression with one variables)的模型,這次來分享一下多變量線性回歸模型(linear regression

with multiple variables)。

我們還是使用之前的問題,對房價的預測。這一次增加更多的特征,例如房子的樓層數、卧室數量等,這樣就構成了一個含有多個變量的模型,模型中的特征我們标記為(x1,x2,x3,...,xn)。

機器學習之——多變量線性回歸

增添了更多的特征之後,我們還要引入一些新的标注:

機器學習之——多變量線性回歸

支援多變量的假設函數 h 的表達式為:

機器學習之——多變量線性回歸

我們看到,這個表達式中有n+1個參數和n個變量(ø0沒有變量),我們為了使公式能夠簡化一些,添加一個x0使其的值為1,即:x0=1,這樣公式便轉化為:

機器學習之——多變量線性回歸

此時,這個模型中的參數是一個n+1維的向量,實際上在多變量回歸模型中,任何一個訓練集也都是n+1維的向量,特征矩陣x的次元此時是m*n+1。

是以,我們的假設函數 h 的表達式可以簡化成:

機器學習之——多變量線性回歸

參數向量ø的轉置乘上特征向量x。

到目前,我們得到了模型的假設函數 h ,下一步我們來建構代價函數(cost function)。

多變量線性回歸的代價函數與單變量線性回歸的代價函數相似,是所有模組化誤差的平方和(mse),即:

機器學習之——多變量線性回歸

我們得到了代價函數,我們的目标也就和單變量線性回歸問題中的一樣,找出使得代價函數最小的一系列參數。我們也是用批量梯度下降(batch gradient descent)的方法:

機器學習之——多變量線性回歸

将代價函數帶入,即:

機器學習之——多變量線性回歸

求導之後,得到:

機器學習之——多變量線性回歸

在初始狀态,我們随機選擇一系列參數值,計算所有的預測結果之後,再給所有的參數一個新的值,如此循環直到收斂(convergence)。

到此,我們已經實作了多變量的線性回歸。但是在計算的過程當中,我們發現,有很多時候,參數的取值差距非常大,導緻很多時候要進行大量的大數值的計算。在處理多元特征(多變量)的問題時,我們要保證這些特征都具有相近的範圍,這樣将更好的幫助梯度下降算法更快的收斂。這時,我們可以使用特征縮放(features scaling)方法。

我們還是以放假預測問題為例,假設我們使用兩個特征,房屋的尺寸和房間的數量。房屋的尺寸範圍在 0 ~ 2000 平方英尺, 房間數量在 0 ~ 5 , 以這兩個參數為橫縱坐标,繪制代價函數的等高線圖能看出圖像會顯得很扁,梯度下降算法要執行很多次疊代才能收斂。

機器學習之——多變量線性回歸

特征縮放解決這個問題,是嘗試将所有特征的取值範圍盡量都縮放到 -1 ~ 1 之間。最簡單的方法是令 :

機器學習之——多變量線性回歸

其中,xn代表第n個特征,µn代表平均值(ave),sn代表标準差(sd)。

梯度下降算法的表達式中,有一個alpha學習速率(learning rate)。算法所需要的疊代次數根據模型的不同而不同,我們這方面不能夠提前預知,我們可以繪制疊代次數和代價函數的圖表來觀測算法在何時趨于收斂。

機器學習之——多變量線性回歸

也有一些自動測試是否收斂的方法,例如:将代價函數的變化值與一個常數門檻值(0.001)進行比較。但是我個人感覺還是上面的圖表更直覺一些。

梯度下降算法每次疊代,都會受到學習速率的影響,如果學習速率較小,則達到收斂所需要疊代的次數就會非常高;反之,如果alpha過大,則每次疊代可能都不會減小代價函數的結果,甚至會超過局部最小值導緻無法收斂。

通常,在我做一些模型時,我會設定學習速率的值在 0.01,0.03,0.1,0.3,1,3,10 這些參考值。

綜上,就是多變量線性回歸模型的主要内容。下一次将給大家分享

多項式回歸于正規方程(polynomial regression and normal equation)。

繼續閱讀