作者wheado (principal component QQ)
看板R_Language
標題[問題] RandomForest的VarImportance
時間Thu Feb 8 18:28:13 2018
[問題類型]:
Variable Importance
[軟體熟悉度]:
入門(寫過其他程式,只是對語法不熟悉)
[問題敘述]:
RandomForest的fit出來的model有一個importance
裡面的MeanDecreasingGini是用來判斷變數的重要性的指標
這個指標是一個平均值的結果
我想問的是
對於第i棵樹
要怎麼算出DecreasingGini值
在網路上參考了一篇文章 連結如下
https://goo.gl/6WSuoi
但這篇主要說明是Mean Decrease in Accuracy
不過概念上是很像
第一個step說: 隨機挑一些data與variable => 產生一棵樹
第二個step說: 將樹的模型用來預測沒有被挑到的data => 產生一個OOB-accuracy
第三個我就看不懂了
甚麼是permute variable i
有使用RandomForest的使用者能夠指導一下嗎?
不想似懂非懂認為這是重要指標
但不曉得如何而來
謝謝大家
[環境敘述]:
R version 3.4.3 (2017-11-30)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
[關鍵字]:
Measures of variable importance in random forests
謝謝大家指導
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 203.71.94.20
※ 文章網址: https://webptt.com/m.aspx?n=bbs/R_Language/M.1518085696.A.B42.html
1F:推 x88776544pc: 它的概念簡單來說就是對每個變數一一加入雜訊 02/08 22:22
2F:→ x88776544pc: 如果某變數很重要,那加入雜訊後的錯誤率就會大幅 UP 02/08 22:24
3F:→ x88776544pc: 第三步:將OOB樣本中的第 i 個變數加入雜訊以取得 02/08 22:27
4F:→ x88776544pc: 該變數雜訊化後的預測結果去計算OOB error rate i 02/08 22:28
5F:→ x88776544pc: 常見的方式有將該變數 bootstrap, sample 或遞移 02/08 22:30
6F:→ wheado: 不懂加入雜訊是什麼意思 02/09 00:02
7F:→ wheado: 我的感覺是不看i變數接著計算正確率下降多少 02/09 00:02
8F:→ wheado: 然後每個被sample到的變數都不看一次 02/09 00:02
9F:→ wheado: 就可以得到該棵樹所有的decreasing accuracy 02/09 00:02
10F:→ x88776544pc: 說成不看也可以,但在預測時你總是要給這個"不看" 02/09 00:16
11F:→ x88776544pc: 的變數一個值,通常就是透過上述方法把它變成一個沒 02/09 00:17
12F:→ x88776544pc: 有價值的變數,也就是 noise variable 02/09 00:18
13F:→ x88776544pc: 而 MDI 只是將每個變數在所有樹中有使用到它的節點 02/09 00:21
14F:→ x88776544pc: 造成的 gini 值下降量加起來,再以所有樹的數目平均 02/09 00:24
15F:推 a78998042a: 在不同tree套件中,相同指標的算法也不一定一樣 02/20 12:34
16F:→ a78998042a: ,可能會對於可能發生的結點,或現在模行發生的 02/20 12:35
17F:→ a78998042a: 結點,產生不一樣的加權。 02/20 12:35
18F:→ a78998042a: 印象中他的算法是,對單一顆樹,在拿掉一個變數 02/20 12:35
19F:→ a78998042a: 之後,模型的評估值(這裡是gini)效果是否下降 02/20 12:35
20F:→ a78998042a: (decrease),下降越多,表示該變數是雜訊變數的 02/20 12:35
21F:→ a78998042a: 可能性越高,重要性越低,而如果一變數在加入之 02/20 12:36
22F:→ a78998042a: 後,模型的正確率反而出現混淆、干擾,評估值會趨近0 02/20 12:36
23F:→ a78998042a: 然後Mean就是把所有樹的平均,所以是Mean 02/20 12:36
24F:→ a78998042a: decrease gini,如果是MDA(accuracy),數值也 02/20 12:36
25F:→ a78998042a: 可能小於0。 02/20 12:37
26F:→ a78998042a: 希望以上回答有協助到您,對回答有疑義可以來信給我。 02/20 12:46
27F:→ x88776544pc: 樓上你講的permutation-based的算法只適用於 MDA 吧? 02/21 23:33
28F:→ x88776544pc: 你講 gini 的概念是對的但不能那樣算 MDgini 02/21 23:38
29F:推 x88776544pc: 如果覺得我有理解錯誤的地方麻煩指正一下 02/21 23:45