【发布时间】:2015-06-16 20:23:48
【问题描述】:
我正在使用 R 对一个名为“d”的数据框进行分类,其中包含如下结构的数据:
数据有 576666 行,“classLabel”列有 3 个级别:一、二、三。
我正在使用 rpart 制作决策树:
fitTree = rpart(d$classLabel ~ d$tripduration + d$from_station_id + d$gender + d$birthday)
我想预测 newdata 的“classLabel”的值:
newdata = data.frame( tripduration=c(345,244,543,311),
from_station_id=c(60,28,100,56),
gender=c("Male","Female","Male","Male"),
birthday=c(1972,1955,1964,1967) )
p <- predict(fitTree, newdata)
我希望我的结果是一个由 4 行组成的矩阵,每行具有 newdata 的“classLabel”的三个可能值的概率。但是我在 p 中得到的结果是一个 576666 行的数据框,如下所示:
在运行predict 函数时,我还收到以下警告:
Warning message:
'newdata' had 4 rows but variables found have 576666 rows
我哪里做错了?!
【问题讨论】:
-
不要在你的公式中使用
$。而是使用 `rpart(classLabel ~ tripduration + from_station_id + gender +birthday, data=d)` 否则变量绑定到“d”并且不会在你的 newdata data.frame 中解析。将来,请务必在示例输入数据中包含 reproducible example,以便我们可以得到与您相同的错误(数据图像不计算在内)。
标签: r machine-learning classification decision-tree rpart