30 votos

R: Random Forest lanzando NaN/Inf en el error "llamada a función extranjera" a pesar de que no hay NaN's en el conjunto de datos

Estoy usando caret para ejecutar un bosque aleatorio validado de forma cruzada sobre un conjunto de datos. La variable Y es un factor. No hay NaN, Inf o NA en mi conjunto de datos. Sin embargo, al ejecutar el bosque aleatorio, obtengo

¿Alguien tiene ideas sobre si este error es causado por los NA introducidos por la coerción? Si es así, ¿cómo puedo evitar tal coerción?

43voto

IamWIMP Puntos 31

Debe haber algunas características en su conjunto de entrenamiento con la clase 'char' .

Por favor, compruebe esto

> a <- c("1", "2",letters[1:5], "3")
> as.numeric(a)
[1]  1  2 NA NA NA NA NA  3
Warning message:
NAs introduced by coercion

2 votos

Si la característica es realmente categórica, puede incluirse convirtiéndola en un factor, por ejemplo: blah<-as.factor(blah)

18voto

pablo_sci Puntos 11

Probablemente la causa es que tienes algunas variables de carácter en tu marco de datos.

Convierte todas las variables de carácter en factor en una sola línea:

library(dplyr) data_fac=data_char %>% mutate_if(is.character, as.factor)

3 votos

No había pensado en usar mutate_if() por esto... ¡gracias!

3voto

Ken Puntos 11

Como se muestra en la advertencia, había 28 errores, que resultaban ser el número de columnas con tipos de datos de carácter ("chr"). Al forzar estas columnas a factores se pudo iniciar la ejecución.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X