機器學習 隨機森林 Random Forest

2021-09-07 12:06:12 字數 995 閱讀 9986

隨機森林是乙個最近比較火的演算法

在資料集上表現良好

在當前的很多資料集上,相對其他演算法有著很大的優勢

它能夠處理很高維度(feature很多)的資料,並且不用做特徵選擇

在訓練完後,它能夠給出哪些feature比較重要

在建立隨機森林的時候,對generlization error使用的是無偏估計

訓練速度快

在訓練過程中,能夠檢測到feature間的互相影響

容易做成並行化方法

實現比較簡單

用隨機的方式建立乙個森林,森林裡面有很多的決策樹組成,隨機森林的每一棵決策樹之間是沒有關聯的。在得到森林之後,當有乙個新的輸入樣本進入的時候,就讓森林中的每一棵決策樹分別進行一下判斷,看看這個樣本應該屬於哪一類(對於分類演算法),然後看看哪一類被選擇最多,就**這個樣本為那一類。

在建立每一棵決策樹的過程中,有兩點需要注意 – 取樣與完全**。首先是兩個隨機取樣的過程,random forest對輸入的資料要進行行、列的取樣。對於行取樣,採用有放回的方式,也就是在取樣得到的樣本集合中,可能有重複的樣本。假設輸入樣本為n個,那麼取樣的樣本也為n個。這樣使得在訓練的時候,每一棵樹的輸入樣本都不是全部的樣本,使得相對不容易出現over-fitting。然後進行列取樣,從m個feature中,選擇m個(m << m)。之後就是對取樣之後的資料使用完全**的方式建立出決策樹,這樣決策樹的某乙個葉子節點要麼是無法繼續**的,要麼裡面的所有樣本的都是指向的同乙個分類。一般很多的決策樹演算法都乙個重要的步驟 – 剪枝,但是這裡不這樣幹,由於之前的兩個隨機取樣的過程保證了隨機性,所以就算不剪枝,也不會出現over-fitting。

按這種演算法得到的隨機森林中的每一棵都是很弱的,但是大家組合起來就很厲害了。我覺得可以這樣比喻隨機森林演算法:每一棵決策樹就是乙個精通於某乙個窄領域的專家(因為我們從m個feature中選擇m讓每一棵決策樹進行學習),這樣在隨機森林中就有了很多個精通不同領域的專家,對乙個新的問題(新的輸入資料),可以用不同的角度去看待它,最終由各個專家,投票得到結果

機器學習 隨機森林

opencv包含隨機森林 random forest 類,隨機森林可以通過收集很多樹的子節點對各個類別的投票,然後選擇獲得最多投票的類別作為判斷結果。通過計算 森林 的所有子節點上的值的平均值來解決回歸問題。隨機森林包含隨機選擇的一些決策樹。隨機森林建立時的基本子系統也是決策樹,在建立決策樹時會一直...

機器學習 隨機森林

以下內容均為個人理解,如有錯誤,歡迎指出 如何生成隨機森林基學習器的訓練資料集 隨機 的含義 bagging整合學習的評測方法 隨機森林的引數 以下內容摘自周志華老師的 機器學習 隨機森林是bagging的乙個擴充套件變體,它在以決策樹為基學習器構建的bagging整合的基礎上,進一步在決策樹的訓練...

機器學習 隨機森林

以決策樹為基礎 隨機森林 決策樹的乙個主要缺點在於經常對訓練的資料過擬合。隨機森林是解決這個問題的一種方法。隨機森林的本質上是很多決策樹的集合,其中那個每棵樹都和其他樹略有不同。隨機森林背後砈思想史是,每棵樹的 都可能相對較好,但可能對部分書聚過擬合,如果我們構建很多樹,並且每棵樹都可以 的很好,但...