R:朴素贝叶斯仅根据先验概率做出预测

时间:2017-10-25 16:31:28

标签: r tm naivebayes

我正在尝试在R中训练Naive Bayes分类器,根据它们与多个单词包的相似性对文本字符串进行分类。

以下是一些复制我的问题的简化代码:

library(tm)
library(e1071)


df <- data.frame(class = c(1,1,1,2,2,2,3,3,3,3,3,3,3,3),
                 text = c("sirloin steak",
                          "aaa steak",
                          "new york strip steak",
                          "sour patch kids",
                          "cherry blasters",
                          "popsicles",
                          "donuts",
                          "cakes",
                          "bread",
                          "sourdough",
                          "rye",
                          "rolled oats",
                          "loaf",
                          "bagels"),
                  stringsAsFactors = FALSE)

corpus <- Corpus(DataframeSource(df))
dtm <- DocumentTermMatrix(corpus)
dtm_matrix <- as.matrix(dtm)
labels <- as.factor(df$class)

clf <- naiveBayes(dtm_matrix, labels)

predict(clf, "steak")

返回的输出如下所示:

[1] 3
Levels: 1 2 3

当牛排明显属于头等舱时。

我无法弄清楚我哪里出错了。每当我看到传递给朴素贝叶斯的其他文档术语矩阵的例子时,它都以同样的方式完成。

我可能会出错的任何想法?

0 个答案:

没有答案