我使用"party"库中的ctree函数创建了一个决策树训练模型,以帮助教师决定跟进哪些学生。现在我想把这个训练模型应用到我的测试集上,以便根据学生之前回答的问题数量、他们正确回答的问题的百分比以及他们需要多少提示来预测教师是否应该"(1(干预"、"(2(监控学生进步"或"(3(不采取行动"。
library(party)
D1 <- read.csv(training data with 378 observations and 4 variables:
prior_prob_count, prior_percent_correct, hints_count, score)
HW1.根据学生分数创建一个分类结果变量,以使用"ifelse"语句向教师提供建议:
D1$advice <- ifelse(D1$score < 0.5, "1", ifelse(D1$score < 0.6, "2", "3"))
如果学生的分数低于0.5,教师应干预(1(。否则,如果学生的分数低于0.6,教师应监控学生的进步(2(。否则,如果学生的分数高于0.6,教师不应采取任何行动(3(。
HW2.构建预测"建议"的决策树:
D1$advice <- as.factor(D1$advice)
score_ctree <- ctree(advice ~ prior_prob_count + prior_percent_correct + hints, data=D1)
plot(score_ctree) # see image for visualization
剧情(score_ctree(
HW3.根据旧学生生成的树,使用 predict(( 命令为新学生上传新的测试数据并生成预测建议
D2 <- read.csv(test data with 200 observations and 4 variables:
prior_prob_count, prior_percent_correct, hints_count, score)
D2$prediction <- predict(object = D2, model = score_ctree)
使用方法("预测"(中的错误: 没有适用于"预测"的方法应用于类"data.frame"的对象
我认为你的predict
参数是错误的。我没有安装party
软件包,但查看其他predict
功能应该是:
D2$prediction <- predict(newdata = D2, object = score_ctree)