randomForest elige la regresión en lugar de la clasificación

12

Estoy usando el paquete randomForest en R y usando los datos del iris, el bosque aleatorio generado es una clasificación, pero cuando uso un conjunto de datos con alrededor de 700 características (las características son cada píxel en una imagen de 28x28 píxeles) y la columna de etiqueta se llama label, el randomForestgenerado es la regresión. Estoy usando la siguiente línea:

rf <- randomForest(label ~ ., data=train)

¿Cómo se usa la regresión en lugar de la clasificación? Los datos se leen hasta el final read.csv().

Deserción escolar
fuente

Respuestas:

10

randomForest tomará por defecto la clasificación o regresión dependiendo de la clase de la variable. Entonces si escribes

class(iris$Species)

Verás que es un factor. 'etiqueta' en su código, es muy probablemente numérico, por lo que randomForest se predetermina a la regresión. Deberá convertirlo en un factor de clasificación. Puede convertirlo o leerlo como un factor estableciendo colClasses en read.table.

julio
fuente
4

La mayoría de las veces esto se debe a que no le dijiste a R que la etiqueta es una variable categórica. La read.csvfunción intenta adivinar qué tipo usar para cada columna y si se parece a una columna numérica, entonces eso es lo que usará. Puede verificar cómo R almacena la variable usando la strfunción. Puede forzar la read.csvlectura de la variable como un factor (o numérico, o ...) utilizando el colClassesargumento. O puede cambiar las etiquetas a un factor después de leerlo usando la factorfunción.

Si este no es el caso, entonces necesitamos más información sobre sus datos. Los resultados de la ejecución stren su marco de datos probablemente serían útiles.

Greg Snow
fuente