使用朴素贝叶来预测新值

Fri*_*ten 2 r naivebayes

我有一个看起来像这样的数据框

weather <- c("good", "good", "good", "bad", "bad", "good")
temp <- c("high", "low", "low", "high", "low", "low")
golf <- c("yes", "no", "yes", "no", "yes" , "no")
df <- data.frame(weather, temp, golf)
Run Code Online (Sandbox Code Playgroud)

我现在想做的是使用朴素贝叶斯方法来获得这个新数据集的概率

df_new <- data.frame(weather = "good", temp = "low")
Run Code Online (Sandbox Code Playgroud)

所以我试试

library(e1071)
model <- naiveBayes(golf ~.,data=df)
predict(model, df_new)
Run Code Online (Sandbox Code Playgroud)

但这给了我:

NO
Run Code Online (Sandbox Code Playgroud)

知道我怎么能把它变成概率?

phi*_*ver 5

如果您使用,则返回概率 type = "raw"

predict(model, df_new, type = "raw")
no yes
[1,] 0.5 0.5

predict(model, df_new, type = "class")
[1] no
Levels: no yes
Run Code Online (Sandbox Code Playgroud)