隨機森林Random Forests的各個引數對模型的影響?

時間 2021-06-15 14:26:00

1樓:楊一帥

嘗試用手寫資料集研究了一下整合規模,樹的最大深度以及特徵數對隨機森林分類結果的影響。

手寫資料集

使用交叉驗證,返回accuracy,折數為10

整合規模即樹的數量。為了觀察其影響,分別對數量1~40進行交叉驗證,返回得到準確率並繪圖。

樹的數量和準確度的關係圖

觀察可得,整合規模的增加可以提高模型在訓練集和測試集上的準確度,這是因為增加樹的數量可以減少偏差和方差,還可以發現模型不會隨著複雜度的增加而過度擬合訓練資料。

樹的最大深度反映了單個樹的複雜度,將整合規模固定為20,max_depth為變數進行類似實驗。

樹的深度與準確度的關係圖

顯而易見,在隨機森林中,決策樹越強,整合的模型就越強,並不會失去泛化性。而基於一組基本學習器的其他演算法可能會對弱學習器或者表現不佳的學習器產生跟強學習器一樣的偏愛,例如Boosting的一些情況,

隨機森林演算法為了減少相關性以及在整合中引入隨機性,從每個內部決策樹的所有可用輸入特徵中選擇k特徵的隨機子集。

使用較少數量的輸入特徵會降低各個樹之間的相似性,但也會導致樹的複雜性降低從而導致樹的強度降低。

反之,增加特徵數量可以使每棵樹更強大,但也增加了樹之間相關性。

特徵數與準確度的關係圖

實驗結果證明了,在一共64個特徵中,選取大約8(根號64)個特徵會得到比較好的結果。這也與一些文獻中的所述一致。

2樓:

為什麼我經常調參,發現樹多了,效果反而會差點,最開始經常喜歡用什麼500,1000顆樹。後來發現100-200一般就夠了,這是怎麼回事?

3樓:SimpleJian

控制決策樹深度目的是防過擬合,但隨機森林一般不需要控制樹的深度,直接對樣本和特徵進行取樣,訓練多棵完全分支的決策樹,最後投票得出結果。多棵「隨機」的決策樹可以看成多個醫生,由於每棵樹的訓練資料都是經過取樣後的,可以理解為每個醫生的經驗不同,導致各有專長,因為集眾所長,所以能有效降低variance,防止過擬合。

所以,RF的引數就只有樹的棵樹了(entropy或gini的選擇就不說了),一般來講,樹太少或太多效果都不好,對於不同資料,跑一組實驗畫個圖就基本能看出來合適的棵數了。

總之,RF還是挺好用的,速度快,精度高,引數少,個人最喜歡的分類器,是不是之一不好說……

用通俗易懂的語言解釋 隨機森林 ?

撫琴塵世客 隨機森林 Random Forest,簡稱 RF 是 Bagging的乙個擴充套件變體。在以決策樹為基學習器構建 Bagging 整合的基礎上,進一步在決策樹的訓練過程中引入了隨機屬性選擇。 泰克尼客 在原始樣本的基礎上,利用bootstrap方法 有放回地抽取樣本 隨機抽取n個subs...

隨機森林MATLAB程式中出現的兩張圖,請大神幫忙分析下

SimpleJian 第一張圖看起來像是分析特徵重要性,隨機森林可以通過看shuffle某一維特徵後對模型效能的影響來評估特徵重要性。所以第一張圖應該是隨機shuffle某個特徵後,分別畫出了mean accuracy decrease和mean gini index decrease。從圖中可以大...

隨機森林中訓練每一棵樹輸入的m個特徵都是隨機選取的嗎?

石頭 隨機森林按照隨機的物件分為兩種 在變數 列 字段 上的隨機化 和在資料 行 個案 上的隨機化。無論書上是怎麼定義隨機森林,但我所希望實現的隨機森林是先隨機選取特徵,再用全部的資料生成樹,然後重複這個過程生成森林。而不是在每個節點再進行隨機抽取,因為對於資料探勘來說,在每個節點上進行隨機選取沒有...