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