- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在 R 中使用 ranger 和 randomForest 函数。我特别感兴趣的是获取我试图预测的每个类的特征(预测变量)的重要性,而不是所有类的总体重要性。我知道如何使用 randomForest 的 importance() 函数来做到这一点,它似乎是默认行为:
library(randomForest)
set.seed(100)
rfmodel <- randomForest(Species ~ ., data = iris, ntree = 1000, importance = TRUE)
importance(rfmodel)
这会产生一个矩阵,其中包含每个特征对于三个类别中每个类别的重要性
或者我正在运行的游侠:
library(ranger)
rangermodel<-ranger(Species ~ ., data = iris, num.trees = 1000, write.forest=TRUE, importance="permutation", local.importance=TRUE)
importance(rangermodel)
rangermodel$variable.importance
rangermodel$variable.importance.local
rangermodel$variable.importance 提供特征对整个分类问题的重要性,但不是按类别。虽然 rangermodel$variable.importance.local 提供了每个案例的重要性,但也不是按类别。
游侠文档似乎没有提供这方面的信息。关于这个主题,我能找到的唯一问题是这个:How can I separate the overall variable importance values when using Random forest?但他们没有就如何用 Ranger 实现这一点得出结论。如下更改护林员代码也没有提供我正在寻找的输出:
rangermodel<-ranger(Species ~ ., data = iris, num.trees = 1000, write.forest=TRUE, importance="impurity")
最佳答案
想法是使用局部变量importance,定义如下:
For each case, consider all the trees for which it is oob. Subtract the percentage of votes for the correct class in the variable-m-permuted oob data from the percentage of votes for the correct class in the untouched oob data. This is the local importance score for variable m for this case.Source: Breiman's and Cutler website, section: Variable Importance
从 ranger
中提取局部变量重要性:您需要指定两者 importance = "permutation"
和 local.importance = TRUE
library(ranger)
rf.iris <- ranger(Species ~ ., iris, importance = "permutation",
local.importance = TRUE)
rf.iris$variable.importance.local
那么你可以
library(data.table)
as.data.table(rf.iris$variable.importance.local)[,Species := iris$Species][,lapply(.SD,mean),by=Species]
Species Sepal.Length Sepal.Width Petal.Length Petal.Width
1: setosa 0.01316 0.00252 0.11192 0.12548
2: versicolor 0.00800 0.00120 0.10672 0.11112
3: virginica 0.01352 0.00316 0.10632 0.09956
引用:
关于r - 如何使用游侠按类获取特征重要性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61340327/
我生成了一个如下所示的随机森林树,并尝试绘制它但出现错误,我在哪里出错了?我怎样才能以正确的方式绘制它? Actmodel <- train(Activity ~ Section + Author,
我是一名优秀的程序员,十分优秀!