我建立了一个预测模型,将人分为两类,其中< = 50k和> 50k收入
但是当我在excel或r中打开我的文件以查看最终预测时,我只看到我在第一时间分配的级别(1和2)以简化过程
请告诉我如何保留由水平而不是水平
表示的原始值以下是我遵循的大纲
这是我的目标变量income.group 这是初始状态
str(train_gbW7HTd $ Income.Group)
chr [1:32561]“< = 50K”“< = 50K”“< = 50K”“< = 50K”“< = 50K”“< = 50K”“< = 50K “......
现在应用决策树我将我的目标变量编码为1级和2级 我使用以下代码 train $ Income.Group< - match(train $ Income.Group,unique(train $ Income.Group)) 我得到了
表(列车$ Income.Group)
1 2
24720 7841
我建立这样的决策树 set.seed(333)
fit< - rpart(Income.Group~。,data = train,method =“class”,control = rpart。control(minsplit = 20,minbucket = 100,maxdepth = 10,xval = 5) +)
做出预测 pred< - predict(fit,test,type =“class”)
pred_train< - predict(fit,train,type =“class”)
confusionMatrix(pred_train,train $ Income.Group)
保存了我的文件 solution.frame< - data.frame(ID = test $ ID,Income.Group = pred)
write.csv(solution.frame,file =“final_solution.csv”)
但是我的最终csv文件的级别1和2代表最终预测,而不是< = 50k和> 50k,这是我真正想要的。 请告诉我如何继续。 提前致谢 我已经习惯了 solution.frame $ Income.Group< - ifelse(solution.frame $ Income.Group ==“1”,“< = 50k”,“> 50k”)
但是它给Income.Group
的整个列提供了单值> 50k请告诉我该做什么,因为我坚持这一步并且无法完成我的模型提交。
答案 0 :(得分:0)
你可以使用ifelse:
train$Income.Group<-ifelse(train$Income.Group=="1","<=50K",">50K")