我有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(对象,:因子v3具有新级别