обучающий и тестовый набор одинаковых переменных не одного класса в randomForest - PullRequest
0 голосов
/ 05 августа 2020

Я использовал обучающий набор для обучения модели случайного леса с использованием пакета randomForest в R. Переменной в обучающем наборе является класс символов, и я преобразовал его в as.numeric(factor()).

Однако та же переменная в тестовом наборе по-прежнему является символом. Но я неожиданно обнаружил, что все еще могу получать прогнозы на основе модели случайного леса, которую я обучал, даже если эта переменная является классом символов. И я также обнаружил, что если я также конвертирую эту переменную в тестовом наборе в as.numeric(factor()), тогда характеристики в тестовом наборе будут разными. с символьной переменной в тестовом наборе, в то время как та же переменная в обучающем наборе не является символьным классом?

Заранее спасибо !!

1 Ответ

0 голосов
/ 05 августа 2020

Это неудивительно. Ваши исходные переменные - это символьные строки, которые можно преобразовать в числа. Так что RandomForest почти наверняка делает именно это. Простой пример ниже воспроизводит проблему:

library(tidyverse)
library(randomForest)

df <- tibble::tibble(x = c(1:6), y = 1:6)

rf <- randomForest(y~., df)
# "1" is coerced
predict(rf, tibble(x = "1"))
predict(rf, tibble(x = 1))
# "b" fails
predict(rf, tibble(x = "b"))
...