如何为决策树模型创建混淆矩阵

时间:2016-09-21 15:08:23

标签: r confusion-matrix

我在创建混淆矩阵时遇到了一些困难,无法将模型预测与实际值进行比较。我的数据集有159个解释变量,我的目标叫做#34; classe"。

#Load Data
df <- read.csv("https://d396qusza40orc.cloudfront.net/predmachlearn/pml-training.csv", na.strings=c("NA","#DIV/0!",""))

#Split into training and validation
index <- createDataPartition(df$classe, times=1, p=0.5)[[1]]
training <- df[index, ]
validation <- df[-index, ]

#Model
decisionTreeModel <- rpart(classe ~ ., data=training, method="class", cp =0.5)

#Predict
pred1 <- predict(decisionTreeModel, validation)

#Check model performance
confusionMatrix(validation$classe, pred1)

以上代码生成以下错误消息:

Error in confusionMatrix.default(validation$classe, pred1) : 
  The data must contain some levels that overlap the reference.

我认为它可能与预测函数生成的pred1变量有关,它是一个有5列的矩阵,而验证$ classe是一个有5个级别的因子。关于如何解决这个问题的任何想法?

提前致谢

1 个答案:

答案 0 :(得分:3)

您的预测会为您提供每个班级的概率矩阵。如果您想要返回“获胜者”(预测类),请将此预测行替换为:

pred1 <- predict(decisionTreeModel, validation, type="class")