Re: [R] what is Non-numeric argument to mathematical function in prediction ?

2012-05-07 Thread kiinalist

Thanks. It does work now.

I also get another problem when I use naivebayes and prediction in myapplication
There was anerror message:
 
Error in table(predict(nb.obj, test.data[, subset, drop = FALSE]),  test.data[,  :

all arguments must have the same length
 
The length of test.data[,subset, drop=FALSE] and  test.data[,ncol(expr.matrix)] of are the same. I further checked length ofpredict(nb.obj, test.data[, subset, drop = FALSE]) is 0. I do not know why.
 
The script is shown below. I also attached test data


 evaluator- function(subset){
  # k-fold cross validation
  k- 5
  splits- runif(nrow(expr.matrix))
  results- sapply(1:k, function(i){
  test.indx- (splits= (i-1)/k)
(splitsi/k)
  train.indx- !test.indx
  test.data- expr.matrix[test.indx, ,  
drop=FALSE]
  train.data- expr.matrix[train.indx, ,  
drop=FALSE]
  nb.obj-  naiveBayes(train.data[,subset, 
drop=FALSE], train.data[,ncol(expr.matrix)])
  error.rate- 
sum(predict(nb.obj,test.data[,subset, drop=FALSE]) ==  
test.data[,ncol(expr.matrix)])/nrow(test.data)
  return (error.rate)
  })
  print(subset)
  print(mean(results))
  return(mean(results))
 }
 
 
 subset- best.first.search(colnames(expr.matrix)[-ncol(expr.matrix)],  evaluator)



 Br,
 Luffy


On 05/05/2012 12:53 PM, Petr Savicky wrote:

On Sat, May 05, 2012 at 09:21:10AM +0300, kiinalist wrote:

Hi,

I tried to use naivebayes in package 'e1071'.
when I use following parameter, only one predictor, there is an error.

m- naiveBayes(iris[,1], iris[,5])
table(predict(m, iris[,1]), iris[,5])
Error in log(sapply(attribs, function(v) { :
Non-numeric argument to mathematical function


However, when I use two predictors, there is not error any more.

m- naiveBayes(iris[,1:2], iris[,5])
table(predict(m, iris[,1:2]), iris[,5])

   setosa versicolor virginica
setosa 49  0 0
versicolor  1 3719
virginica   0 1331

Hi.

A untested suggestion is to try

   m- naiveBayes(iris[,1, drop=FALSE], iris[,5])

The difference is that iris[,1] is not a dataframe, while
both iris[,1:2] and iris[,1, drop=FALSE] are.

Hope this helps.

Petr Savicky.

__
R-help@r-project.org 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.


__
R-help@r-project.org 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.


[R] what is Non-numeric argument to mathematical function in prediction ?

2012-05-05 Thread kiinalist
Hi,

I tried to use naivebayes in package 'e1071'.
when I use following parameter, only one predictor, there is an error.

  m - naiveBayes(iris[,1], iris[,5])
  table(predict(m, iris[,1]), iris[,5])
Error in log(sapply(attribs, function(v) { :
   Non-numeric argument to mathematical function


However, when I use two predictors, there is not error any more.

  m - naiveBayes(iris[,1:2], iris[,5])
  table(predict(m, iris[,1:2]), iris[,5])

  setosa versicolor virginica
   setosa 49  0 0
   versicolor  1 3719
   virginica   0 1331

Do you know what is the problem?

Br,
Luffy

[[alternative HTML version deleted]]

__
R-help@r-project.org 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.


[R] weird predict function error when I use naive bayes

2012-05-04 Thread kiinalist

Hi,

I tried to use naivebayes in package 'e1071'.
when I use following parameter, only one predictor, there is an error.


 m- naiveBayes(iris[,1], iris[,5])
 table(predict(m, iris[,1]), iris[,5])

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


However, when I use two predictors, there is not error any more.


 m- naiveBayes(iris[,1:2], iris[,5])
 table(predict(m, iris[,1:2]), iris[,5])


 setosa versicolor virginica
  setosa 49  0 0
  versicolor  1 3719
  virginica   0 1331

Do you know what is the problem?

Br,
Luffy

__
R-help@r-project.org 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.