簡體   English   中英

如何使用 R 插入符號 package 計算每個 class 的變量重要性?

[英]How to calculate variable importance of each class with R caret package?

當我 output 變量重要性在 model (rf)時,我使用了下面的代碼( rfmodel_all是我的模型)。

importance(rfmodel_all[11][[1]])
varImp(rfmodel_all)

雖然我得到了下面的結果,但每個 class 中變量重要性的兩個值都是不同的。 每個 class 的值是什么意思?

importance(rfmodel_all[11][[1]])

                        F1         F2         F3        F4       F5
 dem5m_field2   10.2504042  6.9464506  3.1169946 13.394995 17.52028

 ah             -2.5141337 -3.9860137  3.1314217 11.585716 13.33464

varImp(rfmodel_all)

rf 變量重要性,

變量按類中的最大重要性排序

                    F1     F2     F3    F4     F5
 vd             72.436 98.173 54.284 91.48 100.00

 twi            10.412  8.235 22.369 92.55  82.67

如果你知道的話,請告訴我一些關於這種解釋的參考資料。

謝謝你。

varImp() function 基本上使用 randomForest() 中的importance() randomForest()並將它們從 0-100 縮放,並重新排列它們,就像你已經注意到的那樣。 要獲得相同的結果,您可以執行varImp(..,scale=FALSE) ,例如:

set.seed(111)
mdl = train(Species ~ .,data=iris,
trControl=trainControl(method="cv"),importance=TRUE)

importance(mdl$finalModel)[,1:3]
               setosa versicolor virginica
Sepal.Length  5.69594   6.452202  6.661104
Sepal.Width   4.46492   1.171534  4.245839
Petal.Length 22.52265  32.843039 27.864307
Petal.Width  22.11490  33.060450 31.897033

varImp(mdl,scale=FALSE)
rf variable importance

  variables are sorted by maximum importance across the classes
             setosa versicolor virginica
Petal.Width  22.115     33.060    31.897
Petal.Length 22.523     32.843    27.864
Sepal.Length  5.696      6.452     6.661
Sepal.Width   4.465      1.172     4.246

重要性分數基本上是通過排列和重新計算OOB樣本中准確性的變化來獲得的。 請參閱隨機森林頁面 這是對變量在正確預測每個 class 中的有用性的粗略衡量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM