randomForest выбирает регрессию вместо классификации


12

Я использую пакет randomForest в R и использую данные радужной оболочки, генерируемый случайный лес является классификацией, но когда я использую набор данных с примерно 700 объектами (каждый объект представлен в пикселе размером 28x28 пикселей), а столбец метки называется label, то randomForestгенерируется регресс. Я использую следующую строку:

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

Почему регрессия используется вместо классификации? Данные прочитаны до конца read.csv().

Ответы:


10

randomForest по умолчанию будет классифицировать или регрессировать в зависимости от класса переменной. Так что если вы введете

class(iris$Species)

вы увидите, что это фактор. 'label' в вашем коде, скорее всего, числовой, поэтому randomForest по умолчанию равен регрессии. Вам нужно будет преобразовать его в фактор для классификации. Вы можете преобразовать его или прочитать как фактор, установив colClasses в read.table.


4

Чаще всего это потому, что вы не сказали R, что метка является категориальной переменной. В read.csvфункции пытается угадать , какой тип использовать для каждого столбца , и если он выглядит как числовой столбец , то это то , что он будет использовать. Вы можете проверить, как R хранит переменную, используя strфункцию. Вы можете принудительно read.csvсчитать переменную как фактор (или числовой, или ...), используя colClassesаргумент. Или вы можете поменять метки на коэффициент после прочтения при использовании factorфункции.

Если это не так, нам нужна дополнительная информация о ваших данных. Результаты запуска strвашего фрейма данных, вероятно, будут полезны.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.