全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
47875 4
2017-10-26
原始数据
head(data)
    大类 数量 天后下单
1 葡提类    5        1
2 葡提类    9        1
3 葡提类    6        1
4 葡提类    8        1
5 葡提类    9        1
6     枣    3        1

自己编的密度函数
密度
<-function(mydata,x){
    myvar=var(mydata)
    fx<-(2*pi_set(10000)*myvar)^-0.5*exp(-(x-mean(mydata))^2/2*myvar)
  return(fx)}


naive.bayes.prediction<-function(condition.vec){


   probility_1_day<-


     sum((data[,1])==condition.vec[1]&data[,3]==1)/sum(data[,3]==1)*密度(data[,3],1)*密度(subset(data,天后下单==1)[,2],condition.vec[2])


   probility_2_day<-


     sum((data[,1])==condition.vec[1]&data[,3]==2)/sum(data[,3]==2)* 密度(data[,3],2) *密度(subset(data,天后下单==2)[,2],condition.vec[2])


   probility_3_day<-


     sum((data[,1])==condition.vec[1]&data[,3]==3)/sum(data[,3]==3)* 密度(data[,3],3) *密度(subset(data,天后下单==3)[,2],condition.vec[2])


   probility_4_day<-


     sum((data[,1])==condition.vec[1]&data[,3]==4)/sum(data[,3]==4)* 密度(data[,3],4)*密度(subset(data,天后下单==4)[,2],condition.vec[2])


   probility_5_day<-


     sum((data[,1])==condition.vec[1]&data[,3]==5)/sum(data[,3]==5)* 密度(data[,3],5) *密度(subset(data,天后下单==5)[,2],condition.vec[2])


   probility_6_day<-


     sum((data[,1])==condition.vec[1]&data[,3]==6)/sum(data[,3]==6)* 密度(data[,3],6) *密度(subset(data,天后下单==6)[,2],condition.vec[2])


   probility_7_day<-


     sum((data[,1])==condition.vec[1]&data[,3]==7)/sum(data[,3]==7)* 密度(data[,3],7) *密度(subset(data,天后下单==7)[,2],condition.vec[2])


天数<-c('probility_1_day','probility_2_day','probility_2_day'


)


day<-c('probility_1_day','probility_2_day','probility_3_day','probility_4_day','probility_5_day','probility_6_day','probility_7_day')


dentisty<-c(probility_1_day,probility_2_day,probility_3_day,probility_4_day,probility_5_day,probility_6_day,probility_7_day)


jieguo<-data.frame(day,dentisty)


return(jieguo)}

跑一下
> naive.bayes.prediction(c("葡提类",4))
Error in x - mean(mydata) : 二进列运算符中有非数值参数

老是出现错误
sum((data[,1])=="葡提类"&data[,3]==4)/sum(data[,3]==4)*密度(subset(data,天后下单==4)[,2],4)*密度(data[,3],4)
[1] 1.074741e-06
挨个拎出来又可以,实在是找不出原因,望大神相助
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2017-10-27 12:47:11
经过一夜一天的艰苦奋斗,总算找到原因了
根据r的错误提示,Error in x - mean(mydata) : 二进列运算符中有非数值参数
x - mean(mydata)之中有非数值的东东出现,导致代码无法运行下去,但mean(mydata)显然没有问题,所以问题应该在前面的x,原来是我的赋值有误,数字变成了文本,改回来就好了。
这个错误据我所知有两种可能,一个是数据本身有错误,比如输入有误导致数字无法识别,比如10..1,另一个就是数据的格式了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-6-14 10:15:46
随你便啦 发表于 2017-10-27 12:47
经过一夜一天的艰苦奋斗,总算找到原因了
根据r的错误提示,Error in x - mean(mydata) : 二进列运算符中有 ...
请问一下,您是怎么把数据的格式改回来的呀?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-6-14 10:15:53
随你便啦 发表于 2017-10-27 12:47
经过一夜一天的艰苦奋斗,总算找到原因了
根据r的错误提示,Error in x - mean(mydata) : 二进列运算符中有 ...
请问一下,您是怎么把数据的格式改回来的呀?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-6-14 10:16:19
随你便啦 发表于 2017-10-27 12:47
经过一夜一天的艰苦奋斗,总算找到原因了
根据r的错误提示,Error in x - mean(mydata) : 二进列运算符中有 ...
请问一下,您是怎么把数据的格式改回来的呀?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群