經典與統計學習

隨機森林(random forest)

/ RAN-dum FOR-ist /

隨機森林把「群體的智慧」用到了決策樹上。正如我們所見,單棵樹雖聰明卻神經質——它會過擬合,對資料裡的小抖動反應過度。於是,與其信任一位專家,不如種出成百上千棵樹,每棵都在問題的略微不同的一份切片上訓練,再讓它們投票。各棵樹的錯誤往往各不相同、相互抵消,而它們共有的、正確的訊號則在投票中存活下來。這片森林,遠比其中任何一棵樹都穩。

兩劑隨機性,讓這些樹不至於成為複製品。第一,每棵樹都在資料的一次隨機重採樣上訓練(有放回地抽取,於是有些列重複出現、有些則被漏掉)——這種手法叫作袋裝(bagging)。第二,在每一次分叉時,每棵樹都只被允許考慮特徵的一個隨機子集。這種刻意的「意見不合」正是秘訣:若樹總是犯同樣的錯,它們就會齊步投票,什麼也抵消不掉。逼著它們各不相同,森林便把它們各自的缺陷化作了集體的力量。

回報是一個既準確、又穩健、幾乎對過擬合無動於衷的模型,且幾乎不用怎麼調參——這正是它在商業與科研中、面對日常表格資料時常被作為預設首選的原因。代價是你交出了單棵樹的可讀性:一片500棵樹的森林,不再是你一眼能看懂的流程圖,儘管它仍能排出哪些特徵最要緊。它也變不出資料裡根本不存在的模式——它是個結實的平均器,不是魔術師。

要預測一位顧客是否會流失,你種出500棵樹,每棵都基於訂戶的一次隨機重採樣和隨機抽取的一小撮特徵。一位新顧客的資料穿過全部500棵:340棵說「會走」,160棵說「會留」。森林給出「流失」,置信度為340/500 = 68%。

成百上千棵不完美的樹投票——「意見不合」是特性,而非缺陷。

隨機森林靠把單棵樹的方差平均掉來抑制過擬合,但它修不好資料裡的根本缺陷——給每棵樹餵同樣的偏見,森林會忠實地把這份偏見平均出來。它的樹是並行預測的(袋裝);與之相對的是提升,那裡的樹是一個接一個建起來、互相修正錯誤的。

又稱
random decision forest随机森林隨機森林