【发布时间】:2018-02-21 13:54:54
【问题描述】:
我有一个包含 4669 个观测值和 15 个变量的数据集。
我正在使用随机森林来预测特定产品是否会被接受。
使用我的最新数据,我的输出变量为“是”、“否”和“”。
我想预测一下这个“”是是还是否。
我正在使用以下代码。
library(randomForest)
outputvar <- c("Yes", "NO", "Yes", "NO", "" , "" )
inputvar1 <- c("M", "M", "F", "F", "M", "F")
inputvar2 <- c("34", "35", "45", "60", "34", "23")
data <- data.frame(cbind(outputvar, inputvar1, inputvar2))
data$outputvar <- factor(data$outputvar, exclude = "")
ind0 <- sample(2, nrow(data), replace = TRUE, prob = c(0.7,0.3))
train0 <- data[ind0==1, ]
test0 <- data[ind0==2, ]
fit1 <- randomForest(outputvar~., data=train0, na.action = na.exclude)
print(fit1)
plot(fit1)
p1 <- predict(fit1, train0)
fit1$confusion
p2 <- predict(fit1, test0)
t <- table(prediction = p2, actual = test0$outputvar)
t
以上代码运行完美。我提到的数据框只是一个示例数据框。因为,我不应该产生原始数据。
您可能会注意到,我将训练数据和测试数据分成了 70% 和 30%。 根据我的观察,我可以找到 1377 次观察的测试数据和 3293 次观察的训练数据。
当我为测试数据集计算我的混淆矩阵时,我发现它只计算了 1363 个观察值,剩下 14 个观察值。
另外,我用测试数据集可视化了预测矩阵的表格。 所有这些 NA 都替换为 Yes 或 NO。
我的疑问是,为什么我的混淆矩阵在观察上有差异?
我的预测矩阵中的那些 NA 是否被替换为 Yes 和 No 是真实的预测?
我是 R 新手,任何信息都会有所帮助
【问题讨论】:
标签: r machine-learning random-forest confusion-matrix