人工智能之集成學習利器:強大的隨機森林算法

專欄推薦




集成學習算法兩大利器:

Bagging:隨機森林

Boosting:Adaboost(提升方法),GBDT,xgboost


人工智能之集成學習利器:強大的隨機森林算法


Bagging隨機森林

Bootstraping由放回採樣

比如【1,2,3,4】第一次取1,第二次取2,第三次取3,第四次還取2,因為是有放回的所以可以重複取

隨機森林就是同一個數據集來構造多棵決策樹,然後測試數據的時候,我們可以將測試數據傳入到決策樹中,假如有5棵結果判定測試數據是類別1,2棵判斷測試數據是類別2,那麼我們就根據多數原則來確定這個測試數據就是類別1。這個是分類的問題,如果要是迴歸問題的話,那麼我們就計算所有樹的平均數來確定這個測試數據的結果。

隨機森林,隨機有兩層意思,第一層意思是數據樣本的隨機性,比如構造決策樹的時候,我們設定只使用60%的數據,那麼再樣本【1,2,3......10】中只放回取6次,然後根據這6次的數據構造決策樹。第二層意思是特徵的隨機性,我們設定只是用60%的樣本,假如有每個樣本有10個特徵,那麼我們就隨機使用6個特徵(無放回)構造決策樹。總結就是一個隨機是樣本隨機,還有一個隨機是特徵隨機。

注意點1:隨機選擇樣本,有放回的採樣(Bootstrap),重複的選擇部分樣本來構造CART樹。

注意點2:構造樹的過程中,每次隨機考察部分特徵,不對樹進行裁剪。

在生成一定數量的次優樹之後,森林的輸出採用簡單多數的投票法(分類)或單棵樹輸出結果的簡單平均(針對迴歸)得到。


人工智能之集成學習利器:強大的隨機森林算法


隨機森林的分析:

  • 森林中單棵樹的分類強度:每顆樹的分類強度越大,則隨機森林的分類性能越好。
  • 森林中樹之間的相關度:樹之間的相關度越大,則隨機森林的分類性能越差。
  • OOB錯誤率是隨機森林的錯誤率無偏估計,對於每個樣本,在其所有OOB的單樹中的錯誤佔比,作為OOB的錯誤率,因此隨機森林不需要交叉驗證。

在隨機森林之Bagging法中可以發現Bootstrap每次約有1/3的樣本不會出現在Bootstrap所採集的樣本集合中,當然也就沒有參加決策樹的建立,那是不是意味著就沒有用了呢,答案是否定的。我們把這1/3的數據稱為袋外數據ooB(out of bag),它可以用於取代測試集誤差估計方法.

用OOB error 估計作為泛化誤差估計的一個組成部分,並且Breiman在論文中給出了經驗性實例表明袋外數據誤差估計與同訓練集一樣大小的測試集得到的精度一樣,這樣也就表明袋外數據(oob)誤差估計是一種可以取代測試集的誤差估計方法。


人工智能之集成學習利器:強大的隨機森林算法


袋外數據(oob)誤差的計算方法如下:

對於已經生成的隨機森林,用袋外數據測試其性能,假設袋外數據總數為O,用這O個袋外數據作為輸入,帶進之前已經生成的隨機森林分類器,分類器會給出O個數據相應的分類,因為這O條數據的類型是已知的,則用正確的分類與隨機森林分類器的結果進行比較,統計隨機森林分類器分類錯誤的數目,設為X,則袋外數據誤差大小=X/O;這已經經過證明是無偏估計的,所以在隨機森林算法中不需要再進行交叉驗證或者單獨的測試集來獲取測試集誤差的無偏估計。


分享到:


相關文章: