隨機森林的訓練過程

2021-10-03 03:59:56 字數 1374 閱讀 7706

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

在建立每一棵決策樹的過程中,有兩點需要注意:①取樣;②完全**。

首先:是兩個隨機取樣的過程,random forest對輸入的資料要進行行、列的取樣。對於行取樣,採用有放回的方式,也就是在取樣得到的樣本集合中,可能有重複的樣本。假設輸入樣本為n個,那麼取樣的樣本也為n個。這樣使得在訓練的時候,每一棵樹的輸入樣本都不是全部的樣本,使得相對不容易出現over-fitting。然後進行列取樣,從m 個feature中,選擇m個(m << m)。推薦m的值為m的平方根。

之後:對取樣之後的資料使用的方式建立出決策樹,這樣決策樹的某乙個葉子節點要麼是無法繼續**的,要麼裡面的所有樣本的都是指向的同乙個分類。一般很多的決策樹演算法都乙個重要的步驟 - 剪枝,但是這裡不這樣幹,由於之前的兩個隨機取樣的過程保證了隨機性,所以就算不剪枝,也不會出現over-fitting。

隨機森林的核心:是隨機選取樣本特徵和隨機選取樣本,每次在選取的訓練集上訓練決策樹。

隨機深林的優點:比較適合做多分類問題;訓練和**速度快;對訓練資料的容錯能力,是一種有效地估計缺失資料的一種方法,當資料集中有大比例的資料缺失時仍然可以保持精度不變;能夠有效地處理大的資料集;可以處理沒有刪減的成千上萬的變數;能夠在分類的過程中可以生成乙個泛化誤差的內部無偏估計;能夠檢測到特徵之間的相互影響以及重要性程度;不過出現過度擬合;實現簡單容易並行化。

下面是隨機森林的構造過程:

假如有n個樣本,則有放回的隨機選擇n個樣本(每次隨機選擇乙個樣本,然後返回繼續選擇)。這選擇好了的n個樣本用來訓練乙個決策樹,作為決策樹根節點處的樣本。

當每個樣本有m個屬性時,在決策樹的每個節點需要**時,隨機從這m個屬性中選取出m個屬性,滿足條件m << m。然後從這m個屬性中採用某種策略(比如說資訊增益)來選擇1個屬性作為該節點的**屬性。

決策樹形成過程中每個節點都要按照步驟2來**(很容易理解,如果下一次該節點擊出來的那乙個屬性是剛剛其父節點**時用過的屬性,則該節點已經達到了葉子節點,無須繼續**了)。一直到不能夠再**為止。注意整個決策樹形成過程中沒有進行剪枝。

按照步驟1~3建立大量的決策樹,這樣就構成了隨機森林了。

從上面的步驟可以看出,隨機森林的隨機性體現在每顆數的訓練樣本是隨機的,樹中每個節點的分類屬性也是隨機選擇的。有了這2個隨機的保證,隨機森林就不會產生過擬合的現象了。

隨機森林有2個引數需要人為控制,乙個是森林中樹的數量,一般建議取很大。另乙個是m的大小,推薦m的值為m的均方根。

訓練過程 GPU訓練

為什麼y2b的8m,8張普通tt為啥要跑幾個月?因為gpu其實有60 的時間都是在等待資料填充完成,簡直蠢。1 換個固態硬碟試試?沒用。問題出在系統匯流排上,一幀的資料量入視訊記憶體後有1.58g 當前最優的分布式訓練方式是通過引數伺服器 parameter server 執行的同步隨機梯度下降演算...

Adaboost 訓練過程

每個haar特徵對應看乙個弱分類器,但並不是任伺乙個haar特徵都能較好的描述人臉灰度分布的某一特點,如何從大量的haar特徵中挑選出最優的haar特徵並製作成分類器用於人臉檢測,這是adaboost演算法訓練過程所要解決的關鍵問題。paul viola和michael jones於2001年將ad...

Q learning訓練過程

下面的偽 說明了我們如何訓練,來得到乙個盡量完美的q 初始化 q while q 未收斂 初始化小鳥的位置s,開始新一輪遊戲 while s 死亡狀態 使用策略 獲得動作a s 使用動作a進行遊戲,獲得小鳥的新位置s 與獎勵r s,a q s,a 1 q s,a r s,a max q s a 更新...