你需要知道的關於隨機森林算法優化的一切
已發表: 2020-12-22假設您已經構建了一個機器學習程序並使用隨機森林模型對其進行訓練。 但是,程序的輸出/結果並不像您希望的那樣準確。 所以你會怎麼做?
改進機器學習模型以提高機器學習程序的輸出的方法有以下三種:
- 提高輸入數據質量和特徵工程
- 算法的超參數調優
- 使用不同的算法
但是,如果您已經使用了所有可用的數據源怎麼辦? 下一個合乎邏輯的步驟是超參數調整。 因此,如果您創建了一個帶有隨機森林模型的機器學習程序,使用了最好的數據源,並且想進一步提高程序的輸出,那麼您應該選擇隨機森林超參數調整。
在我們深入研究隨機森林超參數調優之前,讓我們先看一下超參數和超參數調優的一般情況。
目錄
什麼是超參數?
在機器學習的上下文中,超參數是用來控制模型學習過程的參數。 它們在模型外部,無法從數據中估計它們的值。
對於隨機森林超參數調整,超參數包括決策樹的數量和節點分裂時每棵樹考慮的特徵數量。

什麼是超參數調優?
超參數調優是為機器學習問題尋找一組理想的超參數的過程。
現在我們已經了解了超參數和超參數調整是什麼,讓我們看看隨機森林中的超參數和隨機森林超參數調整。
閱讀:決策樹面試問題
什麼是隨機森林超參數調優?
要了解什麼是隨機森林超參數調整,我們將看一下五個超參數以及每個超參數的調整。
超參數 1:max_depth
max_depth 是隨機森林算法中樹中根節點和葉節點之間的最長路徑。 通過調整這個超參數,我們可以限制我們希望樹在隨機森林算法中生長的深度。 此超參數通過在宏觀層面上工作來減少決策樹的增長。
超參數 2:max_terminal_nodes
該超參數通過設置樹中節點分裂的條件來限制隨機森林中決策樹的生長。 節點的分裂將停止,如果分裂後的終端節點多於指定數量,則樹的生長將停止。
例如,假設我們在樹中有一個節點,並且最大終端節點設置為四個。 由於只有一個節點,一開始,節點將被拆分,樹將進一步增長。 在拆分達到最大限制 4 後,決策樹將不會進一步增長,因為拆分將終止。 使用 max_terminal_nodes 超參數調整有助於防止過度擬合。 但是,如果調整的值非常小,則森林很可能會欠擬合。

相關閱讀:決策樹分類
超參數 3:n_estimators
數據科學家總是面臨要考慮多少決策樹的困境。 有人可能會說選擇更多的樹是要走的路。 這可能成立,但它也增加了隨機森林算法的時間複雜度。
通過 n_estimators 超參數調整,我們可以決定隨機森林模型中的樹數。 n_estimators 參數的默認值為 10。 這意味著默認構建十個不同的決策樹。 通過調整這個超參數,我們可以改變將要構建的樹的數量。
超參數 4:max_features
通過這種超參數調整,我們可以決定為森林中的每棵樹提供的特徵數量。 一般來說,如果將 max features 的值設置為 6,則發現模型的整體性能最高。 但是,您也可以將最大特徵參數值設置為默認值,即數據集中存在的特徵數量的平方根。
超參數 5:min_samples_split
此超參數調整決定了拆分內部葉節點所需的最小樣本數。 默認情況下,此參數的值為 2。 這意味著要拆分內部節點,必須至少存在兩個樣本。
如何進行隨機森林超參數調優?
您需要通過調用創建模型的函數手動執行隨機森林超參數調整。 隨機森林超參數調整更多的是一種實驗方法,而不是理論方法。 因此,您可能需要嘗試不同的超參數調整組合,並在決定選擇一種之前評估每種組合的性能。
例如,假設您必須在隨機森林算法中調整估計器的數量和樹的最小分割。 因此,您可以使用以下命令進行超參數調優:

森林 = RandomForestClassifier(random_state = 1, n_estimators = 20, min_samples_split = 2)
在上面的示例中,估計器的數量從其默認值 10 更改為 20。 因此,算法將在隨機森林中創建二十棵樹,而不是十棵決策樹。 類似地,一個內部葉節點只有在它至少有兩個樣本時才會被分裂。
結論
我們希望這篇博客能幫助您了解隨機森林超參數調優。 您可以調整許多其他超參數以改善機器學習程序的輸出。 在大多數情況下,超參數調整足以改善機器學習程序的輸出。
但是,在極少數情況下,即使是隨機森林超參數調整也可能無濟於事。 在這種情況下,您將需要考慮不同的機器學習算法,例如線性或邏輯回歸、KNN 或您認為合適的任何其他算法。
如果您有興趣了解有關決策樹、機器學習的更多信息,請查看 IIIT-B 和 upGrad 的機器學習和人工智能 PG 文憑,該文憑專為在職專業人士設計,提供 450 多個小時的嚴格培訓、30 多個案例研究和作業,IIIT-B 校友身份,5 個以上實用的實踐頂點項目和頂級公司的工作協助。
為什麼要使用隨機森林算法?
在機器學習中的監督學習算法類別中,隨機森林算法是使用最廣泛的模型之一。 隨機森林算法可以解決機器學習中的分類和回歸問題。 它專注於集成學習,該概念結合了多個分類器來解決複雜問題,從而可以改善模型的整體功能和結果。 隨機森林算法很受歡迎,因為與許多其他算法相比,它的訓練時間要少得多。 它還可以為大量數據集提供高度準確的預測,即使部分數據丟失。
決策樹和隨機森林有什麼區別?
決策樹算法是機器學習中的一種監督學習技術,它對單個樹進行建模,該樹構成一系列導致特定結果的後續決策。 決策樹易於解釋和理解。 但它通常不足以解決更複雜的問題。 這就是隨機森林算法變得有用的地方——它利用多個決策樹來解決特定問題。 換句話說,隨機森林算法隨機生成多個決策樹,並將它們的結果組合起來產生最終結果。 儘管隨機森林比決策樹更難解釋,但當涉及大量數據時,它會產生準確的結果。
使用隨機森林算法有什麼好處?
使用隨機森林算法的最大優勢在於它的靈活性。 您可以將此技術用於分類和回歸任務。 除了多功能性之外,該算法也非常方便——它使用的默認參數足以產生高精度的預測。 此外,機器學習分類模型因過度擬合等問題而聞名。 如果隨機森林算法中有足夠多的樹,分類中的過擬合問題很容易克服。
