<li id="omoqo"></li>
  • <noscript id="omoqo"><kbd id="omoqo"></kbd></noscript>
  • <td id="omoqo"></td>
  • <option id="omoqo"><noscript id="omoqo"></noscript></option>
  • <noscript id="omoqo"><source id="omoqo"></source></noscript>
  • 發布時間:2022-11-24 11:33 原文鏈接: 特征篩選(隨機森林)

    隨機森林能夠度量每個特征的重要性,我們可以依據這個重要性指標進而選擇最重要的特征。sklearn中已經實現了用隨機森林評估特征重要性,在訓練好隨機森林模型后,直接調用feature_importan ces 屬性就能得到每個特征的重要性。

    一般情況下,數據集的特征成百上千,因此有必要從中選取對結果影響較大的特征來進行進一步建模,相關的方法有:主成分分析、lasso等,這里我們介紹的是通過隨機森林來進行篩選。

    用隨機森林進行特征重要性評估的思想比較簡單,主要是看每個特征在隨機森林中的每棵樹上做了多大的貢獻,然后取平均值,最后比較不同特征之間的貢獻大小。

    貢獻度的衡量指標包括:基尼指數(gini)、袋外數據(OOB)錯誤率作為評價指標來衡量。

    衍生知識點:權重隨機森林的應用(用于增加小樣本的識別概率,從而提高總體的分類準確率)

    隨機森林/CART樹在使用時一般通過gini值作為切分節點的標準,而在加權隨機森林(WRF)中,權重的本質是賦給小類較大的權重,給大類較小的權重。也就是給小類更大的懲罰。權重的作用有2個,第1點是用于切分點選擇中加權計算gini值,表達式如下:

    其中,N表示未分離的節點,N L 和N R 分別表示分離后的左側節點和右側節點,W i 為c類樣本的類權重,n i 表示節點內各類樣本的數量,Δi是不純度減少量,該值越大表明分離點的分離效果越好。

    第2點是在終節點,類權重用來決定其類標簽,表達式如下:

    參考文獻:隨機森林針對小樣本數據類權重設置 https://wenku.baidu.com/view/07ba98cca0c7aa00b52acfc789eb172ded639998.html

    這里介紹通過gini值來進行評價,我們將變量的重要性評分用VIM來表示,gini值用GI表示,假設有m個特征X 1 ,X 2 ,...X c ,現在要計算出每個特征X j 的gini指數評分VIM j ,即第j個特征在隨機森林所有決策樹中節點分裂不純度的平均改變量,gini指數的計算公式如下表示:

    其中,k表示有k個類別,p mk 表示節點m(將特征m逐個對節點計算gini值變化量)中類別k所占的比例。

    特征X j 在節點m的重要性,即節點m分枝前后的gini指數變化量為:

    其中GI l 和GI r 分別表示分枝后兩個新節點的gini指數。

    如果特征X j 在決策樹i中出現的節點在集合M中,那么X j 在第i棵樹的重要性為:

    假設隨機森林共有n棵樹,那么:

    最后把所有求得的重要性評分進行歸一化處理就得到重要性的評分:

    通過sklearn中的隨機森林返回特征的重要性:

    值得慶幸的是,sklearnsklearn已經幫我們封裝好了一切,我們只需要調用其中的函數即可。
    我們以UCI上葡萄酒的例子為例,首先導入數據集。

    然后,我們來大致看下這時一個怎么樣的數據集

    輸出為

    可見共有3個類別。然后再來看下數據的信息:

    輸出為

    可見除去class label之外共有13個特征,數據集的大小為178。
    按照常規做法,將數據集分為訓練集和測試集。

    好了,這樣一來隨機森林就訓練好了,其中已經把特征的重要性評估也做好了,我們拿出來看下。

    輸出的結果為

    對的就是這么方便。
    如果要篩選出重要性比較高的變量的話,這么做就可以

    輸出為

    瞧,這不,幫我們選好了3個重要性大于0.15的特征了嗎~

    [1] Raschka S. Python Machine Learning[M]. Packt Publishing, 2015.
    [2] 楊凱, 侯艷, 李康. 隨機森林變量重要性評分及其研究進展[J]. 2015.


    <li id="omoqo"></li>
  • <noscript id="omoqo"><kbd id="omoqo"></kbd></noscript>
  • <td id="omoqo"></td>
  • <option id="omoqo"><noscript id="omoqo"></noscript></option>
  • <noscript id="omoqo"><source id="omoqo"></source></noscript>
  • 1v3多肉多车高校生活的玩视频