博客專欄

EEPW首頁(yè) > 博客 > 終于有人把線性回歸講明白了(2)

終于有人把線性回歸講明白了(2)

發(fā)布人:數(shù)據(jù)派THU 時(shí)間:2021-07-23 來(lái)源:工程師 發(fā)布文章

03 線性方程的“直男”本性

也許你對(duì)名為“模型”的大盒子充滿期待,同時(shí)又擔(dān)心會(huì)冒出一大堆數(shù)學(xué)符號(hào),所以不敢馬上掀開一窺究竟。不過(guò),線性模型反倒更像是一個(gè)過(guò)度包裝的大禮盒,大大的盒子打開一看,里面孤零零只有一樣?xùn)|西:線性方程。第一次接觸時(shí)各種名詞很容易把人繞糊涂,不急,我們先把名詞之間的關(guān)系捋一捋。

前面在介紹機(jī)器學(xué)習(xí)的基本原理時(shí),提到“假設(shè)函數(shù)”這個(gè)術(shù)語(yǔ),假設(shè)函數(shù)是一類函數(shù),所起的作用就是預(yù)測(cè),這里的線性方程就是線性回歸模型的假設(shè)函數(shù)。

別看名字挺“高冷”,其實(shí)特別簡(jiǎn)單?!熬€性”就是“像直線那樣”,譬如線性增長(zhǎng)就是像直線那樣增長(zhǎng)。我們知道,直線是最簡(jiǎn)單的幾何圖形,而線性方程說(shuō)直白一點(diǎn),就是能畫出直線的一種方程。如果方程有性格的話,那么線性方程一定就是“直男”的典型代表。

直線方程最大的特點(diǎn)就是“耿直”,由始至終都是直來(lái)直去,函數(shù)圖像如圖3-4所示。

6.png

▲圖3-4 線性函數(shù)的函數(shù)圖像

這樣看好像也沒什么,但對(duì)比一下同樣常見的以2為底數(shù)的對(duì)數(shù)函數(shù)(見圖3-5a)和指數(shù)函數(shù)(見圖3-5b)就能明顯看出,其他函數(shù)多多少少都要帶一點(diǎn)弧度,這是變化不均勻所導(dǎo)致的。相比之下,直線方程開始是什么樣子則始終是什么樣子。

7.png

▲圖3-5 非線性函數(shù)的函數(shù)圖像

直線方程通常寫作y=kx+b,k稱為斜率,b稱為截距,這兩個(gè)參數(shù)可以看作兩枚重要的旋鈕,直接控制直線進(jìn)行“旋轉(zhuǎn)”和“平移”的動(dòng)作。具體來(lái)說(shuō),通過(guò)調(diào)整斜率,可以改變直線的角度。

在圖3-6的四幅圖中,直線均具有相同的截距,黑實(shí)線斜率均為2,但右上、左下、右下的三幅圖中灰線斜率分別為1、1/2和0,對(duì)比黑實(shí)線可以看出,通過(guò)改變斜率可以使直線出現(xiàn)“旋轉(zhuǎn)”的動(dòng)作效果。

8.jpg

▲圖3-6 4條斜率不同的線性函數(shù)圖像對(duì)比

直線還有另一種調(diào)節(jié)方法。通過(guò)調(diào)整截距b,可以實(shí)現(xiàn)直線的上下平移。如圖3-7所示,這三條平行的直線具有相同的斜率,但截距相差1,可以看到直線出現(xiàn)了上下平移的動(dòng)作效果。

“旋轉(zhuǎn)”和“平移”就是直線的全部看家本領(lǐng)了,這正體現(xiàn)了線性方程簡(jiǎn)單直率的“直男”本性。

準(zhǔn)確來(lái)說(shuō),線性方程和直線方程還是存在一點(diǎn)微小差別的。直線是二維平面圖形,而線性所在的空間則可能是多維的。不過(guò),無(wú)論是在二維平面還是在多維空間,直線所能做的也就是“旋轉(zhuǎn)”和“平移”兩套動(dòng)作,線性模型想要擬合能夠調(diào)節(jié)的參數(shù),主要也就只有這兩個(gè)。

9.png

▲圖3-7 三條截距相差1的線性函數(shù)圖像對(duì)比

在機(jī)器學(xué)習(xí)中,斜率k通常用字母w表示,是權(quán)值(weight)的首字母。通過(guò)調(diào)整w和b的值就能控制直線在多維空間中進(jìn)行旋轉(zhuǎn)和平移,扮演的角色很像老式收音機(jī)上的旋鈕,通過(guò)旋轉(zhuǎn)旋鈕就可能收聽到想要的電臺(tái)。

這個(gè)通過(guò)調(diào)整權(quán)值來(lái)達(dá)到目的的過(guò)程叫作權(quán)值調(diào)整或者權(quán)值更新,對(duì)于線性模型而言,學(xué)習(xí)過(guò)程的主要工作就是權(quán)值調(diào)整,只要旋動(dòng)旋鈕,合理搭配旋轉(zhuǎn)和平移這兩套簡(jiǎn)單的動(dòng)作,就能完成對(duì)輸入數(shù)據(jù)的擬合工作,從而解決回歸問(wèn)題。

關(guān)于調(diào)整權(quán)值的另一種解釋

在機(jī)器學(xué)習(xí)中,通過(guò)調(diào)整權(quán)值來(lái)完成學(xué)習(xí),并最終進(jìn)行預(yù)測(cè)的算法很多,這也是一種非常常見的學(xué)習(xí)手段。對(duì)于為什么調(diào)整權(quán)值能夠進(jìn)行預(yù)測(cè),實(shí)際上也有多種解釋,上面從幾何角度給出了解釋,此外還有代數(shù)角度的解釋。

以三個(gè)輸入維度A、B、C來(lái)預(yù)測(cè)P為例,我們的線性方程可以寫為:

F=W1*A+W2*B+W3*C

假設(shè)我們知道P的值其實(shí)就是與A的值有關(guān),與B、C毫無(wú)關(guān)系,那么,怎樣調(diào)整線性方程才可以根據(jù)輸入準(zhǔn)確預(yù)測(cè)出P的值呢?

我們知道,線性方程的計(jì)算結(jié)果F是三個(gè)維度的加權(quán)和,想要使F與P最接近,只需要讓線性方程中B、C這兩個(gè)加項(xiàng)對(duì)結(jié)果影響最小即可。這個(gè)好辦,只要使這兩項(xiàng)的權(quán)值最小,也就是W2和W3的值為0就可以了。

這就是從代數(shù)角度來(lái)解釋為什么調(diào)整權(quán)值能夠提高預(yù)測(cè)結(jié)果的準(zhǔn)確性。這里實(shí)際上體現(xiàn)了一種假設(shè),就是待預(yù)測(cè)的結(jié)果與輸入的某個(gè)或某幾個(gè)維度相關(guān),而調(diào)整權(quán)值的目的就是使得與預(yù)測(cè)結(jié)果相關(guān)度高的權(quán)值越高,確保相關(guān)維度的值對(duì)最終加權(quán)和的貢獻(xiàn)越大,反之權(quán)值越低,貢獻(xiàn)越小。

04 最簡(jiǎn)單的回歸問(wèn)題——線性回歸問(wèn)題

前面我們介紹了什么是回歸問(wèn)題,也直觀感受了線性方程的“直男”本性,那么在這一節(jié)將對(duì)為什么模型能進(jìn)行預(yù)測(cè)給出一個(gè)很直接的回答。當(dāng)然,學(xué)術(shù)界對(duì)于這個(gè)問(wèn)題的認(rèn)識(shí)還未完全統(tǒng)一,這里選擇沿用一種當(dāng)前最主流的觀點(diǎn)。

直到目前為止,我們還不能全面地了解這個(gè)世界,但紛繁復(fù)雜的現(xiàn)實(shí)世界大體還是遵循著某種規(guī)律的,我們不妨叫作“神秘方程”。而我們?cè)跈C(jī)器學(xué)習(xí)領(lǐng)域所做的,就是通過(guò)歷史數(shù)據(jù)訓(xùn)練模型,希望能夠使我們的模型最大限度地去擬合“神秘方程”——一旦偷看了導(dǎo)演的劇本,還怕有什么劇情不能預(yù)測(cè)嗎?

不過(guò),也許你已經(jīng)發(fā)現(xiàn),這存在一個(gè)問(wèn)題。

就拿線性模型來(lái)說(shuō)吧,線性模型是用直線方程去擬合數(shù)據(jù),但直線可是“鋼鐵直男”,它的動(dòng)作也只有兩套而已?。∧P偷哪芰κ怯猩舷薜?,能力跟不上,想最大限度地?cái)M合也還是心有余而力不足。

所以,選擇模型的關(guān)鍵不在于模型的復(fù)雜程度,而在于數(shù)據(jù)分布。你也許會(huì)擔(dān)心,線性模型簡(jiǎn)單好懂,這也是它為什么特別適合用來(lái)做入門任務(wù),但唯一的問(wèn)題是它太簡(jiǎn)單了,現(xiàn)實(shí)世界這么復(fù)雜,它真的能夠解決問(wèn)題嗎?

要知道尺有所短,寸有所長(zhǎng),回歸問(wèn)題是一個(gè)大類,其中有一類問(wèn)題叫線性回歸問(wèn)題,遇到這種問(wèn)題不用線性模型還真就不行。下面,我們就來(lái)看看線性回歸是怎樣完成預(yù)測(cè)的。

利用線性回歸進(jìn)行預(yù)測(cè)的極速入門

在線性回歸問(wèn)題里,所要預(yù)測(cè)的“神秘方程”當(dāng)然也是線性方程。這類方程存在固有特征,最明顯的就是數(shù)據(jù)集點(diǎn)沿線性分布,所以用線性模型效果最好。也許你不敢相信,這個(gè)世界這么復(fù)雜,真的有這么簡(jiǎn)單的“神秘方程”嗎?真的有,而且你肯定還見過(guò),一起來(lái)回憶一下:

已知小明前年3歲,去年4歲,今年5歲,請(qǐng)問(wèn)小明明年幾歲?

首先這無(wú)疑是個(gè)預(yù)測(cè)連續(xù)值的問(wèn)題,明明白白是一個(gè)回歸問(wèn)題?;貧w關(guān)注的是幾個(gè)變量之間的相互變化關(guān)系,如果這種關(guān)系是線性的,那么這就是一個(gè)線性回歸問(wèn)題,適合用線性模型解決。我們按照機(jī)器學(xué)習(xí)的習(xí)慣,把已知條件整理成數(shù)據(jù)集,這是一個(gè)三行兩列的矩陣:

[[2017,3],

[2018,4],

[2019,5]]

這是一個(gè)二維矩陣,如果畫出圖像,兩個(gè)維度之間的線性關(guān)系就一目了然。這里以年份為X軸、年齡為Y軸將記錄的數(shù)據(jù)畫出來(lái),得到3個(gè)呈線性排列的數(shù)據(jù)點(diǎn)(見圖3-8a)。把這些點(diǎn)用線段連接起來(lái),就能更清楚地看到這3個(gè)點(diǎn)排成了一條直線(見圖3-8b)。

這條直線寫成線性方程就是y=x-2014,即所謂的“假設(shè)函數(shù)”。線性回歸的預(yù)測(cè)就依賴于這條方程,2019年剛剛過(guò)去,我們當(dāng)然只能知道2019年之前的真實(shí)數(shù)據(jù),但對(duì)于未來(lái)也就是小明在2019年之后的年齡,通過(guò)這條線性方程即可以預(yù)測(cè)得到。

譬如把“2020”作為x輸入,就能計(jì)算出對(duì)應(yīng)的y值是“6”,也就得到了2020年小明將是6歲的預(yù)測(cè)結(jié)果。這個(gè)例子很簡(jiǎn)單,但已經(jīng)完整地展示了線性回歸“預(yù)測(cè)魔力”背后的原理,線性回歸的預(yù)測(cè)魔力還經(jīng)常被運(yùn)用在經(jīng)濟(jì)和金融等場(chǎng)景,聽起來(lái)更高端,不過(guò)就原理來(lái)說(shuō),也只是這個(gè)簡(jiǎn)單例子的延伸和拓展。

10.png

▲圖3-8 呈線性關(guān)系的數(shù)據(jù)集點(diǎn)分布(a),如果連起來(lái)會(huì)出現(xiàn)一條直線(b)

關(guān)于作者:莫凡,新技術(shù)深度愛好者,曾經(jīng)從事信息安全前沿技術(shù)跟蹤研究和數(shù)據(jù)分析工作,在各類信息安全類技術(shù)期刊發(fā)表文章五十余篇,現(xiàn)轉(zhuǎn)為投身高端知識(shí)“白菜化”項(xiàng)目,希望能讓將更多聽起來(lái)高大上的名詞沾一沾“人間煙火”,成為日常生活中真正用得上的知識(shí)。

本文摘編自《機(jī)器學(xué)習(xí)算法的數(shù)學(xué)解析與Python實(shí)現(xiàn)》,經(jīng)出版方授權(quán)發(fā)布。以下文章來(lái)源于大數(shù)據(jù)DT ,作者莫凡

*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。

DIY機(jī)械鍵盤相關(guān)社區(qū):機(jī)械鍵盤DIY




關(guān)鍵詞: 大數(shù)據(jù)

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉