我使用R中插入库中的confusionMatrix函数来评估两个类数据的性能,例如( glmnet库中的elasticnet、kernlib中的高斯处理器、随机森林)。
有时我可以看到一些方法,我得到了
警告信息:在confusionMatrix.default(pred,truth)中,级别与引用和数据的顺序不同。重构数据以匹配。
性能是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%)。
发布于 2015-08-18 16:45:02
参见?caret::confusionMatrix,特别是参数positive
是一个可选的字符串,用于与“正”结果相对应的因子级别(如果这对数据有意义的话)。如果只有两个因素层次,第一个层次将被用作“正”结果。
第二点,除非你是大约50-50的类,否则你可能应该用一个混乱矩阵以外的东西来评估你的结果。
https://stackoverflow.com/questions/32077843
复制相似问题