Разделение набора данных на тренировку и тестирование на основе нескольких функций класса в

У меня есть 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 имеет новые уровни

0 ответов

Другие вопросы по тегам