[机器学习笔记] Note3--多变量线性回归
繼續是機器學習課程的筆記,這節課介紹的是多變量的線性回歸。
多變量線性回歸
多維特征
上節課介紹的是單變量的線性回歸,這節課則是進一步介紹多變量的線性回歸方法。
現在假設在房屋問題中增加更多的特征,例如房間數,樓層等,構成一個含有多個變量的模型,模型中的特征為(x1,x2,…,xn).
如下圖所示:
在增加這么多特征后,需要引入一系列新的注釋:
- n 代表特征的數量
- x(i)代表第i個訓練實例,是特征矩陣中的第i行,是一個向量
- x(i)j代表特征矩陣中第i行的第j個特征,也是第i個訓練實例的第j個特征
所以在如上圖中,特征數量n=4,然后x(2)=?????14163240?????,這表示的就是圖中第二行的數據,也是第二個訓練實例的特征,而x(2)3=2,表示的就是第二行第3列的數據。
現在支持多變量的假設h表示為:
這個公式中有n+1個參數和n個變量,為了讓公式可以簡化一些,引入 x0 =1,則公式變為:
hθ(x)=θ0x0+θ1x1+θ2x2+?+θnxn
此時模型中的參數是一個n+1維的向量,任何一個訓練實例也是n+1維的向量,特征矩陣X的維度是 m*(n+1)。
此時特征矩陣 x=?????????x0x1x2?xn?????????,參數 θ=?????????θ0θ1θ2?θn?????????,所以假設 h就可以如下表示:
hθ(x)=θTx
上述公式中的 T表示矩陣轉置。
多變量梯度下降
與單變量一樣,我們也需要為多變量構建一個代價函數,同樣也是一個所有建模誤差的平方和,即:
目標也是找到讓代價函數最小的一系列參數,使用的也是梯度下降法,多變量線性回歸的批量梯度下降算法如下所示:
Repeat{
}
也就是
Repeat{
}
通過求導數后,可以得到
Repeat{
}
其更新方法如下所示:
特征縮放
在面對多特征問題的時候,我們要保證這些特征都具有相近的尺度,這將幫助梯度下降算法更快地收斂。
以房價問題為例,假設我們使用兩個特征,房屋的尺寸和房間的數量,前者的值是0-2000平方英尺,而后者的值是0-5,以兩個參數分別為橫縱坐標,繪制代價函數的等高線圖,如下圖所示,能看出圖像會顯得很扁,梯度下降算法需要非常多次的迭代才能收斂。
解決的方法就是嘗試將所有特質的尺度都盡量縮放到?1≤xi≤1之間。最簡單的方法如下所示:
學習率
對于梯度下降,我們還需要解決的問題有:
- 如何判斷當前的梯度下降是正常工作,即最終可以收斂;
- 如何選擇一個學習率
對于第一個問題,由于迭代次數會隨著模型不同而不同,我們也不能提前預知,但可以通過繪制迭代次數和代價函數的圖表來觀察算法在何時收斂。如下圖所示:
由上圖所示,當曲線在每次迭代后都是呈下降趨勢,那么可以表明梯度下降是正常工作的,然后圖中可以看出在迭代次數達到400后,曲線基本是平坦的,可以說明梯度下降法在迭代到這個次數后已經收斂了。
當然也有一些自動測試是否收斂的,例如將代價函數的變化值與某個閾值(如0.001)進行比較。但選擇這個閾值是比較困難的,所以通常看上面的圖表會更好。
對于第二個問題,如何選擇一個學習率。由于梯度下降算法的每次迭代都會受到學習率的影響,如果學習率過小,那么達到收斂需要的迭代次數會非常大;但如果學習率過大,每次迭代可能不會減小代價函數,可能會越過局部最小值導致無法收斂。
通常可以考慮嘗試這些學習率α=0.001,0.003,0.01,0.03,0.1,0.3,1,…。
特征和多項式回歸
線性回歸并不適用于所有數據,有時需要曲線來適應數據,比如一個二次方模型hθ(x)=θ0+θ1x1+θ2x22,或者三次方模型hθ(x)=θ0+θ1x1+θ2x22+θ3x33
而這就是多項式回歸,比如在房屋問題中,我們可以選擇3個特征,一個房屋的價格,房屋的面積,房屋的體積,這樣就會用到三次方模型,其曲線如下圖所示:
當然,如果我們希望繼續使用線性回歸模型,可以令:
這樣就可以將模型轉換為線性回歸模型hθ(x)=θ0+θ1x1+θ2x2+θ3x3。但是如果使用多項式回歸模型,在運行梯度下降算法前,有必要使用特征縮放。
正規方程(Normal Equation)
到目前為止,我們都是使用梯度下降算法來解決線性回歸問題,但是對于某些線性回歸問題,正規方程方法是更好的解決方案。
正規方程是通過求解下面的方程來找出使得代價函數最小的參數的:
假設我們的數據如下所示:
![此處輸入圖片的描述][1]
然后我們在每行數據都添加一個x0=1,可以得到下列表格數據:
那么可以得到我們的訓練集特征矩陣X以及訓練結果向量y:
則利用正規方法可以得到向量 θ=(XTX)?1XTy,其中T代表矩陣轉置,上標-1表示矩陣的逆。
注意:對于那些不可逆的矩陣(通常是因為特征之間不獨立,如同時包含英尺為單位的尺寸和米為單位的尺寸兩個特征,也有可能是因為特征數據量大于訓練集的數量),正規方程方法是不能用的。
梯度下降法與正規方程的比較
下面給出梯度下降方法和正規方法的比較:
| 需要選擇學習率α | 不需要 |
| 需要多次迭代 | 一次運算得到 |
| 當特征量n大時也能較好使用 | 如果特征數量n比較大則運算代價大,因為矩陣逆的運算時間復雜度為O(n3),通常來說n小于10000還是可以接受的 |
| 適用于各種類型的模型 | 只適用于線性模型,不適合邏輯回歸模型等其他模型 |
小結
本節課內容主要是介紹了多變量的線性回歸方法,跟單變量線性回歸方法還是比較類型的,只是需要增加多幾個變量,同樣是使用誤差平方和函數作為代價函數,然后也是使用梯度下降算法。但需要注意的是由于是多個變量,每個變量的取值范圍可能相差很大,這就需要使用特征縮放,通常是將每個特征縮放到[?1,1],然后就是介紹了如何選擇學習率以及判斷梯度下降是否收斂的問題。
接著就是介紹了多項式回歸方法,這是由于線性回歸可能對某些數據并不適用,所以需要使用如二次方模型,三次方模型等訓練數據,但可以通過變量轉換來重新使用線性回歸模型,但是需要使用特征縮放方法。
最后就是介紹了一種跟梯度下降方法有同樣效果的正規方程方法,主要是通過求解??θjJ(θj)=0來得到參數值,并給出兩種方法的對比。
總結
以上是生活随笔為你收集整理的[机器学习笔记] Note3--多变量线性回归的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: loadrunner11 下载路径+安装
- 下一篇: 什么是WAP PUSH?