Как использовать графики зависимости ggRandomForests для модели каретки в R? - PullRequest
0 голосов
/ 04 февраля 2020

Я хочу создать фасет графиков частичной зависимости для моей модели, используя функцию gg_variable из пакета ggRandomForests. У меня есть следующее, но это не работает.

Как я могу это сделать?

library("caret")
library("ggRandomForests")
library("randomForest") 
data("iris")
iris$Species<-NULL
control = trainControl(method="cv", number=5,savePredictions = TRUE)  
in_train= createDataPartition(iris$Sepal.Length, p=.66, list=FALSE) 
train_st=iris[in_train,]
test_st=iris[-in_train,] 
trf_sep = train(Sepal.Length ~ .,
          data=train_st,ntree=800,method="rf",metric="Rsquared",trControl=control,importance = TRUE)
gg_variable(trf_sep)#Here is the problem

1 Ответ

2 голосов
/ 04 февраля 2020

gg_variable требует вывода из модели randomForest. Он не работает с выходом функции caret::train. В такой ситуации вы можете использовать функцию train из пакета caret для настройки mtry и дополнить модель случайного леса пакетом randomForest с настроенным mtry, а затем применить gg_variable к этому как

library("caret")
library("ggRandomForests")
library("randomForest") 
data("iris")
iris$Species<-NULL
control = trainControl(method="cv", number=5,savePredictions = TRUE)  
in_train= createDataPartition(iris$Sepal.Length, p=.66, list=FALSE) 
train_st=iris[in_train,]
test_st=iris[-in_train,] 
trf_sep = train(Sepal.Length ~ .,
                data=train_st,ntree=800,method="rf",metric="Rsquared",trControl=control,importance = TRUE)
try <- randomForest(Sepal.Length ~ .,
             data=train_st,ntree=800, mtry=3)

 gg_dta <- gg_variable(try)

plot(gg_dta, xvar=c("Sepal.Width","Petal.Length","Petal.Width"), 
     panel=TRUE) 

enter image description here

...