3

我使用 R 中的 rpart 包从训练数据中构建了一个决策树。现在我有更多数据,我想对照树检查它以检查模型。逻辑上/迭代地,我想做以下事情:

for each datapoint in new data
     run point thru decision tree, branching as appropriate
     examine how tree classifies the data point
     determine if the datapoint is a true positive or false positive

我如何在 R 中做到这一点?

4

1 回答 1

7

为了能够使用它,我假设您将训练集拆分为子集训练集和测试集。

要创建训练模型,您可以使用:

model <- rpart(y~., traindata, minbucket=5)   # I suspect you did it so far.

要将其应用于测试集:

pred <- predict(model, testdata) 

然后你得到一个预测结果的向量。

在您的训练测试数据集中,您也有“真实”的答案。假设训练集中的最后一列。

简单地将它们等同起来将产生结果:

pred == testdata[ , last]  # where 'last' equals the index of 'y'

当元素相等时,你会得到一个 TRUE,当你得到一个 FALSE 时,这意味着你的预测是错误的。

pred + testdata[, last] > 1 # gives TRUE positive, as it means both vectors are 1
pred == testdata[, last]    # gives those that are correct

看看你有多少正确的百分比可能会很有趣:

mean(pred == testdata[ , last])    # here TRUE will count as a 1, and FALSE as 0
于 2013-10-27T16:58:53.933 回答