博客專欄

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

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

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

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

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

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

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

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

6.png

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

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

7.png

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

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

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

8.jpg

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

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

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

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

9.png

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

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

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

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

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

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

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

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

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

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

04 最簡單的回歸問題——線性回歸問題

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

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

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

就拿線性模型來說吧,線性模型是用直線方程去擬合數(shù)據(jù),但直線可是“鋼鐵直男”,它的動作也只有兩套而已??!模型的能力是有上限的,能力跟不上,想最大限度地擬合也還是心有余而力不足。

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

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

利用線性回歸進行預(yù)測的極速入門

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

已知小明前年3歲,去年4歲,今年5歲,請問小明明年幾歲?

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

[[2017,3],

[2018,4],

[2019,5]]

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

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

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

10.png

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

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

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

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

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




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

相關(guān)推薦

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

關(guān)閉