2016-02-15 2 views
0

Я использую пакет rpart для разработки своего дерева и прогнозирования модели. Наконец, чтобы построить кривую ROC, я пытаюсь использовать пакет rocr. Извинения за то, что он не воспроизводил его со встроенным набором данных, не смог. Пожалуйста, найдите ссылку на файл CSV я есть использовать:Кривая ROC для деревьев решений с использованием пакета rocr

Wine Quality.csv

Теперь смотрите мой код:

#setting up data 
data<- read.csv(file.choose()) 
quality_binary <- ifelse(wine_quality >5,"high","low") 
data <- data.frame(data,quality_binary) 

#re shuffling the data 
set.seed(9850) 
g <- runif(nrow(data)) 
datar<- data[order(g),] 
#removing the wine quality column since it has to be predicted 
datar <- datar[-12] 

library(rpart) 
library(rpart.plot) 
library(cvTools) 
library(caret) 
library(tree) 

k <- 10 # setting the value for 10 fold validation 

folds <- cvFolds(NROW(datar), K=k) 
datar$holdoutpred <- rep(0,nrow(datar)) 

for(i in 1:k){ 

train <- datar[folds$subsets[folds$which != i], ] #training set 
validation <- datar[folds$subsets[folds$which == i], ] #validation set 

#tree model 
tree_model_rpart_gini = rpart(quality_binary~.,data = train, 
     parms = list(split = "information"), method = "class") 
rpart.plot(tree_model_rpart_gini,type = 3,extra = 101) 

#prediction 
pred_model_rpart_gini <- predict(tree_model_rpart_gini, 
newdata=validation, type="class") 

datar[folds$subsets[folds$which == i], ]$holdoutpred <- 
pred_model_rpart_gini 

} 

#plotting ROC curve 

library(ROCR) 
pred1 <- prediction(predict(datar$pred_model_rpart_gini), 
datar$quality_binary) 
perf1 <- performance(pred1,"tpr","fpr") 
plot(perf1) 

И моя ошибка:

pred1 <- prediction(predict(datar$pred_model_rpart_gini), 
datar$quality_binary) 
Error in UseMethod("predict") : 
no applicable method for 'predict' applied to an object of class "NULL" 
+3

Это не воспроизводимо. Попробуйте создать дерево, используя некоторые встроенные данные, такие как 'mtcars', и разместите здесь свой код. –

+0

Как отправить код в комментарий – vikky

+1

Вместо этого измените свой вопрос. –

ответ

0

datar$pred_model_rpart_gini является NULL т.е. не определен ,

Возможно, предполагается использовать pred_model_rpart_gini (no datar$)?

+0

Извините, не достать. Не могли бы вы объяснить. – vikky

+0

У вас есть ошибка копирования и вставки, которую нужно исправить. Если вы переименовываете вещи в одном месте, вы должны переименовывать их повсюду. –

Смежные вопросы