首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R数值变量的NaiveBayes问题

R数值变量的NaiveBayes问题
EN

Stack Overflow用户
提问于 2017-04-10 12:17:39
回答 1查看 469关注 0票数 1

尽管NaiveBayes()帮助说明可以在第一个参数'x‘中传递数字,但我无法成功运行它。没有数值变量(转售),它工作得很好。下面是脚本:

代码语言:javascript
复制
    library(readr)
    library(klaR)
    ### load dataset
    Dataset <- read_csv("D:/sampledata.csv")
    ### converting 'model' and 'type' to factor
    Dataset$model <- factor(Dataset$model)
    Dataset$type <- factor(Dataset$type)
    ### Executing NaiveBayes with numeric 'resale'
    NaiveBayesModel1 <- NaiveBayes(model~type+mylogical+resale,data=Dataset,na.action =na.omit)
    ### now removing resale. Following works as expected.
    NaiveBayesModel1 <- NaiveBayes(model~type+mylogical,data=Dataset,na.action =na.omit)

‘'model’和'type‘是因子,'mylogical’是逻辑变量,'resale‘是数值变量。因为我不能附加我的数据文件,所以我在这里粘贴了几行。复制这些行,并在驱动器上另存为sampledata.csv文件。修改上述脚本中的read_csv()以指向此csv文件。

代码语言:javascript
复制
"model","sales","resale","type","mylogical"
"Integra",16.919,16.36,"Automobile",TRUE
"TL",39.384,19.875,"Automobile",FALSE
"Camry",247.994,13.245,"Automobile",FALSE
"Avalon",63.849,18.14,"Automobile",TRUE
"Celica",33.269,15.445,"Automobile",TRUE
"Tacoma",84.087,9.575,"Truck",TRUE
"RAV4",25.106,13.325,"Truck",FALSE
"4Runner",68.411,19.425,"Truck",FALSE
"Land Cruiser",9.835,34.08,"Truck",TRUE
"Golf",9.761,11.425,"Automobile",FALSE
"Jetta",83.721,13.24,"Automobile",FALSE
"Passat",51.102,16.725,"Automobile",TRUE
"Cabrio",9.569,16.575,"Automobile",FALSE
"GTI",5.596,13.76,"Automobile",FALSE

如果我用"resale“运行NaiveBayes,我会得到以下错误。

代码语言:javascript
复制
Error in if (any(temp)) stop("Zero variances for at least one class in variables: ",  : 
  missing value where TRUE/FALSE needed

R help ( help(NaiveBayes) )告诉我可以使用数字。我不明白哪里出了问题。请帮帮忙。

致敬,SG

EN

回答 1

Stack Overflow用户

发布于 2017-04-10 12:41:39

该错误是由model中每个结果的变量resale值的零方差引起的。最有可能的情况是,您的训练集包含model中每个不同值的单个训练记录。

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

https://stackoverflow.com/questions/43314904

复制
相关文章

相似问题

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