Разделение набора данных на тренировку и тестирование на основе нескольких функций класса в
У меня есть 5 категориальных переменных (v1-v5) и 1 числовая переменная (v6), которые имеют более 6 категорий в каждой, я хочу разбить все данные на Train(70%) и Test(30%).
Я иногда сталкивался с этой проблемой из-за молчания, так как я использовал категориальные переменные и использовал случайную выборку. Каждый раз, когда я делю данные, я сталкиваюсь с некоторой проблемой с одной из этих переменных. Поскольку уровни данных не совпадают или не соответствуют уровню данных в наборе тестов, когда я предсказываю здесь, я строю модель с использованием дерева решений.
Было бы очень полезно, если бы вы могли предложить мне какой-нибудь умный способ решения этой проблемы.
Я прошел через много вопросов о переполнении стека, но не встречал вопросов, похожих на мои.
Пример данных:
v1 v2 v3 v4 v5 v6 Target_var
cat-1 cat-5 cat-8 1 Level-1 2 1
cat-2 cat-6 cat-8 2 Level-2 2 1
cat-3 cat-5 cat-9 3 Level-3 3 0
cat-1 cat-6 cat-8 2 Level-1 3 0
cat-2 cat-5 cat-9 3 Level-1 5 1
cat-3 cat-7 cat-10 1 Level-2 6 0
cat-4 cat-5 cat-8 1 Level-1 6 1
Образец кода:
set.seed(101)
dt <- sort(sample(nrow(total_data), nrow(total_data)*.7))
train<-total_data[dt,]
test<-total_data[-dt,]
#build decision tree models for testing purpose
tree <- rpart(Target_var~ ., data = train, method = "class")
pred.tree <- predict(tree, newdata = test, type = "class")
Ошибка:
xlev = attr (object,: factor v3 имеет новые уровни