获得R中随机森林的准确性

Sab*_*ian 5 r confusion-matrix random-forest

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

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

我很容易看到我confusion matrix:

conf <- fit$confusion
> conf
     No Yes class.error
No  945  80  0.07804878
Yes  84 101  0.45405405
Run Code Online (Sandbox Code Playgroud)

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

smc*_*mci 5

用于randomForest(..., do.trace=T)在训练期间通过类和ntree查看OOB错误.

(仅供参考,你选择了ntree = 1,所以你只会得到一个rpart树,而不是森林,这种方式会破坏使用RF的目的,并随机选择两个特征和样本的子集.你可能想要改变ntree. )

在训练之后,您可以从已经找到的混淆矩阵的最右侧列中获取每类错误:

> fit$confusion[, 'class.error']
class.error
No         Yes
0.07804878 0.45405405
Run Code Online (Sandbox Code Playgroud)

(你也可能想设置options('digits'=3)为看不到那些过多的小数位)

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

(或者有更复杂的评估者间协议)