首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中naive_bayes预测数据的影响因素

R中naive_bayes预测数据的影响因素
EN

Stack Overflow用户
提问于 2020-06-09 20:22:01
回答 1查看 79关注 0票数 1

我试图了解如何创建一个因素数据,以预测使用naive_bayes的结果。我看到的所有示例都采用了一个数据have,并将其划分为两个dfs(培训和测试)。这对我确实有用:

代码语言:javascript
复制
library(naivebayes)

#Basic naive-bayes model with prediction/test dataframe a subset of the original 

age_class<-c('x3','x2','x2','x1','x3','x1')
student<-c('n','y','n','y','y','y')
inc<-c('m','h','m','m','m','l')
sav<-c('e','f','e','e','f','f')
buy<-c('N','Y','Y','Y','Y','Y')

df<-data.frame(age_class,student,inc,sav,buy)

nbmod<-naive_bayes(buy~ age_class + student +inc + sav, data=df[2:6,])

predictdf<-df[1,1:4]

predict(nbmod,newdata=predictdf)

是否必须通过每次指定所有级别来创建用于预测的数据?是否有一种方法可以利用原始数据格式(df)中有关因子水平的信息?

代码语言:javascript
复制
age_class<-factor('x3', levels=c('x1','x2','x3'))
student<-factor('n', levels=c('n','y'))
inc<-factor('m', levels=c('h','l','m'))
sav<-factor('e',levels=c('e','f'))

predictdf3<-data.frame(age_class,student,inc,sav)

predict(nbmod,newdata=predictdf3)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-09 22:09:26

对于这种特殊情况,您可能可以通过levels()引用原始级别。

代码语言:javascript
复制
predictdf3 <- data.frame(
    age_class = factor("x3", levels = levels(df$age_class)),
    student = factor("n", levels = levels(df$student)),
    inc = factor("m", levels = levels(df$inc)),
    sav = factor("e", levels = levels(df$sav))
)

注意,因素的编码应该在火车和测试数据中匹配。一定要前后一致。因此,您必须合并(然后拆分)您的培训数据集和测试数据集,或者将因素级别从您的火车数据集复制到测试数据集。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62291220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档