數(shù)據(jù)給你一雙看透本質(zhì)的眼睛,這里是《數(shù)據(jù)分析思維課》。
在散點圖那節(jié)課里,我們其實留下了一個問題:我們想找一個趨勢線把這個散點圖的趨勢畫出來,那么趨勢線我們怎么才可以找到呢?最常見的做法就是用我們今天要講的回歸算法。
回歸(Regression)是由英國生物學(xué)家弗朗西斯·高爾頓(FrancisGalton)提出來的。簡單來講,回歸就是研究一個變量和另外一個變量的變化關(guān)系。其中一個變量我們叫做因變量,另外一個叫做自變量。多元的回歸,就是研究一個因變量和多個自變量之間的關(guān)系。
一般來說,當(dāng)我們知道了某一種情況或現(xiàn)象,想要去了解這個結(jié)果和前面哪些因素發(fā)生了怎樣的關(guān)系(例如體重和年齡的關(guān)系),或者想驗證某一些數(shù)據(jù)其實和結(jié)果沒關(guān)系,這個時候我們就可以用回歸驗證。當(dāng)我們知道了過去的一些數(shù)據(jù)情況,我們想根據(jù)以前的經(jīng)驗值,預(yù)測將來可能出現(xiàn)的結(jié)果,這個時候我們也可以用回歸分析和相關(guān)的算法。
回歸的算法種類與使用
根據(jù)回歸使用的場景不同,我們可以把它分成線性回歸、邏輯回歸、多項式回歸、逐步回歸、嶺回歸、套索回歸等等。這些回歸的整體邏輯比較類似,今天我給你重點介紹最常用的三種回歸算法。
第一類是線性回歸。線性回歸里最簡單的一種就是一元線性回歸,它有兩個變量,一個叫做因變量(Y),一個叫做自變量(X)。我們可以用 Y=a+bX 這個公式來擬合一元線性回歸方程。
例如我們要計算體重和年齡之間的回歸關(guān)系,這里的年齡就是自變量 X,體重就是因變量 Y。
這里需要注意的是,判斷兩個變量是不是線性關(guān)系這是從業(yè)務(wù)上面去判斷的。如果我們從業(yè)務(wù)上看是多元回歸的話,我們的目標(biāo)是要最少的自變量,也就是找到影響結(jié)果最核心的幾個因素來生成這個公式,抓到影響一個事物的關(guān)鍵點。
同時線性回歸對異常值影響非常敏感,往往一個異常值就把一個預(yù)測帶歪了。所以我們在做分析的時候,經(jīng)常會先通過聚類或者后續(xù)其他算法剔除這些異常點。當(dāng)然,很多時候你并不確定這些點到底是異常值還是實際數(shù)據(jù)的規(guī)律,所以你需要非常有經(jīng)驗的數(shù)據(jù)分析師和算法專家來參與。
學(xué)到后面你就會發(fā)現(xiàn),數(shù)據(jù)挖掘難的不是算法,而是準(zhǔn)確去掉異常點、找到影響因子這些算法之前的數(shù)據(jù)準(zhǔn)備工作。
第二類是邏輯回歸。邏輯回歸被廣泛用于做分類問題,也就是把“成功 / 失敗”“哪一種顏色”這類問題變成線性回歸的樣子?;具壿嬀褪前央x散的因變量 Y 變成了一個連續(xù)值,然后再做回歸。
怎么把離散的 Y 值變成連續(xù)的 Y 值呢?這里我們把事件發(fā)生的概率比上事件不發(fā)生的概率,取 Log 值,這樣做就把一個非連續(xù)的數(shù)據(jù)變成連續(xù)數(shù)據(jù)了,具體公式如下。
Logit(Y)=Log (Odds Y)=Log((Probability of Y event)/(Probability of no Y event))
這個變化我們也叫做 Logit 變化,然后再通過各種各樣的線性回歸或者分類算法,我們可以找到對應(yīng)關(guān)系,就像下圖這樣。
第三類是多項式回歸。顧名思義,它可能出現(xiàn)多個指數(shù)的數(shù)據(jù),這種回歸最佳擬合的線也不是直線,很可能是一個曲線。比如我們預(yù)測人類身高增長速度和年齡的關(guān)系,最終回歸出來的曲線方程可能由多次項組成,就像下圖這樣是一條拋物線(我們在嬰兒時成長最快,歲數(shù)越大增長速度越慢)。
在使用這種多項式回歸的時候,最常見出現(xiàn)的問題就是過擬合和欠擬合。這在將來做任何預(yù)測算法的時候都會遇到,這里先給你著重講一下。
這兩個概念是什么意思呢?假設(shè)我們找到一些數(shù)據(jù)畫在了散點圖上,我們把背后蘊(yùn)含的數(shù)據(jù)畫出來之后它就像個對勾(如下圖所示),是實際背后數(shù)據(jù)規(guī)律的正確答案(我們也把這個公式叫做算法模型)。
而欠擬合是畫這個線(也就是推算這個公式)的時候,我們把很多細(xì)節(jié)給忽略掉了,直接畫成了一根直線的線性回歸,有很多趨勢都沒有很好地反饋出來。因為細(xì)節(jié)丟得實在是太多了,所以我們把它叫做欠擬合,這個名字意味著需要更復(fù)雜的多項式回歸,才可以更準(zhǔn)確地描述這個規(guī)律。
而過擬合是指我們太糾結(jié)于其中的細(xì)節(jié),以至于這個數(shù)據(jù)模型計算出來的曲線變成了一條特別曲折的線(本來應(yīng)該是一個相對光滑的對鉤)。這樣的數(shù)據(jù)模型適配性很差,換句話講,它的查全率不高,用它做預(yù)測很可能就會指鹿不為鹿了。這就是過擬合的結(jié)果。
權(quán)衡是過擬合還是欠擬合的情況需要根據(jù)實際業(yè)務(wù)情況來做選擇,不是光看數(shù)據(jù)就可以解決的。
有了這個回歸公式以后,是不是就代表著因變量就是因為自變量的變化而導(dǎo)致的呢?換句話講,自變量和因變量是不是存在因果關(guān)系?前面因果倒置那節(jié)課你學(xué)過,其實我們還不能下這樣的定論。
計算出這個數(shù)據(jù)模型,我們只能夠推斷出一個變量對另一個變量有依賴關(guān)系,但并不代表他們之間就會有因果關(guān)系,因果關(guān)系的確立必須是來自統(tǒng)計之外的一些業(yè)務(wù)依據(jù)。因果這個話題你要是記不清了,可以去11 講里再復(fù)習(xí)一下。記住,兩個變量之間有回歸邏輯,不代表著兩個變量之間有因果邏輯。
均值回歸
我們通過各種計算得到了回歸模型之后,就可以在工作和生活當(dāng)中利用這個公式很好地預(yù)測出未來的結(jié)果嗎?答案是否定的,現(xiàn)實生活不一定有我們在算法當(dāng)中預(yù)測得那么好。這就是我們接下來要講的話題:均值回歸。
談到回歸,我拿我們非常熟悉的身高來給你舉個例子。根據(jù)達(dá)爾文進(jìn)化論,子代會越來越基于父代進(jìn)行進(jìn)化。也就是說理論上父母越高,孩子也會越來越高。而一般高個子的女孩子只會找比自己身高更高的男生結(jié)婚,生的孩子也應(yīng)該更高。
以此類推,理論上經(jīng)過千百年的進(jìn)化,人類應(yīng)該分成巨人族和矮人族才對。但我們都知道現(xiàn)實情況其實不是這樣的,人類并沒有分成巨人族和矮人族,高爾頓在實驗中也發(fā)現(xiàn)了這一點。
高爾頓找到了 100 組家庭測量了他們父母和孩子的身高,通過一元線性回歸分析建立了一個公式來預(yù)測孩子和父母身高的關(guān)系,如下圖。
你可以通過這個圖很明顯地看到,通過公式計算出來的值和實際孩子最后成長的結(jié)果是不太一樣的,最終孩子的身高其實趨向于平均身高。身材高大的雙親,子女不一定高;身材矮小的雙親,孩子也不一定矮。
高爾頓把這個現(xiàn)象叫做回歸平凡,后來的統(tǒng)計學(xué)家把它叫做“均值回歸”,意思就是實際發(fā)生的數(shù)據(jù)比我們理論上的預(yù)測更加接近平均值,整體趨勢上會慢慢向一個平均值發(fā)展。比如最近比較火的一個例子,就是北大的教育學(xué)院的丁延慶教授的吐槽。
丁教授自己 6 歲時就能背一下整本新華字典,本科在北大,后來在哥倫比亞獲得了教育學(xué)博士學(xué)位,他的妻子也是北大畢業(yè)的。丁教授與妻子都非常學(xué)霸,按理來說孩子也會走一條學(xué)霸的道路。但是丁教授的女兒卻幾乎完美規(guī)避了父母所有的學(xué)霸基因,在學(xué)渣的道路上越走越遠(yuǎn)。以至于丁教授在視頻里面吐槽女兒“不輔導(dǎo)作業(yè)父慈女孝,一輔導(dǎo)作業(yè)雞飛狗跳”。其實這就是均值回歸的一個典型例子。
還有一個著名的例子就是美國《體育畫報》的“封面詛咒”。《體育畫報》是美國非常著名的一個體育雜志,但是每次雜志封面登了哪個隊伍勝利之后,后面一定會有一場大敗在等著這個隊伍。
比如當(dāng)年在俄克拉何馬隊連續(xù)贏得 47 場大學(xué)橄欖球比賽之后,《體育畫報》刊登了《俄克拉何馬為何戰(zhàn)無不勝》的封面故事。緊接著在下一場比賽中,俄克拉何馬隊就以 21∶28 輸給了圣母大學(xué)隊,這樣的事情還發(fā)生了好幾次。
其實這也是一種均值回歸的情況,對于任何優(yōu)秀的人和團(tuán)隊來說,很多時候其實是運(yùn)氣、能力、時機(jī)等多種因素來造就成功的。好的沒你想得那么好,差的也沒有你想得那么差,最終還是會回到平均水平。就像我接觸了很多大佬,我發(fā)現(xiàn)我們和最優(yōu)秀的人之間,也沒有那么大的智商和情商的距離,但是人家一直在堅持努力,同時再加上天時地利人和,所以他成功了。我們?nèi)绻齑螋~兩天曬網(wǎng),那就很難成功。
實際上,我們每天都會遇到均值回歸的情況。我們不要過分夸大優(yōu)秀者的能力,也不要因為某幾次失敗就一蹶不振,過度小看自己。只要你不懈努力,就算你現(xiàn)在在谷底,也最終會到達(dá)平均值水平,甚至超過平均值。
小結(jié)
小結(jié)一下今天的內(nèi)容。今天我們主要講了回歸分析,回歸就是研究一個變量和另一個變量的變化關(guān)系?,F(xiàn)在有非常多的回歸算法,我著重給你講了線性回歸、邏輯回歸和多項式回歸這三個比較常見的算法。
緊接著,給你分享了過擬合和欠擬合這兩個在數(shù)據(jù)挖掘和人工智能里常用到的概念。我們既不能過于糾結(jié)細(xì)節(jié)陷入到過擬合里,也不能神經(jīng)大條錯過太多的細(xì)節(jié)最后導(dǎo)致欠擬合。最后我還講了均值回歸的概念,萬物最終都要回歸自然平均。
在生活和工作里,我們可以通過回歸分析找到很多簡單的規(guī)律,它們能夠幫助我們?nèi)ヮA(yù)測一些常見的數(shù)據(jù)問題。但是在真正使用的時候,我們也不能盲目相信算法模型推導(dǎo)出來的結(jié)果,因為現(xiàn)實其實要比我們預(yù)測出來更加的貼近于平庸:好的沒有我們預(yù)測當(dāng)中的那么好,差的也沒預(yù)測當(dāng)中的那么差。
所以對我們自己的工作和生活來講,用一顆平常心不斷去提高自己的平均線水平才是正確選擇。人和人之間的差異沒有那么大,不存在著優(yōu)生學(xué),也不存在著“龍生龍鳳生鳳,老鼠的兒子會打洞”這樣的說法。
數(shù)據(jù)給你一雙看透本質(zhì)的眼睛,最終所有的成果,都會回歸到我們每分每秒的努力當(dāng)中,我們一起努力。
思考
你在工作和生活當(dāng)中遇到過“均值回歸”的情況么?你從中學(xué)到了些什么呢?分享出來,我們一起共同提高。
關(guān)注致用教育,我們共同成長
聯(lián)系客服