randomForest escolhe regressão em vez de classificação

12

Estou usando o pacote randomForest no R e usando os dados da íris, a floresta aleatória gerada é uma classificação, mas quando uso um conjunto de dados com cerca de 700 recursos (os recursos são cada pixel em uma imagem de 28 x 28 pixels) e a coluna do rótulo é denominada label, o randomForestgerado é regressão. Estou usando a seguinte linha:

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

Como é que a regressão é usada em vez da classificação? Os dados são lidos read.csv().

Escola Secundária
fonte

Respostas:

10

randomForest assumirá o padrão de classificação ou regressão, dependendo da classe da variável. Então, se você digitar

class(iris$Species)

você verá que é um fator. 'label' no seu código, é provavelmente numérico, então randomForest assume como padrão a regressão. Você precisará convertê-lo em um fator para classificação. Você pode convertê-lo ou lê-lo como um fator, definindo colClasses em read.table.

julieth
fonte
4

Na maioria das vezes, isso ocorre porque você não disse a R que o rótulo é uma variável categórica. A read.csvfunção tenta adivinhar que tipo usar para cada coluna e se parece com uma coluna numérica, é isso que ela usará. Você pode verificar como R armazena a variável usando a strfunção Você pode forçar read.csva leitura da variável como um fator (ou numérico ou ...) usando o colClassesargumento Ou você pode alterar os rótulos para um fator depois de lê-lo usando a factorfunção

Se não for esse o caso, precisamos de mais informações sobre seus dados. Os resultados da execução strno seu quadro de dados provavelmente seriam úteis.

Greg Snow
fonte