2

让我说,首先,我是 WEKA 新手。

我将 WEKA 用于二进制分类问题,其中某些指标被用于获得实例的是/否答案。

为了举例说明这个问题,这是我使用 BayesNet 得到的一组包含 288 个实例、190 个“是”和 98 个“否”值的混淆矩阵:

  a   b   <-- classified as
190   0 |   a = yes
 98   0 |   b = no

这种绝对分离也适用于其他一些分类器,但并非所有分类器都是如此。也就是说,即使分类器的值没有极化到这样的程度,它们确实对主要类别有明确的偏见。例如,下面是 RandomForest 的结果:

  a   b   <-- classified as
164  34 |   a = yes
 62  28 |   b = no

我很确定我错过了一些非常明显的东西。

4

1 回答 1

1

最初,我认为 BayesNet 是问题所在。但现在我认为这是你的数据。

正如评论中已经指出的那样,我认为问题出在不平衡的类上。大多数分类器都针对准确性进行了优化,在您的情况下是(190 + 0) / 288 = 0.66针对 BayesNet 和(164 + 28) / 288 = 0.67RandomForest。

如您所见,差异并没有那么大,但是 RandomForest 找到的解决方案稍微好一些。它看起来“更好”,因为它没有把所有东西都放在同一个类中,但我真的怀疑它在统计上是否显着。

就像 Lars Kotthoff 提到的那样,很难说。我还猜想这些功能还不足以实现更好的分离。

除了尝试其他分类器之外,您还应该重新考虑您的性能指标。只有当每个类的实例数量大致相同时,准确性才会好。在其他情况下,MCCAUC是不错的选择(但由于实现不兼容,AUC 不能与 WEKA 中的 LibSVM 一起使用)。

您的示例的 MCC 对于 BayesNet 和

  ((164*28) - (62*34)) / sqrt((164+62)*(34+28)*(164+34)*(62+28))
= (4592 - 2108) / sqrt(226 * 62 * 198 * 90)
= 2484 / sqrt(249693840)
= 0,15719823927071640929

对于随机森林。所以 RandomForest 显示出稍微好一点的结果,但并没有那么好。

如果没有看到您的数据,很难分辨,但它们可能无法很好地分离。

于 2013-03-19T10:56:08.897 回答