将因子级别转换回原始字符值

时间:2017-06-08 18:22:09

标签: r model

我建立了一个预测模型,将人分为两类,其中< = 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

请告诉我该做什么,因为我坚持这一步并且无法完成我的模型提交。

1 个答案:

答案 0 :(得分:0)

你可以使用ifelse:

train$Income.Group<-ifelse(train$Income.Group=="1","<=50K",">50K")