randomForest sceglie la regressione invece della classificazione


12

Sto usando il pacchetto randomForest in R e usando i dati dell'iride, la foresta casuale generata è una classificazione ma quando uso un set di dati con circa 700 funzioni (le caratteristiche sono ogni pixel in un'immagine di 28x28 pixel) e la colonna etichetta viene denominata label, il randomForestgenerato è regressione. Sto usando la seguente riga:

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

Come viene utilizzata la regressione invece della classificazione? I dati vengono letti attraverso read.csv().

Risposte:


10

randomForest imposterà automaticamente la classificazione o la regressione a seconda della classe della variabile. Quindi se digiti

class(iris$Species)

vedrai che è un fattore. 'etichetta' nel tuo codice, è molto probabilmente numerico, quindi randomForest ha come impostazione predefinita la regressione. Dovrai convertirlo in un fattore per la classificazione. Puoi convertirlo o leggerlo come fattore impostando colClasses in read.table.


4

Molto spesso questo è perché non hai detto a R che l'etichetta è una variabile categoriale. La read.csvfunzione cerca di indovinare quale tipo usare per ogni colonna e se sembra una colonna numerica, allora è quello che utilizzerà. Puoi controllare come R memorizza la variabile usando la strfunzione. Puoi forzare read.csva leggere la variabile come fattore (o numerico, o ...) usando l' colClassesargomento. Oppure puoi cambiare le etichette in un fattore dopo averlo letto usando la factorfunzione.

In caso contrario, abbiamo bisogno di ulteriori informazioni sui tuoi dati. I risultati dell'esecuzione strsul frame di dati sarebbero probabilmente utili.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.