多类别中的变量重要性

我有一个类似于鸢尾花的数据集,我的y是一个多类别因子变量。是否有办法查看method = rfmethod = treebagmethod = boost的结果?非常感谢您的帮助。

  data(iris); head(iris)iris$Species <- factor(iris$Species)set.seed(87)inTrainingSet <- createDataPartition(iris$Species, p=.80,list=0)train <- iris[inTrainingSet,]test  <- iris[-inTrainingSet,]ctrl <- trainControl(method = "cv", number = 2,  verboseIter = TRUE)pls <- train(Species ~ Sepal.Length+Sepal.Width+Petal.Length+Petal.Width ,               method = "pls", data = iris,              trControl = ctrl)attributes(varImp(pls))varImp(pls)$importance

回答:

你的问题涉及几个要点,如果每个模型都有内置方法来正确估计这些变量的重要性,你可以使用默认的useModel = FALSE来运行varImp。

对于随机森林,在拟合时添加importance=TRUE

rf <- train(Species ~ Sepal.Length+Sepal.Width+Petal.Length+Petal.Width ,               method = "rf", data = iris,              trControl = ctrl,importance=TRUE)varImp(rf)rf variable importance  variables are sorted by maximum importance across the classes             setosa versicolor virginicaPetal.Length  66.94     100.00     85.40Petal.Width   63.86      92.22     89.87Sepal.Length  16.75      24.05     24.90Sepal.Width   12.75       0.00     17.49

如果模型没有针对多类别的内置方法,则使用成对的ROC曲线来推导这些重要性,详见caret页面上的具体说明:

tb <- train(Species ~ Sepal.Length+Sepal.Width+Petal.Length+Petal.Width ,                   method = "treebag", data = iris,                  trControl = ctrl,importance=TRUE)varImp(tb,useModel=TRUE)treebag variable importance             OverallPetal.Length  100.00Petal.Width    99.17Sepal.Length   32.23Sepal.Width     0.00 varImp(tb,useModel=FALSE)ROC curve variable importance  variables are sorted by maximum importance across the classes             setosa versicolor virginicaPetal.Width  100.00     100.00     100.0Petal.Length 100.00     100.00     100.0Sepal.Length  90.70      59.30      90.7Sepal.Width   54.59      54.59       0.0

你没有指定使用哪种提升树方法,但我猜你可以轻松地使用上述选项之一

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中创建了一个多类分类项目。该项目可以对…

发表回复

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