如何在 R 中为数值和分类变量创建朴素贝叶斯
How to create Naive Bayes in R for numerical and categorical variables
我正在尝试根据已知信息在 R 中实现朴素贝叶斯模型:
Age group, e.g. "18-24" and "25-34", etc.
Gender, "male" and "female"
Region, "London" and "Wales", etc.
Income, "£10,000 - £15,000", etc.
Job, "Full Time" and "Part Time", etc.
我在实施时遇到错误。我的代码如下:
library(readxl)
iphone <- read_excel("~/Documents/iPhone_1k.xlsx")
View(iphone)
summary(iphone)
iphone
library(caTools)
library(e1071)
set.seed(101)
sample = sample.split(iphone$Gender, SplitRatio = .7)
train = subset(iphone, sample == TRUE)
test = subset(iphone, sample == FALSE)
nB_model <- naiveBayes(Gender ~ Region + Retailer, data = train)
pred <- predict(nB_model, test, type="raw")
在上面的场景中,我有一个名为 iPhone_1k 的 excel 文件(1,000 个条目与访问网站购买 iPhone 的人有关)。每行是一个访问该网站的人,以上人口统计数据是已知的。
我一直在努力使模型正常工作,并采用了以下仅使用两个变量的 link(我想至少使用 4 个,但如果可能的话引入更多):
https://rpubs.com/dvorakt/144238
我希望能够使用这些人口统计数据来预测他们将去哪个零售商(也知道 iPhone_1k 文件中的每个实例)。只有3个选项。你能告诉我如何完成这个吗?
P.S。下面是我用来在 R 中保持简单的数据的简化版本的屏幕截图。一旦我得到一些代码工作,我将扩展变量和条目的数量。
你设置的问题不对。应该是:
naiveBayes(Retailer ~ Gender + Region + AgeGroup, data = train)
或者简而言之
naiveBayes(Retailer ~ ., data = train)
另外,如果列是字符,您可能需要将它们转换为因子。您可以在阅读 excel 后立即对所有列执行此操作,方法是
iphone[] <- lapply(iphone, factor)
请注意,如果您以后添加数值变量,则不应对其应用此步骤。
我正在尝试根据已知信息在 R 中实现朴素贝叶斯模型:
Age group, e.g. "18-24" and "25-34", etc.
Gender, "male" and "female"
Region, "London" and "Wales", etc.
Income, "£10,000 - £15,000", etc.
Job, "Full Time" and "Part Time", etc.
我在实施时遇到错误。我的代码如下:
library(readxl)
iphone <- read_excel("~/Documents/iPhone_1k.xlsx")
View(iphone)
summary(iphone)
iphone
library(caTools)
library(e1071)
set.seed(101)
sample = sample.split(iphone$Gender, SplitRatio = .7)
train = subset(iphone, sample == TRUE)
test = subset(iphone, sample == FALSE)
nB_model <- naiveBayes(Gender ~ Region + Retailer, data = train)
pred <- predict(nB_model, test, type="raw")
在上面的场景中,我有一个名为 iPhone_1k 的 excel 文件(1,000 个条目与访问网站购买 iPhone 的人有关)。每行是一个访问该网站的人,以上人口统计数据是已知的。
我一直在努力使模型正常工作,并采用了以下仅使用两个变量的 link(我想至少使用 4 个,但如果可能的话引入更多):
https://rpubs.com/dvorakt/144238
我希望能够使用这些人口统计数据来预测他们将去哪个零售商(也知道 iPhone_1k 文件中的每个实例)。只有3个选项。你能告诉我如何完成这个吗?
P.S。下面是我用来在 R 中保持简单的数据的简化版本的屏幕截图。一旦我得到一些代码工作,我将扩展变量和条目的数量。
你设置的问题不对。应该是:
naiveBayes(Retailer ~ Gender + Region + AgeGroup, data = train)
或者简而言之
naiveBayes(Retailer ~ ., data = train)
另外,如果列是字符,您可能需要将它们转换为因子。您可以在阅读 excel 后立即对所有列执行此操作,方法是
iphone[] <- lapply(iphone, factor)
请注意,如果您以后添加数值变量,则不应对其应用此步骤。