您現在的位置是:首頁 > 籃球

決策樹和隨機森林的理論、實現和超引數調整

  • 由 不靠譜的貓 發表于 籃球
  • 2022-10-12
簡介應用樹和隨機森林演算法5.1 決策樹分類器決策樹引數:criterion: 衡量拆分質量

mediaserver怎麼恢復

決策樹和隨機森林的理論、實現和超引數調整

在本文中,我們將詳細介紹決策樹和隨機森林模型。此外,我們將展示決策樹和隨機森林的哪些超引數對它們的效能有重要影響,從而使我們能夠在欠擬合和過擬合之間找到最佳方案。在瞭解了決策樹和隨機森林背後的理論之後。,我們將使用Scikit-Learn實現它們。

1。 決策樹

決策樹是預測建模機器學習的一種重要演算法。經典的決策樹演算法已經存在了幾十年,而像隨機森林這樣的現代變體是最強大的可用技術之一。

通常,這種演算法被稱為“決策樹”,但在R等一些平臺上,它們被稱為CART。CART演算法為bagged決策樹、隨機森林和boosting決策樹等重要演算法提供了基礎。

與線性模型不同,決策樹是非引數模型:它們不受數學決策函式的控制,也沒有要最佳化的權重或截距。事實上,決策樹將透過考慮特徵來劃分空間。

CART模型表示

CART模型的表示是二叉樹。這是來自演算法和資料結構的二叉樹。每個根節點表示一個輸入變數(x)和該變數上的一個拆分點(假設變數是數值型的)。

樹的葉節點包含一個輸出變數(y),用於進行預測。給定一個新的輸入,透過從樹的根節點開始計算特定的輸入來遍歷樹。

決策樹的一些優點是:

易於理解和解釋。樹可以視覺化。

需要很少的資料準備。

能夠處理數字和分類資料。

可以使用統計測試來驗證模型。

即使生成資料的真實模型在某種程度上違反了它的假設,也表現良好。

決策樹的缺點包括:

過度擬合。諸如剪枝、設定葉節點所需的最小樣本數或設定樹的最大深度等機制是避免此問題所必需的。

決策樹可能不穩定。可以在整合中使用決策樹。

不能保證返回全域性最優決策樹。可以在一個整合學習器中訓練多棵樹

如果某些類別占主導地位,決策樹學習器會建立有偏樹。建議:在擬合之前平衡資料集

2。 隨機森林

隨機森林是最流行和最強大的機器學習演算法之一。它是一種整合機器學習演算法,稱為Bootstrap Aggregation或bagging。

決策樹和隨機森林的理論、實現和超引數調整

為了提高決策樹的效能,我們可以使用許多具有隨機特徵樣本的樹。

3。python中的決策樹和隨機森林實現

我們將使用決策樹和隨機森林來預測您有價值的員工的流失(資料集www。kaggle。com/datasets/pavansubhasht/ibm-hr-analytics-attrition-dataset)。

決策樹和隨機森林的理論、實現和超引數調整

4。 資料處理

決策樹和隨機森林的理論、實現和超引數調整

5。 應用樹和隨機森林演算法

決策樹和隨機森林的理論、實現和超引數調整

5.1 決策樹分類器

決策樹引數:

criterion: 衡量拆分質量。支援的標準是基尼雜質的“基尼”和資訊增益的“熵”。

splitter:用於在每個節點處選擇拆分的策略。支援的策略是“best”選擇最佳拆分和“random”選擇隨機拆分。

max_depth:樹的最大深度。如果為None,則展開節點,直到所有葉節點,或者直到所有葉包含的樣本小於min_samples_split。

min_samples_split:拆分內部節點所需的最小樣本數。

min_samples_leaf:葉節點上所需的最小樣本數。

min_weight_fraction_leaf:葉節點上所需的總權重的最小加權分數。當沒有提供sample_weight時,樣本具有相等的權值。

max_features:尋找最佳拆分時要考慮的特徵數量。

max_leaf_nodesmax_leaf_nodes:以最佳優先的方式使用max_leaf_nodes形成樹。最佳節點定義為雜質的相對減少。如果為None,則有無限數量的葉節點。

min_impurity_decrease:如果該拆分導致雜質減少大於或等於該值,則該節點將被拆分。

min_impurity_split: 提前停止的閾值。如果一個節點的雜質高於閾值,則該節點將拆分,否則,它是一個葉子。

決策樹和隨機森林的理論、實現和超引數調整

5.2決策樹分類器超引數調優

超引數max_depth控制決策樹的總體複雜性。這個超引數允許在欠擬合和過擬合決策樹之間進行權衡。讓我們為分類和迴歸構建一棵淺樹,然後再構建一棵更深的樹,以瞭解引數的影響。

超引數min_samples_leaf、min_samples_split、max_leaf_nodes或min_implitity_reduce允許在葉級或節點級應用約束。超引數min_samples_leaf是葉子允許有最少樣本數,否則將不會搜尋進一步的拆分。這些超引數可以作為max_depth超引數的補充方案。

決策樹和隨機森林的理論、實現和超引數調整

5.3樹的視覺化

決策樹和隨機森林的理論、實現和超引數調整

決策樹和隨機森林的理論、實現和超引數調整

5.4隨機森林

隨機森林是一種元估計器,它將多個決策樹分類器對資料集的不同子樣本進行擬合,並使用均值來提高預測準確度和控制過擬合。

隨機森林演算法引數:

n_estimators: 樹的數量。

criterion: 衡量拆分質量的函式。支援的標準是gini和資訊增益的“熵”。

max_depth:樹的最大深度。如果為None,則展開節點,直到所有葉子都是純的,或者直到所有葉子包含的樣本少於min_samples_split。

min_samples_split:拆分內部節點所需的最小樣本數。

min_samples_leaf:葉節點所需的最小樣本數。min_samples_leaf只有在左右分支中的每個分支中至少留下訓練樣本時,才會考慮任何深度的分割點。這可能具有平滑模型的效果,尤其是在迴歸中。

min_weight_fraction_leaf:需要在葉節點處的總權重(所有輸入樣本的)的最小加權分數。當未提供 sample_weight 時,樣本具有相同的權重。

max_features:尋找最佳分割時要考慮的特徵數量。

max_leaf_nodesmax_leaf_nodes:以最佳優先方式種植一棵樹。最佳節點定義為雜質的相對減少。如果 None 則無限數量的葉節點。

min_impurity_decrease:如果該分裂導致雜質減少大於或等於該值,則該節點將被分裂。

min_impurity_split: 樹提前停止的閾值。如果一個節點的雜質高於閾值,則該節點將分裂,否則,它是一個葉子。

bootstrap:構建樹時是否使用bootstrap樣本。如果為 False,則使用整個資料集來構建每棵樹。

oob_score:是否使用out-of-bag樣本來估計泛化準確度。

決策樹和隨機森林的理論、實現和超引數調整

5.5隨機森林超引數調優

調優隨機森林的主要引數是n_estimators引數。一般來說,森林中的樹越多,泛化效能越好,但它會減慢擬合和預測的時間。

我們還可以調優控制森林中每棵樹深度的引數。有兩個引數非常重要:max_depth和max_leaf_nodes。實際上,max_depth將強制具有更對稱的樹,而max_leaf_nodes會限制最大葉節點數量。

決策樹和隨機森林的理論、實現和超引數調整

最後

本文主要講解了以下內容:

決策樹和隨機森林演算法以及每種演算法的引數。

如何調整決策樹和隨機森林的超引數。

在訓練之前需要平衡你的資料集。

從每個類中抽取相同數量的樣本。

透過將每個類的樣本權重(sample_weight)的和歸一化為相同的值。

Top