之前的文章中已經(jīng)講述了簡單的一元線性回歸的基礎(chǔ)知識脏嚷,現(xiàn)在我們來繼續(xù)討論多元線性回歸。本文針對吳恩達機器學(xué)習(xí)第二周課程多元線性回歸部分擎场。
假設(shè)函數(shù)
所謂多元線性回歸正如其名字一樣羽德,就是說這里的變量是多個的,下面介紹一下如何表示含有多個變量情況下的假設(shè)函數(shù):
之前的一元線性回歸中有變量表示i個訓(xùn)練樣本的特征值迅办,現(xiàn)在由于有多個變量宅静,因此我們用
表示第i個訓(xùn)練樣本的特征j的值,用
表示第i個訓(xùn)練樣本的所有特征站欺,m表示訓(xùn)練集的大小姨夹,n表示特征的數(shù)量。為了更好的理解這個函數(shù)矾策,我們可以舉個房價的例子:想象
是房子的基礎(chǔ)價格磷账,
表示單位面積的房價,
表示每一層的房價贾虽,以此類推逃糟,則
表示房子的面積,
表示房子的樓層數(shù)等等蓬豁。
使用矩陣的定義我們可以更簡潔的表達出假設(shè)函數(shù)绰咽,這里我們假設(shè),這使得我們可以很方便的進行
的矩陣運算。
梯度下降
同樣的地粪,針對多遠線性回歸的梯度下降算法的公式肯定也會不同剃诅,我們這里只需要補充上需要重復(fù)的n個特征量即可:
repeat until convergence:{
}
當然,這里也不要忘了驶忌,,
...
是同步更新的笑跛。
特征縮放
那么現(xiàn)在如果有一個問題包含了多個特征付魔,比如說上面的房價問題,我們先假設(shè)有兩個特征:
那么我們畫出的代價函數(shù)輪廓圖圖像可能就是相對比較細長飞蹂,那么我們通過梯度下降去尋找最小值的時候需要花很長時間才能走到終點几苍,并且可能會來回波動,如下圖所示:
![](http://www.leafw.cn/wp-content/uploads/2018/08/%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20180808225014.png)
避免這種情況的方法就是想辦法將我們的變量范圍縮小到一個合適且相近的范圍陈哑,一般來說定義到[-1,1]或者[-0.5,0.5]妻坝。如何縮小到這個范圍呢伸眶,我們可以使用下面這個公式:
其中表示該特征所有值的平均值,
表示該特征取值范圍(最大值減去最小值)或者標準差刽宪,在這個例子中假設(shè)你的房子面積為110厘贼,房間為3,我們可以得出:
兩個變量都是在[-0.5,0.5]之間圣拄,從而我們畫出的輪廓圖可能就會相對較圓一點:
![](http://www.leafw.cn/wp-content/uploads/2018/08/%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20180808230513.png)
這樣我們梯度下降到最小值點的速度就會相對較快一點嘴秸。我們這里用的方法就叫做特征縮放(Feature Scaling)。
學(xué)習(xí)速率
上一篇我們有說過學(xué)習(xí)速率的取值會影響到梯度下降的效率和準確性庇谆,取值太小會導(dǎo)致梯度下降速度很慢岳掐,取值太大會導(dǎo)致梯度下降的時候直接越過最小值導(dǎo)致無法收斂。
那么我們這里就講講如何對α進行取值饭耳,首先畫出代價函數(shù)的圖像串述,x軸表示梯度下降算法的迭代步數(shù),注意這里和之前的橫軸表達的意思不一樣寞肖,之前一般是用來表示參數(shù)
,縱軸表示
的值纲酗。簡單的說就是這個圖像表示了我們梯度下降迭代了多少步后對應(yīng)的代價函數(shù)的值。
![](http://www.leafw.cn/wp-content/uploads/2018/08/%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20180808233154.png)
那么也就是說逝淹,如果梯度下降算法是正常工作的耕姊,那這個圖像就應(yīng)該是一直處于下降狀態(tài)的。圖中的曲線到400步的時候已經(jīng)趨于平坦栅葡,即已經(jīng)基本收斂了茉兰。因此這條曲線可以用來判斷梯度下降算法是否已經(jīng)收斂。有時候也可以進行一些自動的收斂測試欣簇,比如如果發(fā)現(xiàn)代價函數(shù)的下降小于一個很小的值那么就可以看作為已經(jīng)收斂如规脸,但選擇這個閾值往往只很困難的,因此大部分情況下還是要通過查看這個曲線圖來判斷是否收斂熊咽。
至于梯度下降運行不正確的情況下的圖像就可能有如下幾種情況:
![1](http://www.leafw.cn/wp-content/uploads/2018/08/%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20180808233545.png)
![2](http://www.leafw.cn/wp-content/uploads/2018/08/%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20180808233626.png)
![3](http://www.leafw.cn/wp-content/uploads/2018/08/%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20180808233618.png)
第一張圖圖像是一直往上升的方向去的莫鸭,明顯是錯誤的運行狀況。第二張和第三張說明你的α取值偏大了一點横殴,需要取小一點試試被因。對于真正的有效的α,
多項式回歸
以上我們已經(jīng)大致了解了多項式回歸粥鞋,那這里我們先談?wù)勅绾芜x擇特征。比如說上面的房子問題瞄崇,我們可以選房子的長和寬當做兩個特征來看呻粹,但這只是一種想法壕曼,其實我們也可以把房子的面積
來當做特征,這樣我們只使用了這一個特征等浊,這取決于你從什么樣的角度去審視這個問題腮郊,通過定義一個新的特征,我們有時候可能會得到一個更好的模型凿掂。
與選擇特征相關(guān)的一個概念伴榔,被稱作多項式回歸(polynomial regression)。我們還是用房價的例子庄萎,我們一開始用的可能是一次函數(shù)去模擬這個數(shù)據(jù)集的情況踪少,但嘗試了之后發(fā)現(xiàn)可能一次函數(shù)不足以模擬出實際情況。二次函數(shù)很顯然不行糠涛,房價會有下降的趨勢援奢,房價不可能達到一定高度后又下降回來,那這里就可以嘗試使用三次函數(shù)忍捡,比如:
這里第一個特征設(shè)為房子的面積集漾,第二個特征為房子面積的平方
,第三個為房子面積的立方
砸脊。最終將這個三次函數(shù)擬合到我們的數(shù)據(jù)上具篇。但我們現(xiàn)在用這樣的方式選擇特征的話,三個特征的范圍的差距就會很大,假設(shè)房子面積[1,100]凌埂,那么
驱显。那么如果使用梯度下降法的話,特征值的歸一化就很重要瞳抓,即將不同類型的特征數(shù)值大小變?yōu)橐恢掳R摺D沁@里就不適用三次函數(shù)的模型,我們試試平方根函數(shù)孩哑,我們可以假設(shè)模型為
,平方根函數(shù)也是一個遞增的函數(shù)栓霜,而且遞增速度會越來越趨于平緩,可能與我們的數(shù)據(jù)更為契合横蜒。
![](http://www.leafw.cn/wp-content/uploads/2018/08/%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20180809221226.png)
可能在選擇特征的這個問題上經(jīng)常難以抉擇胳蛮,再后面的內(nèi)容中我們會繼續(xù)討論一些算法,他們能自動選擇要使用什么特征丛晌,因此可以使用某一個算法觀察數(shù)據(jù)鹰霍,決定最終使用什么函數(shù)。