4

我用我的数据创建了一个random forest

fit=randomForest(churn~., data=data_churn[3:17], ntree=1,
                 importance=TRUE, proximity=TRUE)

我可以很容易地看到我的confusion matrix

conf <- fit$confusion
> conf
     No Yes class.error
No  945  80  0.07804878
Yes  84 101  0.45405405

现在我需要知道随机森林的准确性。我四处搜索并意识到插入符号库有一个confusionMatrix方法可以获取混淆矩阵并返回准确性(以及许多其他值)。但是,该方法需要另一个名为"reference". 我的问题是如何为获得随机森林准确性的方法提供参考?而且......这是获得随机森林准确性的正确方法吗?

4

1 回答 1

6

用于randomForest(..., do.trace=T)查看训练期间的 OOB 错误,按类和 ntree。

(仅供参考,您选择ntree=1因此您只会得到一个 rpart 决策树,而不是森林,这违背了使用 RF 以及随机选择特征和样本子集的目的。您可能想要改变ntree值。 )

训练后,您可以从混淆矩阵的最右边一列中获得每类错误,正如您已经发现的那样:

> fit$confusion[, 'class.error']
class.error
No         Yes
0.07804878 0.45405405

(另外,您可能希望设置options('digits'=3)为不看到那些过多的小数位)

至于将类别错误列表(准确度 = 1 - 错误)转换为一个总体准确度数,这很容易做到。您可以使用均值、类加权均值、调和均值(准确度,而不是错误)等。这取决于您的应用程序和错误分类的相对惩罚。你的例子很简单,它只有两个类。

(或者例如有更复杂的评估者间一致性度量)

于 2015-06-08T22:09:44.253 回答