我已经在R中使用cu.summary数据集创建了一个决策树,并且得到了正确的输出。
但是当我尝试通过提供其他四个变量的值来预测里程(训练数据中的因变量)时,我得到了错误:“变量 ‘Reliability’ 被拟合为 ‘ordered’ 类型,但提供了 ‘factor’ 类型”。
数据集:cu.summary
数据集中的变量:里程,价格,国家,可靠性,类型
libray(rpart) fit <- rpart(Mileage~Price + Country + Reliability + Type,method="anova",data=cu.summary) printcp(fit) plotcp(fit) summary(fit) par(mfrow=c(1,2)) rsq.rpart(fit) plot(fit, uniform=TRUE) text(fit, use.n=TRUE , all=TRUE, cex=.8) post(fit,file = "Desktop/tree_reg.ps") plot(pfit, uniform=TRUE,main= "Regression tree") pfit<- prune(fit, cp=0.01160389) plot(pfit, uniform=TRUE,main= "Pruned regression Tree for mileage") text(pfit, use.n=TRUE, all=TRUE, cex=.8) post(fit,file = "Desktop/tree_pruned.ps") predict(fit,data.frame(Price=7000,Country="Japan",Reliability="worse",Type="Small"))
输出窗口
请帮助我调试这段代码
回答:
在运行 predict
之前,你需要将 Reliability
列转换为有序因子(如在 cu.summary
中那样)。
tmp <- data.frame(Price=7000,Country="Japan",Reliability="worse",Type="Small")tmp$Reliability <- as.ordered(tmp$Reliability)predict(fit, tmp)