隨機森林算法:何時使用以及如何使用? [優點和缺點]
已發表: 2020-12-24數據科學包含能夠解決與分類相關的問題的各種算法。 隨機森林通常位於分類層次結構的頂部。 其他算法包括支持向量機、樸素偏差分類器和決策樹。
在學習隨機森林算法之前,讓我們先了解決策樹的基本工作原理以及它們如何組合形成隨機森林。
目錄
決策樹
決策樹算法屬於監督學習算法的範疇。 決策樹的目標是根據訓練過程中製定的規則來預測目標變量的類別或值。 從樹的根開始,我們將根屬性的值與我們希望分類的數據點進行比較,並在比較的基礎上跳轉到下一個節點。
接下來,讓我們討論一些重要的術語及其在處理決策樹中的意義。
- 根節點:它是樹的最頂層節點,從中進行劃分以形成更多同質節點。
- 數據點的拆分:數據點的拆分方式可以減少拆分後的標準偏差。
- 信息增益:信息增益是我們希望在拆分後實現的標準偏差的減少。 更多的標準偏差減少意味著更多的同質節點。
- 熵:熵是分裂發生後節點中存在的不規則性。 節點中的更多同質性意味著更少的熵。
閱讀:決策樹面試問題
需要隨機森林算法
決策樹算法容易出現過擬合,即訓練數據精度高,測試數據性能差。 防止數據過度擬合的兩種流行方法是修剪和隨機森林。 修剪是指在不影響樹的整體準確性的情況下減小樹的大小。

現在讓我們討論隨機森林算法。
隨機森林的一個主要優點是它既可以用於分類問題,也可以用於回歸問題。
顧名思義,一片森林是由幾棵樹組合而成的。 同樣,隨機森林算法結合了幾種機器學習算法(決策樹)以獲得更好的準確性。 這也稱為集成學習。 在這裡,模型之間的低相關性有助於產生比任何單個預測更好的準確性。 即使一些樹產生錯誤的預測,它們中的大多數也會產生正確的預測,因此模型的整體準確性會提高。
與其他機器學習算法一樣,隨機森林算法可以在 python 和 R 中實現。
何時使用隨機森林,何時使用其他模型?
首先,我們需要確定問題是線性的還是非線性的。 然後,如果問題是線性的,我們應該使用簡單線性回歸,以防只有一個特徵存在,如果我們有多個特徵,我們應該使用多元線性回歸。 但是,如果問題是非線性的,我們應該使用多項式回歸、SVR、決策樹或隨機
森林。 然後使用非常相關的技術來評估模型的性能,例如 k 折交叉驗證、網格搜索或 XGBoost,我們可以得出解決我們問題的正確模型。
我怎麼知道我應該使用多少棵樹?
對於任何初學者,我建議通過實驗確定所需的樹木數量。 它通常比實際使用技術通過調整和調整模型來找出最佳價值所花費的時間更少。 通過試驗多個超參數值,例如樹的數量。 儘管如此,可以使用像覆蓋 k 折交叉驗證和網格搜索這樣的技術,它們是確定超參數最優值的強大方法,比如這裡的樹的數量。

p值可以用於隨機森林嗎?
在這裡,在隨機森林的情況下,p 值將是微不足道的,因為它們是非線性模型。
裝袋
決策樹對他們訓練的數據高度敏感,因此容易過度擬合。 然而,隨機森林利用了這個問題,並允許每棵樹從數據集中隨機採樣以獲得不同的樹結構。 這個過程被稱為 Bagging。
Bagging 並不意味著創建訓練數據的子集。 這只是意味著我們仍在為樹提供訓練數據,但大小為 N。我們取一個大小為 N(N 個數據點)的樣本替換原始數據。
特徵重要性
隨機森林算法允許我們確定給定特徵的重要性及其對預測的影響。 它在訓練後計算每個特徵的分數,並以將它們相加的方式對它們進行縮放。 這讓我們知道要刪除哪個特徵,因為它們不會影響整個預測過程。 由於特徵較少,該模型不太可能成為過度擬合的犧牲品。
超參數
超參數的使用要么增加模型的預測能力,要么使模型更快。
首先, n_estimator參數是算法在進行平均預測之前構建的樹的數量。 n_estimator 的高值意味著通過高預測提高性能。 然而,它的高值也減少了模型的計算時間。
另一個超參數是max_features,它是模型在拆分為後續節點之前考慮的特徵總數。

此外, min_sample_leaf是拆分內部節點所需的最小葉子數。
最後,當選擇確定的 random_state 值以及相同的超參數和訓練數據時, random_state用於產生固定輸出。
隨機森林算法的優缺點
- 隨機森林是一種非常通用的算法,能夠解決分類和回歸任務。
- 此外,所涉及的超參數很容易理解,通常,它們的默認值會產生良好的預測。
- 隨機森林解決了決策樹中出現的過擬合問題。
- 隨機森林的一個限制是,太多的樹會使算法的處理速度變慢,從而使其對實時數據的預測無效。
另請閱讀:分類算法的類型
結論
隨機森林算法是一種非常強大的算法,具有很高的準確性。 它在投資銀行、股票市場和電子商務網站領域的實際應用使它們成為一個非常強大的算法。 然而,通過使用神經網絡算法可以獲得更好的性能,但這些算法有時會變得複雜並且需要更多時間來開發。
如果您有興趣了解有關決策樹、機器學習的更多信息,請查看 IIIT-B 和 upGrad 的機器學習和人工智能 PG 文憑,該文憑專為在職專業人士設計,提供 450 多個小時的嚴格培訓、30 多個案例研究和任務、IIIT-B 校友身份、5 個以上實用的實踐頂點項目和頂級公司的工作協助。
使用隨機森林算法有什麼缺點?
隨機森林是一種複雜的機器學習算法。 它需要大量處理資源,因為它會生成大量樹來查找結果。 此外,與決策樹方法等其他算法相比,該技術需要大量的訓練時間。 當提供的數據是線性的時,隨機森林回歸表現不佳。
隨機森林算法如何工作?
隨機森林由許多不同的決策樹組成,類似於森林由許多樹組成。 隨機森林方法的結果實際上是由決策樹的預測決定的。 隨機森林方法還減少了數據過度擬合的機會。 隨機森林分類使用集成策略來獲得所需的結果。 使用訓練數據訓練各種決策樹。 該數據集包含在節點拆分後隨機選擇的觀察值和特徵。
決策樹與隨機森林有何不同?
隨機森林只不過是決策樹的集合,因此理解起來很複雜。 隨機森林比決策樹更難閱讀。 與決策樹相比,隨機森林需要更多的訓練時間。 然而,在處理龐大的數據集時,隨機森林更受青睞。 過擬合在決策樹中更為常見。 在隨機森林中,過度擬合的可能性較小,因為它們使用了大量的樹。