隨機森林的「隨機」在哪?

2021-09-26 03:40:56 字數 1004 閱讀 1178

在機器學習中,隨機森林是乙個包含多個決策樹的分類器, 並且其輸出的類別是由個別樹輸出的類別的眾數而定。

根據下列演算法而建造每棵樹 :

在構建隨機森林時,需要做到兩個方面:資料的隨機性選取,以及待選特徵的隨機選取,來消除過擬合問題。

首先,從原始的資料集中採取有放回的抽樣,構造子資料集,子資料集的資料量是和原始資料集相同的。不同子資料集的元素可以重複,同乙個子資料集中的元素也可以重複。第二,利用子資料集來構建子決策樹,將這個資料放到每個子決策樹中,每個子決策樹輸出乙個結果。最後,如果有了新的資料需要通過隨機森林得到分類結果,就可以通過對子決策樹的判斷結果的投票,得到隨機森林的輸出結果了。(假設隨機森林中有3棵子決策樹,2棵子樹的分類結果是a類,1棵子樹的分類結果是b類,那麼隨機森林的分類結果就是a類)

與資料集的隨機選取類似,隨機森林中的子樹的每乙個**過程並未用到所有的待選特徵,而是從所有的待選特徵中隨機選取一定的特徵,之後再在隨機選取的特徵中選取最優的特徵。這樣能夠使得隨機森林中的決策樹都能夠彼此不同,提公升系統的多樣性,從而提公升分類效能。

優點:隨機森林的既可以用於回歸也可以用於分類任務,並且很容易檢視模型的輸入特徵的相對重要性。隨機森林演算法被認為是一種非常方便且易於使用的演算法,因為它是預設的超引數通常會產生乙個很好的**結果。超引數的數量也不是那麼多,而且它們所代表的含義直觀易懂。

隨機森林有足夠多的樹,分類器就不會產生過度擬合模型。

缺點:由於使用大量的樹會使演算法變得很慢,並且無法做到實時**。一般而言,這些演算法訓練速度很快,**十分緩慢。越準確的**需要越多的樹,這將導致模型越慢。在大多數現實世界的應用中,隨機森林演算法已經足夠快,但肯定會遇到實時性要求很高的情況,那就只能首選其他方法。當然,隨機森林是一種**性建模工具,而不是一種描述***。也就是說,如果您正在尋找關於資料中關係的描述,那建議首選其他方法。

隨機森林隨機 三

2018年7月22日 陣雨 感冒發燒喉嚨疼,只因為一杯正常冰的奶蓋!以後得少喝加冰的東西了.前面說的是整合學習的兩種形式,這跟隨機森林有啥關係呢?隨機森林是bagging的乙個擴充套件變體.簡單的來說,當bagging演算法中的base learner為決策樹並在訓練決策樹的過程中加入隨機屬性選擇,...

隨機森林python引數 隨機森林的引數說明

a.max features 隨機森林允許單個決策樹使用特徵的最大數量。python為最大特徵數提供了多個可選項。下面是其中的幾個 auto none 簡單地選取所有特徵,每顆樹都可以利用他們。這種情況下,每顆樹都沒有任何的限制。sqrt 此選項是每顆子樹可以利用總特徵數的平方根個。例如,如果變數 ...

隨機森林演算法

random forest是加州大學伯克利分校的breiman leo和adele cutler於2001年發表的 中提到的新的機器學習演算法,可以用來做分類,聚類,回歸,和生存分析,這裡只簡單介紹該演算法在分類上的應用。random forest 隨機森林 演算法是通過訓練多個決策樹,生成模型,然...