R中分类器的混淆矩阵

问题描述 投票:0回答:1

[我正在使用R中插入符号库中的confusionMatrix函数来评估两种方法的性能,例如(对glmnet库的elasticnet,来自kernlib的高斯处理器,randomforest)对两类数据的性能。

我有时可以看到某些方法,我得到

警告消息:在confusionMatrix.default(pred,true)中:级别对于参考和数据的顺序不同。将数据重构为匹配。

例如,性能为65%;但是,如果我根据“真相”重新标记预测的级别(更改顺序)(在上面的示例中为pred);效果变为25%。

我构造了以下玩具数据。

pred = c("a", "a", "a", "b")
pred = as.factor(pred)
levels(pred) = rev(levels(pred)) % given this line, I can either get 25% or 75%.

truth = c("a", "a", "b", "b")
truth = as.factor(truth)

confusionMatrix(pred, truth)

我理解它很直观,因为它是两类数据。但是,我想知道是否这样做对我有利。表示效果是否为25%(简单来说,接受为75%)。

r classification r-caret glmnet kernlab
1个回答
0
投票

请参见?caret::confusionMatrix,特别是参数positive

与“阳性”结果相对应的因子水平的可选字符串(如果对您的数据有意义)。如果只有两个因子水平,则第一个水平将用作“阳性”结果。

第二点,除非您的班级大约是50-50,否则您应该使用混淆矩阵以外的方法评估结果。

© www.soinside.com 2019 - 2024. All rights reserved.