Mike,

I think that predict.naiveBayes() wants 'newdata' in the
form of a list or data.frame. You'll find the same problem
if you reduce the HouseVotes84 data set to just one predictor.

This should work for you:

 predict(model,temp[,-1, drop=FALSE])

or, if you prefer:

 predict(model, list(var = temp[, -1])

(With a two-variable data.frame, you might prefer
temp[, 2] over temp[, -1].)

Peter Ehlers


On 2011-02-07 17:20, Mike Schumacher wrote:
Hey guys,

I can't get my Naive Bayes model to predict.  Forgive me if its simple...
I've tried about everything and can't get it to work.  Reproduceable code
below.

Thank you,

Mike

Functional Example Code from UCLA:
http://www.stat.ucl.ac.be/ISdidactique/Rhelp/library/e1071/html/predict.naiveBayes.html
*

install.packages('e1071')
install.packages('mlbench')
library(e1071)
library(mlbench)

data(HouseVotes84)
model <- naiveBayes(Class ~ ., data = HouseVotes84)
predict(model, HouseVotes84[1:10,-1])


*My Code That Errors:*
resp<-c(0,0,0,0,0,0,0,0,0,1,1,1,1,1,1)
var <-c('y','n','y','y','y','n','y','y','y','n','n','n','n','n','y')
temp<-data.frame(resp,var)
print(temp)

model<-naiveBayes(resp~.,data=temp)
model
predict(model,temp[,-1])

#Error:
#Error in log(sapply(attribs, function(v) { :
#Non-numeric argument to mathematical function

______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to