終于有人把線(xiàn)性回歸講明白了(2)
03 線(xiàn)性方程的“直男”本性
也許你對名為“模型”的大盒子充滿(mǎn)期待,同時(shí)又擔心會(huì )冒出一大堆數學(xué)符號,所以不敢馬上掀開(kāi)一窺究竟。不過(guò),線(xiàn)性模型反倒更像是一個(gè)過(guò)度包裝的大禮盒,大大的盒子打開(kāi)一看,里面孤零零只有一樣東西:線(xiàn)性方程。第一次接觸時(shí)各種名詞很容易把人繞糊涂,不急,我們先把名詞之間的關(guān)系捋一捋。
前面在介紹機器學(xué)習的基本原理時(shí),提到“假設函數”這個(gè)術(shù)語(yǔ),假設函數是一類(lèi)函數,所起的作用就是預測,這里的線(xiàn)性方程就是線(xiàn)性回歸模型的假設函數。
別看名字挺“高冷”,其實(shí)特別簡(jiǎn)單?!熬€(xiàn)性”就是“像直線(xiàn)那樣”,譬如線(xiàn)性增長(cháng)就是像直線(xiàn)那樣增長(cháng)。我們知道,直線(xiàn)是最簡(jiǎn)單的幾何圖形,而線(xiàn)性方程說(shuō)直白一點(diǎn),就是能畫(huà)出直線(xiàn)的一種方程。如果方程有性格的話(huà),那么線(xiàn)性方程一定就是“直男”的典型代表。
直線(xiàn)方程最大的特點(diǎn)就是“耿直”,由始至終都是直來(lái)直去,函數圖像如圖3-4所示。
▲圖3-4 線(xiàn)性函數的函數圖像
這樣看好像也沒(méi)什么,但對比一下同樣常見(jiàn)的以2為底數的對數函數(見(jiàn)圖3-5a)和指數函數(見(jiàn)圖3-5b)就能明顯看出,其他函數多多少少都要帶一點(diǎn)弧度,這是變化不均勻所導致的。相比之下,直線(xiàn)方程開(kāi)始是什么樣子則始終是什么樣子。
▲圖3-5 非線(xiàn)性函數的函數圖像
直線(xiàn)方程通常寫(xiě)作y=kx+b,k稱(chēng)為斜率,b稱(chēng)為截距,這兩個(gè)參數可以看作兩枚重要的旋鈕,直接控制直線(xiàn)進(jìn)行“旋轉”和“平移”的動(dòng)作。具體來(lái)說(shuō),通過(guò)調整斜率,可以改變直線(xiàn)的角度。
在圖3-6的四幅圖中,直線(xiàn)均具有相同的截距,黑實(shí)線(xiàn)斜率均為2,但右上、左下、右下的三幅圖中灰線(xiàn)斜率分別為1、1/2和0,對比黑實(shí)線(xiàn)可以看出,通過(guò)改變斜率可以使直線(xiàn)出現“旋轉”的動(dòng)作效果。
▲圖3-6 4條斜率不同的線(xiàn)性函數圖像對比
直線(xiàn)還有另一種調節方法。通過(guò)調整截距b,可以實(shí)現直線(xiàn)的上下平移。如圖3-7所示,這三條平行的直線(xiàn)具有相同的斜率,但截距相差1,可以看到直線(xiàn)出現了上下平移的動(dòng)作效果。
“旋轉”和“平移”就是直線(xiàn)的全部看家本領(lǐng)了,這正體現了線(xiàn)性方程簡(jiǎn)單直率的“直男”本性。
準確來(lái)說(shuō),線(xiàn)性方程和直線(xiàn)方程還是存在一點(diǎn)微小差別的。直線(xiàn)是二維平面圖形,而線(xiàn)性所在的空間則可能是多維的。不過(guò),無(wú)論是在二維平面還是在多維空間,直線(xiàn)所能做的也就是“旋轉”和“平移”兩套動(dòng)作,線(xiàn)性模型想要擬合能夠調節的參數,主要也就只有這兩個(gè)。
▲圖3-7 三條截距相差1的線(xiàn)性函數圖像對比
在機器學(xué)習中,斜率k通常用字母w表示,是權值(weight)的首字母。通過(guò)調整w和b的值就能控制直線(xiàn)在多維空間中進(jìn)行旋轉和平移,扮演的角色很像老式收音機上的旋鈕,通過(guò)旋轉旋鈕就可能收聽(tīng)到想要的電臺。
這個(gè)通過(guò)調整權值來(lái)達到目的的過(guò)程叫作權值調整或者權值更新,對于線(xiàn)性模型而言,學(xué)習過(guò)程的主要工作就是權值調整,只要旋動(dòng)旋鈕,合理搭配旋轉和平移這兩套簡(jiǎn)單的動(dòng)作,就能完成對輸入數據的擬合工作,從而解決回歸問(wèn)題。
關(guān)于調整權值的另一種解釋
在機器學(xué)習中,通過(guò)調整權值來(lái)完成學(xué)習,并最終進(jìn)行預測的算法很多,這也是一種非常常見(jiàn)的學(xué)習手段。對于為什么調整權值能夠進(jìn)行預測,實(shí)際上也有多種解釋?zhuān)厦鎻膸缀谓嵌冉o出了解釋?zhuān)送膺€有代數角度的解釋。
以三個(gè)輸入維度A、B、C來(lái)預測P為例,我們的線(xiàn)性方程可以寫(xiě)為:
F=W1*A+W2*B+W3*C
假設我們知道P的值其實(shí)就是與A的值有關(guān),與B、C毫無(wú)關(guān)系,那么,怎樣調整線(xiàn)性方程才可以根據輸入準確預測出P的值呢?
我們知道,線(xiàn)性方程的計算結果F是三個(gè)維度的加權和,想要使F與P最接近,只需要讓線(xiàn)性方程中B、C這兩個(gè)加項對結果影響最小即可。這個(gè)好辦,只要使這兩項的權值最小,也就是W2和W3的值為0就可以了。
這就是從代數角度來(lái)解釋為什么調整權值能夠提高預測結果的準確性。這里實(shí)際上體現了一種假設,就是待預測的結果與輸入的某個(gè)或某幾個(gè)維度相關(guān),而調整權值的目的就是使得與預測結果相關(guān)度高的權值越高,確保相關(guān)維度的值對最終加權和的貢獻越大,反之權值越低,貢獻越小。
04 最簡(jiǎn)單的回歸問(wèn)題——線(xiàn)性回歸問(wèn)題
前面我們介紹了什么是回歸問(wèn)題,也直觀(guān)感受了線(xiàn)性方程的“直男”本性,那么在這一節將對為什么模型能進(jìn)行預測給出一個(gè)很直接的回答。當然,學(xué)術(shù)界對于這個(gè)問(wèn)題的認識還未完全統一,這里選擇沿用一種當前最主流的觀(guān)點(diǎn)。
直到目前為止,我們還不能全面地了解這個(gè)世界,但紛繁復雜的現實(shí)世界大體還是遵循著(zhù)某種規律的,我們不妨叫作“神秘方程”。而我們在機器學(xué)習領(lǐng)域所做的,就是通過(guò)歷史數據訓練模型,希望能夠使我們的模型最大限度地去擬合“神秘方程”——一旦偷看了導演的劇本,還怕有什么劇情不能預測嗎?
不過(guò),也許你已經(jīng)發(fā)現,這存在一個(gè)問(wèn)題。
就拿線(xiàn)性模型來(lái)說(shuō)吧,線(xiàn)性模型是用直線(xiàn)方程去擬合數據,但直線(xiàn)可是“鋼鐵直男”,它的動(dòng)作也只有兩套而已??!模型的能力是有上限的,能力跟不上,想最大限度地擬合也還是心有余而力不足。
所以,選擇模型的關(guān)鍵不在于模型的復雜程度,而在于數據分布。你也許會(huì )擔心,線(xiàn)性模型簡(jiǎn)單好懂,這也是它為什么特別適合用來(lái)做入門(mén)任務(wù),但唯一的問(wèn)題是它太簡(jiǎn)單了,現實(shí)世界這么復雜,它真的能夠解決問(wèn)題嗎?
要知道尺有所短,寸有所長(cháng),回歸問(wèn)題是一個(gè)大類(lèi),其中有一類(lèi)問(wèn)題叫線(xiàn)性回歸問(wèn)題,遇到這種問(wèn)題不用線(xiàn)性模型還真就不行。下面,我們就來(lái)看看線(xiàn)性回歸是怎樣完成預測的。
利用線(xiàn)性回歸進(jìn)行預測的極速入門(mén)
在線(xiàn)性回歸問(wèn)題里,所要預測的“神秘方程”當然也是線(xiàn)性方程。這類(lèi)方程存在固有特征,最明顯的就是數據集點(diǎn)沿線(xiàn)性分布,所以用線(xiàn)性模型效果最好。也許你不敢相信,這個(gè)世界這么復雜,真的有這么簡(jiǎn)單的“神秘方程”嗎?真的有,而且你肯定還見(jiàn)過(guò),一起來(lái)回憶一下:
已知小明前年3歲,去年4歲,今年5歲,請問(wèn)小明明年幾歲?
首先這無(wú)疑是個(gè)預測連續值的問(wèn)題,明明白白是一個(gè)回歸問(wèn)題?;貧w關(guān)注的是幾個(gè)變量之間的相互變化關(guān)系,如果這種關(guān)系是線(xiàn)性的,那么這就是一個(gè)線(xiàn)性回歸問(wèn)題,適合用線(xiàn)性模型解決。我們按照機器學(xué)習的習慣,把已知條件整理成數據集,這是一個(gè)三行兩列的矩陣:
[[2017,3],
[2018,4],
[2019,5]]
這是一個(gè)二維矩陣,如果畫(huà)出圖像,兩個(gè)維度之間的線(xiàn)性關(guān)系就一目了然。這里以年份為X軸、年齡為Y軸將記錄的數據畫(huà)出來(lái),得到3個(gè)呈線(xiàn)性排列的數據點(diǎn)(見(jiàn)圖3-8a)。把這些點(diǎn)用線(xiàn)段連接起來(lái),就能更清楚地看到這3個(gè)點(diǎn)排成了一條直線(xiàn)(見(jiàn)圖3-8b)。
這條直線(xiàn)寫(xiě)成線(xiàn)性方程就是y=x-2014,即所謂的“假設函數”。線(xiàn)性回歸的預測就依賴(lài)于這條方程,2019年剛剛過(guò)去,我們當然只能知道2019年之前的真實(shí)數據,但對于未來(lái)也就是小明在2019年之后的年齡,通過(guò)這條線(xiàn)性方程即可以預測得到。
譬如把“2020”作為x輸入,就能計算出對應的y值是“6”,也就得到了2020年小明將是6歲的預測結果。這個(gè)例子很簡(jiǎn)單,但已經(jīng)完整地展示了線(xiàn)性回歸“預測魔力”背后的原理,線(xiàn)性回歸的預測魔力還經(jīng)常被運用在經(jīng)濟和金融等場(chǎng)景,聽(tīng)起來(lái)更高端,不過(guò)就原理來(lái)說(shuō),也只是這個(gè)簡(jiǎn)單例子的延伸和拓展。
▲圖3-8 呈線(xiàn)性關(guān)系的數據集點(diǎn)分布(a),如果連起來(lái)會(huì )出現一條直線(xiàn)(b)
關(guān)于作者:莫凡,新技術(shù)深度愛(ài)好者,曾經(jīng)從事信息安全前沿技術(shù)跟蹤研究和數據分析工作,在各類(lèi)信息安全類(lèi)技術(shù)期刊發(fā)表文章五十余篇,現轉為投身高端知識“白菜化”項目,希望能讓將更多聽(tīng)起來(lái)高大上的名詞沾一沾“人間煙火”,成為日常生活中真正用得上的知識。
本文摘編自《機器學(xué)習算法的數學(xué)解析與Python實(shí)現》,經(jīng)出版方授權發(fā)布。以下文章來(lái)源于大數據DT ,作者莫凡
*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。
DIY機械鍵盤(pán)相關(guān)社區:機械鍵盤(pán)DIY