Неверный тип (символ) аргумента
Это сообщение об ошибке по теме. Я получаю эту ошибку при попытке запустить классификатор naive.bayes. Вот краткая информация о моих поездах:
'data.frame': 7269 obs. of 193 variables:
$ pid : int 2 4 5 7 10 11 14 18 25 31 ...
$ acquir : int 0 0 0 0 1 1 0 0 0 0 ...
$ addit : int 0 0 0 0 2 2 0 0 0 0 ...
$ agre : int 0 0 0 0 0 0 0 0 0 0 ...
$ agreement : int 0 0 0 0 0 0 0 0 0 0 ...
$ also : int 1 0 0 0 2 2 0 0 0 0 ...
$ american : int 0 0 0 0 0 0 0 0 0 0 ...
$ announc : int 0 0 0 0 0 0 0 0 0 0 ...
$ annual : int 0 0 0 0 0 0 0 0 2 0 ...
$ approv : int 0 3 0 0 0 0 0 0 0 0 ...
$ april : int 0 0 0 0 0 0 0 0 1 0 ...
$ bank : int 0 7 0 0 0 0 0 0 0 0 ...
$ base : int 0 0 0 0 0 0 0 0 0 0 ...
.
.
$... all of them are integer, except the class column
.
.
$ class : Factor w/ 10 levels "acq","corn","crude",..: 1 1 4 4 9 1 4 3 1 4 ...
И это naive.bayes()
линия:
model <- naiveBayes(as.factor(class) ~ ., data = as.matrix(train), laplace = 3)
Может кто-нибудь сказать мне, почему это происходит?
Error in sum(x) : invalid 'type' (character) of argument
1 ответ
Решение
В конце концов ваши данные преобразуются в символ из-за as.matrix(train)
, Пытаться
model <- naiveBayes(class ~ ., data=train, laplace = 3)
или в конце концов
model <- naiveBayes(train$class ~ ., data=train[, -c("class")], laplace = 3)
Второй вариант более или менее совпадает с первым вариантом. .
в RHS формула расширена до "всех других переменных"; так что исключает столбец class
упоминается на LHS. (Более подробная информация в документации formula
)