隨機森林計算特徵重要性推導

2021-10-19 12:19:40 字數 945 閱讀 2323

呼叫了sklearn函式包中randomforestregressor.feature_importances_函式計算特徵重要性。隨機森林(randomforest)是由一棵棵決策樹(decision tree)組成,因此為了求得每個特徵的重要性,首先需要知道每個特徵在每一棵決策樹上所做的貢獻量,這種貢獻量的計算方法是求解在該特徵在某個節點上,分枝前後的基尼指數(gini)差值,用同樣的的方法求得其他特徵的貢獻值,最後將某個特徵基尼指數變化值除以所有特徵基尼指數變化值之,求得某個特徵歸一化後的貢獻量,並根據貢獻量大小進行排序。具體計算方法如下:

計算方法:

設:k表示有k個類別,而pk表示第k個類別的權重,則可得:

而,對於特徵j,其在節點m上基尼指數變化量可以通過計算該特徵在該節點分枝前的基尼指數與分枝後基尼指數的差,求得。設vimjm表示特徵j在節點m上的基尼指數變化值,gim表示分枝前的基尼指數,gil和gir則為節點m分枝後,產生的兩個新節點的基尼指數。可得:

設,特徵j在決策樹i**現在節點集合m中,則我們可以求得特徵j在第i棵決策樹上的基尼指數變化量:

若,在隨機森林中有n棵決策樹,則特徵j的總基尼指出變化量為:

則,第特徵j貢獻量歸一化以後的值記為特徵j的貢獻量,計算方法如下:

vim』j表示歸一化以後得到特徵j的貢獻量,

表示所有特徵的基尼指數差之和。

隨機森林,隨機森林中進行特徵重要性

用有抽樣放回的方法 bootstrap 從樣本集中選取n個樣本作為乙個訓練集 用抽樣得到的樣本集生成一棵決策樹。在生成的每乙個結點 隨機不重複地選擇d個特徵 利用這d個特徵分別對樣本集進行劃分,找到最佳的劃分特徵 可用基尼係數 增益率或者資訊增益判別 重複步驟1到步驟2共k次,k即為隨機森林中決策樹...

xgboost和隨機森林特徵重要性計算方法

隨機森林中特徵重要性和xgboost不同 隨機森林中的特徵重要性主要是基於不純度 也可以叫做gini importance 計算某乙個節點不純度為 其中,k omega k k le ft omega left ri ght omega right 分別為節點k以及其左右子節點中訓練樣本個數與總訓練...

利用隨機森林對特徵重要性進行評估

我們知道,隨機森林大致可以看成是從生成的多個決策樹種挑選最優的那一棵。所以在訓練的過程中就會按照不同特徵維度的先後劃分方式來建立決策樹。因此,最優那棵樹所對應的特徵劃分順序也就代表著特徵的重要程度。看例子 from sklearn.datasets import load wine from skl...