「隨機森林」是數據科學領域最受歡迎的預測算法之一,20世紀90年代由統計學家利奧·布雷曼(Leo Breiman)提出,因其簡單性而備受推崇。雖然隨機森林有時並不是最準確的預測方法,但它在機器學習領域擁有特殊地位,因為即便是數據科學方面的新手,也能運用和理解這種強大的算法。
在2017年一項關於自殺預測的研究中,就用到了隨機森林。該研究由范德堡大學的生物醫學-信息學專家科林·沃爾什(Colin Walsh)以及佛羅里達州立大學的兩位心理學家傑西卡·里貝羅(Jessica Ribeiro)和約瑟夫·富蘭克林(Joseph Franklin)開展,他們想看看能不能利用5000名自殘病人的數據,來預測這些病人自殺的可能性。這是一項回顧性研究(譯註:指以現在為結果,回溯到過去的研究)。遺憾的是,研究還沒有結束,已經有近2000名患者自殺身亡。
總的來看,研究人員可以利用1300多個不同的特徵來進行預測,包括年齡、性別以及個人病歷的各個方面。如果隨機森林作出的預測被證明是準確的,那麼從理論上來說,這種算法以後也可以用於識別自殺風險高的人,為他們提供有針對性的治療。這會是一件善事。
如今,預測算法無處不在。在當今這個數據豐富、算力強大且便宜的時代,數據科學家越來越多地利用個人、企業和市場的信息(不管是自願提供還是偷偷獲得)來預測未來。算法不僅可以預測我們想看哪部電影,哪些股票的價格會上漲,還能預測我們最有可能對社交媒體上的哪些廣告作出反應。人工智慧(AI)工具也往往依靠預測算法來做出決策,比如汽車自動駕駛系統。
預測算法最重要、最個性化的應用也許是在醫療領域。算法驅動的AI或許會徹底改變我們診斷和治療疾病的方式,從抑鬱症、流感,到癌症、肺衰竭,無一例外。因此,預測算法雖然看似晦澀深奧,但它值得我們去認識和理解。實際上,很多情況下,它們理解起來還是比較容易的。
理解隨機森林的第一步是理解決策樹。畢竟,森林是由一棵棵樹組成的。
決策樹是基於這樣一個想法:我們可以通過提出一系列是非問題來作出預測。例如,就自殺預測而言,假設我們只有三條信息可用:是否被診斷為抑鬱症,是否被診斷為躁鬱症,過去一年裡是否到急診室就診三次以上。
決策樹的一個優點在於,不同於其他常見的預測方法(比如統計回歸),決策樹模擬了人類作出猜測的方式。這使它們相對更容易理解。考慮到隱私問題,研究人員不會公布真實數據,以下是假設的一棵決策樹,利用我們掌握的上述三條信息來預測一個人是否會自殺。
決策樹的分叉點旨在最大程度地減少不正確的猜測。雖然人也有可能計算出正確的分叉點,但數據科學家幾乎總是讓計算機來做。
決策樹的缺點在於,想要作出正確的預測,不能單靠一棵決策樹。你需要生成很多不同的決策樹,然後取所有這些決策樹的預測平均值。這就是複雜之處:如果只有一個數據集(上述例子中即為抑鬱症/躁鬱症/急診室就診),如何生成不同的決策樹?如果使用同樣的數據,每棵決策樹難道不是相同的嗎?
這就把我們引向了對現代機器學習的一個重要認識。一個數據集其實可以通過重採樣,變成很多不同的數據集。重採樣是指隨機排除一些數據,從而創造出新的數據集。
比方說,預測自殺可能性的研究人員有一個數據集,包含5000人的數據。為了通過重採樣創造出「新」的數據集,研究人員會從5000人中隨機選擇一個人剔除,並將這個過程重複5000次。由此產生的數據集不同於源數據集,因為同一個人可以被選中不止一次。由於機率法則,任何特定的重採樣數據集只會使用源數據集5000人之中的3200人左右,另外1800人不會被隨機選中。有了重採樣數據集,研究人員就可以生成新的決策樹,它可能略微不同於利用源數據生成的決策樹。
如果隨機重採樣碰巧排除了罕見情況(也就是「異常值」),那麼準確性就會提高;如果碰巧包含了所有的異常值,排除了一些更典型的情況,那麼準確性就會降低。但重點在於,你生成的新決策樹不止一棵。就「隨機森林」而言,你生成了大量的新決策樹。預測自殺可能性的研究人員生成了500棵不同的決策樹。由於是計算機來完成所有工作,研究人員有時會生成數千乃至幾百萬棵決策樹。通常來說,500棵決策樹就夠了,隨機森林的準確性是有上限的。
一旦隨機森林生成,研究人員往往會取所有決策樹的平均值,得到研究結果的一個機率。例如,一名40歲男性,收入為4萬美元,有抑鬱史,如果500棵決策樹中的100棵預測他會自殺,那麼研究人員可以說,擁有這些特徵的人自殺機率為20%。
為了理解重採樣為什麼重要,我們來看一個例子。假設你想根據年齡、性別和收入來預測普通人的身高,而職業籃球運動員勒布朗·詹姆斯(身高2.03米/男性/年薪3565萬美元)和凱文·杜蘭特(身高2.08米/男性/年薪2654萬美元)不知怎麼進入了你的100人樣本。一棵決策樹如果按照這些超級富有的籃球明星來預測身高,就可能作出錯誤的預測,認為年薪超過2500萬美元的人都長得很高。而重採樣能夠確保,最終分析所包括的一些決策樹排除了詹姆斯和杜蘭特中的一人或者兩人,從而提供更加準確的預測。
我們還需要做另一件事,讓隨機森林真正體現出隨機性。
用重採樣數據集生成的500棵決策樹雖然各不相同,但差異並不是很大,因為每個重採樣的大部分數據點都是一樣的。這把我們引向了對隨機森林的一個重要認識:如果限定了你(或者計算機)能夠從任何分叉點選擇的變量的數量,就可能得到全然不同的決策樹。
在關於自殺預測的研究中,研究人員有大約1300個變量可用來作出預測。在典型的決策樹中,這1300個變量中的任何一個都可以用來生成決策樹的分叉點。但隨機森林的決策樹卻不是這樣:可供計算機選擇的變量只有一部分,而不是全部1300個,並且是隨機選擇。
這種隨機性使隨機森林中的每棵決策樹都是不同的。在對自殺預測的研究中,一些決策樹可能包含了是否診斷為抑鬱症的變量,而另一些決策樹可能沒有包含這種變量。用術語來說,我們已經讓決策樹「去相關」。接下來,再取這些去相關決策樹的預測平均值(自殺預測研究中有500棵),即為隨機森林的最終預測結果。
從每棵決策樹中剔除一些變量,使每棵決策樹不那麼準確,最終的預測反而更好,這是怎麼回事呢?在預測身高的上述例子中,用收入來預測身高的所有決策樹都會認為,高收入者長得極高。但如果身高變量從一些決策樹中被隨機排除,這些決策樹對普通人身高的預測將會更加準確。
一種好的自殺預測算法,應該具有兩個特徵:一是在某人不會自殺的情況下,很少預測此人會自殺;二是在某人會自殺的情況下,很少漏掉此人。范德堡大學和佛羅里達州立大學研究人員開發的隨機森林算法,在這兩個方面都表現得不錯。
我們用真實結果來做檢驗。如果該算法預測一個人的自殺機率為50%或更高,那麼79%的情況下,此人確實會自殺。如果該算法預測自殺機率不到50%,那麼只有5%的情況下,會發生自殺行為。
隨機森林的一個優勢在於,除了是非預測以外,它還提供了一個機率。假設隨機森林預測一個人的自殺機率為45%,另一個人為10%。對於這兩個人,算法認為他們不會自殺的可能性更大。但決策者也許想制定一個計劃,把算法認為自殺機率高於30%的所有人都作為目標對象。
統計學家和計算機科學家開發了很多預測算法,隨機森林只是其中之一。某些情況下,隨機森林是最好用的。例如,在對自殺預測的研究中,隨機森林的預測準確性大大高於更簡單的回歸算法。但在另外一些情況下,其他算法可能會給出更好的預測。最受歡迎的是支持向量機和神經網絡。如果你有很多可能的預測指標,比如你想根據基因數據來預測某種疾病的遺傳可能性,那麼支持向量機非常有用。神經網絡算法往往非常準確,但用起來極為耗時。
遺憾的是,上述關於自殺預測的研究並非一種常態。眼下,算法最常用於定向廣告和識別欺詐,而不是改善公共政策。不過,有些機構正嘗試將算法用於公益事業。例如,DataKind為紐約市約翰傑伊刑事司法學院(John Jay College of Criminal Justice)開發了若干預測模型,幫助他們識別面臨輟學風險的學生,哪怕他們即將畢業。這些模型是在2017年開發的,它基於10多年的學生數據,將用於為輔助項目確定目標對象,幫助那些面臨輟學風險的學生。
這些數據模型也許看起來晦澀難懂,實際上並非如此。你如果稍有數學頭腦,就會知道如何理解和運用算法。掌握這些工具的人越多,它們就越有可能去解決各種各樣的社會問題,而不僅僅是用於商業目的。
造就 | 劇院式的線下演講平台,發現創造力
文章來源: https://twgreatdaily.com/zh-mo/LkNsLXIBiuFnsJQV9A20.html