[我正在使用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%)。
请参见?caret::confusionMatrix
,特别是参数positive
正与“阳性”结果相对应的因子水平的可选字符串(如果对您的数据有意义)。如果只有两个因子水平,则第一个水平将用作“阳性”结果。
第二点,除非您的班级大约是50-50,否则您应该使用混淆矩阵以外的方法评估结果。