1

我正在使用 R 中插入符号库中的confusionMatrix函数来评估两种方法在两类数据上的性能,例如(glmnet 库中的弹性网络、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%)。

4

1 回答 1

2

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

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

第二点,除非你的班级大约是 50-50,否则你可能应该用混淆矩阵以外的东西来评估你的结果。

于 2015-08-18T16:45:02.083 回答