Я строю модель дерева регрессии CART в R, используя пакет партии, но я получил сообщение об ошибке, говорящее о том, что уровни не совпадают, когда я пытаюсь применить модель к набору данных тестирования.Ошибка предсказания пакета пакета Decission Tree - Уровни не совпадают
Я провел последнюю неделю, просматривая темы на форуме, но все еще не смог найти правильное решение моей проблемы. Поэтому я переписываю этот вопрос здесь, используя поддельные примеры, которые я составил. Может ли кто-нибудь помочь объяснить сообщение об ошибке и предоставить решение?
В моем учебном наборе данных имеется около 1000 записей, а набор данных для тестирования составляет около 150. В любом наборе данных нет NA или пустых полей.
моя CART модель с использованием Ctree под пакет партийном:
mytree<- ctree(Rate~Bank+Product+Salary, data=data_train)
data_train пример:
Rate Bank Product Salary
1.5 A aaa 100000
0.6 B abc 60000
3 C bac 10000
2.1 D cba 50000
1.1 E cca 80000
data_test пример:
Rate Bank Product Salary
2.0 A cba 80000
0.5 D cca 250000
0.8 E cba 120000
2.1 C abc 65000
levels(data_train$Bank) : A, B, C, D, E
levels(data_test$Bank): A,D,E,C
Я попытался установить на том же уровне используя следующие коды:
>is.factor(data_test$Bank)
TRUE
(Made sure Bank and Products are factors in both datasets)
>levels(data_test$Bank) <-union(levels(data_test$Bank), levels(data_train$Bank))
> levels(data_test$product)<-union(levels(data_test$product),levels(data_train$product))
Однако, когда я пытаюсь запустить прогноз на тестирование набора данных, я получаю следующее сообщение об ошибке:
> fit1<- predict(mytree,newdata=data_test)
Error in checkData(oldData, RET) :
Levels in factors of new data do not match original data
Я также попробовал следующий метод, но он изменяет поля моего тестирования набора данных ... :
levels(data_test$Bank) <-levels(data_train$Bank)
data_test таблица изменена:
Rate Bank(altered) Bank (original)
2.0 A A
0.5 B D
0.8 C E
2.1 D C
Отличная работа вокруг. Работает как магия. – yiyisue