如何解读randomForestSRC::vimp生成的变量重要性图?

这个问题直接与这里提供的答案相关:MLR随机森林多标签获取特征重要性

总结来说,这个问题是关于为多标签分类问题生成变量重要性图。我正在复制另一个人提供的代码来生成vimp图:

library(mlr)yeast = getTaskData(yeast.task)labels = colnames(yeast)[1:14]yeast.task = makeMultilabelTask(id = "multi", data = yeast, target = labels)lrn.rfsrc = makeLearner("multilabel.randomForestSRC")mod2 = train(lrn.rfsrc, yeast.task)vi =randomForestSRC::vimp(mod2$learner.model)plot(vi,m.target ="label2")

我不确定randomForestSRC::vimp图中的TRUE、FALSE和All是什么意思。我查阅了包文档,仍然无法理解。

这些区别(TRUE、FALSE、All)是如何工作的?


回答:

在那个例子中,你有14个可能的标签。如果你查看数据:

head(yeast)  label1 label2 label3 label4 label5 label6 label7 label8 label9 label101  FALSE  FALSE   TRUE   TRUE  FALSE  FALSE  FALSE  FALSE  FALSE   FALSE2  FALSE  FALSE  FALSE  FALSE  FALSE  FALSE   TRUE   TRUE  FALSE   FALSE3  FALSE   TRUE   TRUE  FALSE  FALSE  FALSE  FALSE  FALSE  FALSE   FALSE4  FALSE  FALSE   TRUE   TRUE  FALSE  FALSE  FALSE  FALSE  FALSE   FALSE5   TRUE   TRUE  FALSE  FALSE  FALSE  FALSE  FALSE  FALSE  FALSE   FALSE6  FALSE  FALSE   TRUE   TRUE  FALSE  FALSE  FALSE  FALSE  FALSE   FALSE

对于每个标签,例如label2,有两个类别,TRUE/FALSE。所以在这个图中,All是所有样本预测错误的总体错误率或比例。TRUE/FALSE是针对TRUE/FALSE标签分别计算的。所以从这个图中,你可以看到TRUE的错误率更高,意味着模型在正确预测TRUE时有问题。

enter image description here

我们可以通过查看袋外预测标签来验证这一点:

oob_labels = c(TRUE,FALSE)[max.col(vi$classOutput$label2$predicted.oob)]table(yeast$label2, oob_labels)       oob_labels        FALSE TRUE  FALSE  1175  204  TRUE    614  424

你可以看到对于TRUE标签(第二行),错误率为614/(614+424) = 0.5915222。这大致是你在这个图中看到的,TRUE标签的错误率大约是0.6。

至于第二个变量重要性图,它是沿着同样的思路,变量重要性针对整体,或者TRUE/FALSE类别,你可以这样查看:

par(mfrow=c(1,3))for(i in colnames(mat)){barplot(mat[,i],horiz=TRUE,las=2)}

enter image description here

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注