如何在R中使用naivebayes模型运行LOOCV并输出各类别概率
解决方案
你使用caret包的train()函数训练得到的模型对象,底层已封装了完整的朴素贝叶斯模型,按你所需的输出场景对应实现即可:
场景1:查看模型自带的类别先验概率、各特征对应类别的条件概率(和直接调用naiveBayes()后打印模型的效果完全一致)
直接访问训练返回对象的finalModel字段即可,代码示例:
data(iris) x = iris[,-5] y = iris$Species train_control <- trainControl(method="LOOCV") model <- train(x,y, trControl=train_control, method="nb") # 打印底层原始朴素贝叶斯模型,输出你需要的归属概率信息 print(model$finalModel)
场景2:得到指定样本(训练集/新测试集)对应每个类别的预测归属概率
调用predict()时指定type = "prob"参数即可:
# 示例:输出训练集所有样本的各类别归属概率 train_sample_prob <- predict(model, newdata = x, type = "prob") # 查看前6行结果 head(train_sample_prob)
内容的提问来源于stack exchange,提问作者DD3
相关产品推荐
相关产品推荐

