天天看點

随機森林:猜糖豆遊戲揭示的機器學習算法

随機森林:猜糖豆遊戲揭示的機器學習算法

還記得那款老的嘉年華遊戲嗎,大家一起猜測一個罐子裡糖豆的數量?雖然準确猜出糖豆的數量需要一點運氣和技巧的組合,事實證明,通過平均所有人的各種各樣的猜測,平均結果出奇地接近正确答案。

這是一個被稱為“衆人的智慧(the wisdom of the crowd)”的典型例子,也是機器學習常用的模組化政策之一。

前提條件還是有的:你要有數量足夠多的不同的資料,每一個資料都在某些程度上包含所需信号,但資料之間沒有任何其他次元的相關性(這樣資料的誤差往往對稱分布在真實結果周圍),當然還需要一種合适的聚合方式來聚合這些資料(如算一下平均值)。你會發現,經過最後聚集,正确結果會脫穎而出,而資料的誤差往往會互相抵消。

從猜糖豆遊戲到随機森林

回到數糖豆的例子中,滿足這些前提條件意味着,一定要有很多人給出猜測(大量的觀點和資料),他們猜的都是同一個糖豆罐(猜測的資料必須含有一定次元的信号測量),人們不能彼此交流他們的猜測結果(以保證觀點和資料沒有其他相關性)。即使有些人隻是快速浏覽一下瓶子,而另一些人則研究很長一段時間;或者有人隻是開個玩笑,猜測一個非常不正确的結果(過高或過低),這些都沒有關系。

重要的是,所有的猜測都集中在正确答案的周圍。猜測中有正确的的成分,有錯誤的成分,但正确的成分會互相疊加,錯誤的成分會互相抵消。即使有人送出比較離譜的低估或高估,随着越來越多的猜測被送出,這些離譜的錯誤也會互相抵消。

“衆人的智慧(wisdom of the crowd)”是随機森林(random forest)模組化的主題思想,而随機森林是最流行的機器學習算法之一。随機森林模型的工作原理是訓練成百上千個“弱”機器學習算法,稱為決策樹。

随機森林:猜糖豆遊戲揭示的機器學習算法

決策樹通過某些參數的可用資料來運作,通過使用它檢測到的模式(pattern),建立一系列的“是或否(yes/no)”的問題(例如,這樣的客戶可能會續約嗎?),根據問題的回答來分類資料。再回到糖豆的例子,這可以被認為是類似于一個人的推理問題,如“瓶子有多大?”“糖豆有多大?”但決策樹本身會受到限制。它們隻能使用可用參數的子集來設計一系列的肯定和否定(yes/no)問題。此外,在回答是/否的問題時,一次隻使用一個決策樹,使用串聯,而不是組合,是以在給出最後答案時,很少能捕捉到參數間微妙的互相作用。

随機森林,在另一方面,采用的是類似于“人群智慧”的決策樹集合。每個決策樹使用的是不同次元的資料(就像猜糖豆中的單個參加者),然後做出一個決定,最後所有這些決定進行聚集和平均。因為每棵樹隻能看某些特定參數,單一決策樹的預測能力是非常有限的,針對每一個資料點給出正确答案的機率很小。另外,許多決策樹看到的都是不重要的特征 - 所謂資料“噪音”。

“好樹”與“壞樹”

重要的是,在随機森林算法中,我們不隻是問一棵樹的答案,而是從數百個決策樹集合中尋求答案。這裡的關鍵是,那些主要關注噪聲(不相關的資訊)的決策樹往往會是正确/錯誤的預測機率各占一般(50%,50%),這樣他們的選票互相抵消,類似猜糖豆的例子。那些更關注真正相關參數的決策樹,預測正确答案的機率比錯誤答案要高一些。是以,如果我們創造了足夠多的決策樹構成森林後,“壞樹好樹”最終各占50%,然後“好樹”的決策就決定了最終的好的結果。

随機森林:猜糖豆遊戲揭示的機器學習算法

在猜糖豆的例子中,通過征集大量的猜測,即使很多情況下沒有人猜地特别準确,但隻要集合這些猜測,我們大多數情況下都可以得到非常準确的結果。

當然,為了達到預期結果,随機林模型還必須滿足一些注意事項。首先,所述決策樹必須足夠不同,這樣它們不至于都産生同樣的反應。他們必須提出不同問題,并使用不同的亞資料集。如果每一棵樹都使用100%相同的參數,他們為每個資料點的投票都一樣,相比單一決策樹沒有什麼優勢。 (這就是我們所說的過度拟合,即在建立模型的過程中,過多關注一個特定的資料集的噪聲而導緻不良後果)。在這種情況下,森林算法會關注太多的資料噪聲,當你預測新的資料集時,你會看到模型表現很差。

反過來看也是對的:建構的決策樹數量太少。由于關注的參數太少,很難得到足夠好的資料的整體圖像。這意味着,沒有決策樹有足夠的資訊來可靠地捕獲信号,即使是“弱”信号。由于用于決策的投票人太少,是以最後的聚集結果就不可靠。

是以,關鍵是要在過拟合及欠拟合之間找到一個很好的平衡。這就是所謂的參數“超調(hyper tuning)”,以保證你的模型的正确性(類似于邏輯回歸中的正則化參數,或在徑向基核的svm-rbf kernel svm的高斯寬度width of a gaussian)在随機森林的情況下,最重要的超參數是m,該參數規定了總特性中的多少比例部分(用p來表示)可以讓每個樹來使用。

随機森林如此受歡迎的其中一個原因是,不管資料的種類如何,總有一些非常可靠的工具來引導選擇合适的m, 使得随機森林成為最簡單有效的算法之一。

原文釋出時間為:2015-11-27

本文來自雲栖社群合作夥伴“大資料文摘”,了解相關資訊可以關注“bigdatadigest”微信公衆号

繼續閱讀