2013-12-07 2 views
3

Какую команду я должен использовать в R для выполнения матрицы путаницы после использования команд rpart() и predict() для генерации модели прогнозирования?R - какая команда генерировать матрицу путаницы, используя в качестве входных результатов из rpart() и pred()?

# Grow tree 
library(rpart) 
fit <- rpart(activity ~ ., method="class", data=train.data) 

printcp(fit) # display the results 
plotcp(fit) # visualize cross-validation results 
summary(fit) # detailed summary of splits 

# Prune the tree (in my case is exactly the same as the initial model) 
pfit <- prune(fit, cp=0.10) # from cptable 
pfit <- prune(fit,cp=fit$cptable[which.min(fit$cptable[,"xerror"]),"CP"]) 

# Predict using the test dataset 
pred1 <- predict(fit, test.data, type="class") 

# Show re-substitution error 
table(train.data$activity, predict(fit, type="class")) 

# Accuracy rate 
sum(test.data$activity==pred1)/length(pred1) 

Я хотел бы резюмировать в ясной форме Истинные Положительные, Ложноотрицательные, ложные срабатывания и Истинные негативы. Было бы замечательно также иметь в той же матрице чувствительность, специфичность, положительную интеллектуальную ценность и отрицательную предсказательную ценность.

Relationships among terms Источник: http://en.wikipedia.org/wiki/Sensitivity_and_specificity

+0

Возможно, вы можете получить прогнозы от обеих моделей в новых переменных и сделать таблицу (DF $ rpart, DF $ pred), где DF - это кадр данных в анализе. – Duck

ответ

1

Используйте метод predict(), с прилегания и исходного кадра данных, например, так:

pred = predict(train.fit, newdata, type = "vector") 
newdata$pred = as.vector(pred) 
newdata$prediction = activities[newdata$pred] 

tab = table (newdata$prediction, newdata$activity) 
print(tab) 

В приведенном выше примере, модель rpart предсказывает активность (а факторная переменная). pred является числовым, со значениями, соответствующими уровням фактора. activities = sort(unique(data$activity)) соответствует сопоставлению факторов по умолчанию.

+0

Обычно я хотел бы добавить в систему с confmat <- таблица (NewData $ классы, predicted_classes) Точность = (confmat [1] + confmat [5] + confmat [9])/сумма (confmat) confmat Sprintf («Точность равна% f», точность) – Max