經典與統計學習

決策樹(decision tree)

/ dih-SIZH-un tree /

決策樹做預測的方式,就像一位謹慎的醫生或一名海關人員——拋出一連串「是/否」問題,每一問都把範圍收窄一點,直到得出判決。體溫高於38°C嗎?是的話,有咳嗽嗎?也有的話,就預測為流感。這是電腦依據資料為自己搭起的一張流程圖,你可以從上到下逐字讀完這棵成形的樹,原原本本地看清它為什麼這樣判。

機器以貪心的方式逐題搭樹。每一步,它都掃遍所有特徵,挑出那一刀切得最好、能把樣本分成更「純」的兩組——比如那一刀把幾乎所有垃圾郵件甩到一邊、把幾乎所有正常郵件留在另一邊。然後它在每個分支內部重複同樣的事,一次次地繼續切,直到各組足夠乾淨,或觸到某個停止規則。每個分支末端是一片葉子,裡面存著抵達此處的所有樣本的最終答案。

它最大的美德是透明:在醫學、信貸這類領域裡,能解釋一個決定,有時和做出這個決定同樣重要。樹還能同時處理數字和類別,幾乎不需要資料預處理。但單獨一棵樹是脆弱的——任由它瘋長,它會把訓練資料連同雜訊一起背下來,這是過擬合的經典例子;而且資料上一點點小變動,就能把整棵樹重新洗牌。正是這份脆弱,使得人們很少單用一棵,而是把許多棵合起來,組成隨機森林或提升集成。

一家銀行的放貸樹:先按「收入 > 4萬美元?」分叉——「否」向左走向「拒絕」。「是」向右走,再按「現有負債 > 收入的一半?」分叉——「是」傾向拒絕,「否」抵達一片標著「批准」的葉子。任何一位申請人,都能沿著三個問題的單一路徑,被追溯到答案。

一張可讀的「是/否」分叉流程圖——透明正是它的賣點。

一棵不加限制、任意生長的孤樹幾乎總會過擬合——最後把過去解釋得天衣無縫,把未來預測得一塌糊塗。給它剪枝(砍掉弱分支)或限制深度能讓它保持誠實;把許多棵組合起來,則是森林與提升徹底解決這個問題的辦法。

又稱
classification treeregression treeCART决策树決策樹