Я использую модель rf
в R
для прогнозирования двоичного результата 0 или 1. У меня есть категориальные переменные (закодированные как числа) в моих входных данных, которые кодируются как фактор во время обучения , Я использую функцию factor()
в R
, чтобы преобразовать переменную в качестве коэффициента. Поэтому для каждой категориальной переменной x
мой код выглядит следующим образом.случайный лес: ошибка при работе с уровнями факторов в R
feature_x1=factor(feature_x1) # Convert the variable into factor in training data.
#This variable takes 3 levels 0,1,2
Это прекрасно работает при обучении модели. Предположим, что мой объект модели - rf_model
. При запуске модели на новые данные, которые являются всего лишь вектором чисел. Я сначала преобразовать число в факторы feature_x1
newdata=data.frame(1,2)
colnames(newdata)=c("feature_x1","feature_x2")
newdata$feature_x1=factor(newdata$feature_x1)
score=pred(rf_model,newdata,type="prob")
Я получаю следующую ошибку
Ошибка в predict.randomForest (rf_model, NewData, тип = "Prob"): Новые уровни факторов не присутствуют в данных обучения
Как справиться с этой ошибкой, поскольку на самом деле после обучения модели нам всегда придется иметь дело с данными, для которых результат неизвестен, что является единственной записью.
Пожалуйста, дайте мне знать, если больше ясности или код необходим
Уже пробовал. Не работает –
Всегда лучше говорить, что вы пробовали в вопросе, особенно если ваш пример не является самодостаточным. Я уверен, что больше ответов появится, когда вы сделаете свой пример работоспособным. –
Спасибо, что сейчас работает. Причина, по которой он не работал ранее, состоял в том, что я использовал as.data.frame() в своем коде вместо data.frame() –