吳恩達機器學(xué)習(xí)筆記-多元線性回歸

之前的文章中已經(jīng)講述了簡單的一元線性回歸的基礎(chǔ)知識脏嚷,現(xiàn)在我們來繼續(xù)討論多元線性回歸。本文針對吳恩達機器學(xué)習(xí)第二周課程多元線性回歸部分擎场。

假設(shè)函數(shù)

所謂多元線性回歸正如其名字一樣羽德,就是說這里的變量是多個的,下面介紹一下如何表示含有多個變量情況下的假設(shè)函數(shù):
h_\theta(x) = \theta_0+\theta_1x_1+\theta_2x_2+\theta_3x_3+...+\theta_nx_n
之前的一元線性回歸中有變量x^(i)表示i個訓(xùn)練樣本的特征值迅办,現(xiàn)在由于有多個變量宅静,因此我們用x_j^(i)表示第i個訓(xùn)練樣本的特征j的值,用x^(i)表示第i個訓(xùn)練樣本的所有特征站欺,m表示訓(xùn)練集的大小姨夹,n表示特征的數(shù)量。為了更好的理解這個函數(shù)矾策,我們可以舉個房價的例子:想象\theta_0是房子的基礎(chǔ)價格磷账,\theta_1表示單位面積的房價,\theta_2表示每一層的房價贾虽,以此類推逃糟,則x_1表示房子的面積,x_2表示房子的樓層數(shù)等等蓬豁。
使用矩陣的定義我們可以更簡潔的表達出假設(shè)函數(shù)绰咽,這里我們假設(shè)x_0^i=1(i\in1,2,...m),這使得我們可以很方便的進行\theta,x的矩陣運算。
h_\theta(x) = \begin{bmatrix} \theta_0 & \theta_1 & ... & \theta_n \end{bmatrix} \begin{bmatrix} x_0 \\ x_1 \\ x_2 \\ ... \\ x_n \end{bmatrix} = = \theta^Tx

梯度下降

同樣的地粪,針對多遠線性回歸的梯度下降算法的公式肯定也會不同剃诅,我們這里只需要補充上需要重復(fù)的n個特征量即可:
repeat until convergence:{
\theta_0 := \theta_0 - \alpha \frac{1}{m}\sum_{i=1}^{m}(h_\theta(x^(i))-y^(i))x_0^(i)

\theta_1 := \theta_1 - \alpha \frac{1}{m}\sum_{i=1}^{m}(h_\theta(x^(i))-y^(i))x_1^(i)

\theta_2 := \theta_2 - \alpha \frac{1}{m}\sum_{i=1}^{m}(h_\theta(x^(i))-y^(i))x_2^(i)
...
\theta_j := \theta_j - \alpha\frac{1}{m}\sum_{i=1}^{m}(h_\theta(x^(i))-y^(i))x_j^(i)\quad j:=0,1...n
}

當然,這里也不要忘了驶忌,\theta_0\theta_1... \theta_j是同步更新的笑跛。

特征縮放

那么現(xiàn)在如果有一個問題包含了多個特征付魔,比如說上面的房價問題,我們先假設(shè)有兩個特征:
x_1 = 房子面積(0-200平米)\\ x_2 = 房間數(shù)量(1-5)
那么我們畫出的代價函數(shù)輪廓圖圖像可能就是相對比較細長飞蹂,那么我們通過梯度下降去尋找最小值的時候需要花很長時間才能走到終點几苍,并且可能會來回波動,如下圖所示:

避免這種情況的方法就是想辦法將我們的變量范圍縮小到一個合適且相近的范圍陈哑,一般來說定義到[-1,1]或者[-0.5,0.5]妻坝。如何縮小到這個范圍呢伸眶,我們可以使用下面這個公式:
x_i := \frac{x_i-\mu_i}{s_i}
其中\mu_i表示該特征所有值的平均值,s_i表示該特征取值范圍(最大值減去最小值)或者標準差刽宪,在這個例子中假設(shè)你的房子面積為110厘贼,房間為3,我們可以得出:
x_1 := \frac{110-平均面積(假設(shè)為100)}{200} = 0.05\\ x_2 := \frac{3-平均每戶房子包含的房間數(shù)(假設(shè)為2)}{4} = 0.25
兩個變量都是在[-0.5,0.5]之間圣拄,從而我們畫出的輪廓圖可能就會相對較圓一點:

這樣我們梯度下降到最小值點的速度就會相對較快一點嘴秸。我們這里用的方法就叫做特征縮放(Feature Scaling)。

學(xué)習(xí)速率

上一篇我們有說過學(xué)習(xí)速率的取值會影響到梯度下降的效率和準確性庇谆,取值太小會導(dǎo)致梯度下降速度很慢岳掐,取值太大會導(dǎo)致梯度下降的時候直接越過最小值導(dǎo)致無法收斂。
\theta_j := \theta_j - \frac{\partial}{\partial\theta_j}J(\theta)
那么我們這里就講講如何對α進行取值饭耳,首先畫出代價函數(shù)J(\theta)的圖像串述,x軸表示梯度下降算法的迭代步數(shù),注意這里和之前的橫軸表達的意思不一樣寞肖,之前一般是用來表示參數(shù)\theta,縱軸表示J(\theta)的值纲酗。簡單的說就是這個圖像表示了我們梯度下降迭代了多少步后對應(yīng)的代價函數(shù)的值。

那么也就是說逝淹,如果梯度下降算法是正常工作的耕姊,那這個圖像就應(yīng)該是一直處于下降狀態(tài)的。圖中的曲線到400步的時候已經(jīng)趨于平坦栅葡,即已經(jīng)基本收斂了茉兰。因此這條曲線可以用來判斷梯度下降算法是否已經(jīng)收斂。有時候也可以進行一些自動的收斂測試欣簇,比如如果發(fā)現(xiàn)代價函數(shù)的下降小于一個很小的值那么就可以看作為已經(jīng)收斂如10^-3规脸,但選擇這個閾值往往只很困難的,因此大部分情況下還是要通過查看這個曲線圖來判斷是否收斂熊咽。
至于梯度下降運行不正確的情況下的圖像就可能有如下幾種情況:

1
1
2
2

3
3

第一張圖圖像是一直往上升的方向去的莫鸭,明顯是錯誤的運行狀況。第二張和第三張說明你的α取值偏大了一點横殴,需要取小一點試試被因。對于真正的有效的α,
J(\theta)
應(yīng)當每一步都在遞減衫仑,但如果α太小了梨与,之前說過,梯度下降的速度會很慢文狱。

多項式回歸

以上我們已經(jīng)大致了解了多項式回歸粥鞋,那這里我們先談?wù)勅绾芜x擇特征。比如說上面的房子問題瞄崇,我們可以選房子的長和寬當做兩個特征x_1,x_2來看呻粹,但這只是一種想法壕曼,其實我們也可以把房子的面積x_1*x_2來當做特征,這樣我們只使用了這一個特征等浊,這取決于你從什么樣的角度去審視這個問題腮郊,通過定義一個新的特征,我們有時候可能會得到一個更好的模型凿掂。
與選擇特征相關(guān)的一個概念伴榔,被稱作多項式回歸(polynomial regression)。我們還是用房價的例子庄萎,我們一開始用的可能是一次函數(shù)去模擬這個數(shù)據(jù)集的情況踪少,但嘗試了之后發(fā)現(xiàn)可能一次函數(shù)不足以模擬出實際情況。二次函數(shù)很顯然不行糠涛,房價會有下降的趨勢援奢,房價不可能達到一定高度后又下降回來,那這里就可以嘗試使用三次函數(shù)忍捡,比如:
h_\theta(x) = \theta_0+\theta_1x_1+\theta_2x_1^2+\theta_3x_1^3
這里第一個特征x_1設(shè)為房子的面積集漾,第二個特征為房子面積的平方x_2 = x_1^2,第三個為房子面積的立方x_3 = x_1^3砸脊。最終將這個三次函數(shù)擬合到我們的數(shù)據(jù)上具篇。但我們現(xiàn)在用這樣的方式選擇特征的話,三個特征的范圍的差距就會很大,假設(shè)房子面積[1,100]凌埂,那么x_1\in[1,100],x_2\in[1,100^2],x_3\in[1,100^3]驱显。那么如果使用梯度下降法的話,特征值的歸一化就很重要瞳抓,即將不同類型的特征數(shù)值大小變?yōu)橐恢掳R摺D沁@里就不適用三次函數(shù)的模型,我們試試平方根函數(shù)孩哑,我們可以假設(shè)模型為h_\theta(x) = \theta_0+\theta_1x_1+\theta_2\sqrt x_1,平方根函數(shù)也是一個遞增的函數(shù)栓霜,而且遞增速度會越來越趨于平緩,可能與我們的數(shù)據(jù)更為契合横蜒。

可能在選擇特征的這個問題上經(jīng)常難以抉擇胳蛮,再后面的內(nèi)容中我們會繼續(xù)討論一些算法,他們能自動選擇要使用什么特征丛晌,因此可以使用某一個算法觀察數(shù)據(jù)鹰霍,決定最終使用什么函數(shù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末茵乱,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子孟岛,更是在濱河造成了極大的恐慌瓶竭,老刑警劉巖督勺,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異斤贰,居然都是意外死亡智哀,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門荧恍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瓷叫,“玉大人,你說我怎么就攤上這事送巡∧〔ぃ” “怎么了?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵骗爆,是天一觀的道長次氨。 經(jīng)常有香客問我,道長摘投,這世上最難降的妖魔是什么煮寡? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮犀呼,結(jié)果婚禮上幸撕,老公的妹妹穿的比我還像新娘。我一直安慰自己外臂,他們只是感情好坐儿,可當我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著专钉,像睡著了一般挑童。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上跃须,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天站叼,我揣著相機與錄音,去河邊找鬼菇民。 笑死尽楔,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的第练。 我是一名探鬼主播阔馋,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼娇掏!你這毒婦竟也來了呕寝?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤婴梧,失蹤者是張志新(化名)和其女友劉穎下梢,沒想到半個月后客蹋,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡孽江,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年讶坯,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片岗屏。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡辆琅,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出这刷,到底是詐尸還是另有隱情婉烟,我是刑警寧澤,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布崭歧,位于F島的核電站隅很,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏率碾。R本人自食惡果不足惜叔营,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望所宰。 院中可真熱鬧绒尊,春花似錦、人聲如沸仔粥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽躯泰。三九已至谭羔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間麦向,已是汗流浹背瘟裸。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留诵竭,地道東北人话告。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像卵慰,于是被迫代替她去往敵國和親沙郭。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內(nèi)容