我在理解如何解释随机森林包的变量重要性输出时遇到了一些困难。准确度的平均下降通常被描述为“置换每个特征中的值导致模型准确度的下降”。
这是关于整个特性的陈述还是关于特性中的特定值的陈述?在任何一种情况下,准确性的平均下降是通过从模型中删除相关特征(或特征中的值)而被错误分类的观察值的数量或比例?
假设我们有以下模型:
require(randomForest)
data(iris)
set.seed(1)
dat <- iris
dat$Species <- factor(ifelse(dat$Species=='virginica','virginica','other'))
model.rf <- randomForest(Species~., dat, ntree=25,
importance=TRUE, nodesize=5)
model.rf
varImpPlot(model.rf)
Call:
randomForest(formula = Species ~ ., data = dat, ntree = 25,
proximity = TRUE, importance = TRUE, nodesize = 5)
Type of random forest: classification
Number of trees: 25
No. of variables tried at each split: 2
OOB estimate of error rate: 3.33%
Confusion matrix:
other virginica class.error
other 97 3 0.03
virginica 2 48 0.04
在这个模型中,OOB 率相当低(大约 5%)。然而,在该度量中具有最高值的预测变量 (Petal.Length) 的平均精度下降仅为 8 左右。
这是否意味着从模型中删除 Petal.Length 只会导致平均对 8 个左右的观测值进行额外的错误分类?
考虑到 Petal.Length 的平均下降精度是该度量中的最高值,因此其他变量在该度量中的值甚至更低,怎么会如此之低?