NA, введенные coercionError в randomForest.default (m, y, ...): NA / NaN / Inf при вызове сторонней функции (arg 1) - PullRequest
0 голосов
/ 07 мая 2019

Я запускаю следующий код

class(TrainSet$volume), что дает мне [1] "numeric"

Тогда я бегу

model1 <- randomForest(TrainSet$volume ~ ., data = TrainSet, importance = TRUE)

это дало мне

Error in randomForest.default(m, y, ...) : NA/NaN/Inf in foreign function call (arg 1)

В чем может быть причина? Спасибо

1 Ответ

1 голос
/ 07 мая 2019

Трудно знать наверняка без дополнительной информации о ваших данных, но, как показывает ошибка, у вас есть какое-то из этих значений (NA / NaN / Inf) где-то в вашем фрейме данных. Возможно, inf, поскольку NA имеет тенденцию выдавать другую ошибку. Мы можем воссоздать вашу ошибку ниже:

library(randomForest)

#setting data
data(iris)

#making an infinite value
iris[1,1] <- Inf

#grab row
iris[is.infinite(iris$Sepal.Length),]

#output
#   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 1          Inf         3.5          1.4         0.2  setosa

#checking data type
is.numeric(iris$Sepal.Length) #TRUE

#reproducing error
iris.rf <- randomForest(iris$Sepal.Width ~ ., data=iris, importance=TRUE)

#output
Error in randomForest.default(m, y, ...) : 
  NA/NaN/Inf in foreign function call (arg 1)

Относительно того, где или почему это находится в ваших данных, неясно (опять же, необходимо увидеть данные, чтобы сделать этот вызов). Обычный способ inf создается по ошибке при обработке, которая вводит в заблуждение вычисление, например деление на ноль.

is.infinite(pi / 0)
#output
# [1] TRUE

Сканирование на бесконечность или NA (с помощью is.infinite или is.na) и просмотр любых изменений, внесенных в ваши данные, кажется хорошим началом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...