2016-12-05 79 views
0

我想在一组约1000个对象中运行一个分类器,每个对象都有6个浮点变量。我已经使用scikit-learn的交叉验证功能为几个不同的模型生成预测值的数组。然后我用sklearn.metrics来计算我的分类器和混淆表的准确性。大多数分类器具有大约20-30%的准确度。以下是SVC分类器的混淆表(精确度为25.4%)。评估多类分类器性能的好指标是什么?

enter image description here

由于我是新来的机器学习,我不知道如何解释这一结果,以及是否有其他好的指标来评估这个问题。直觉上,即使有25%的准确性,并且鉴于分类器有25%的预测是正确的,我相信它至少有些有效,对吧?我如何用统计参数来表达?

回答

0

如果这个表格是一个混淆表,我认为你的分类器在大多数情况下预测了E类。我认为你的E类在你的数据集中被过度表示,如果你的类没有,精度不是一个好的指标 示例如果您有3个类,A,B和C,并且在测试数据集中,如果您的分类器预测了所有时间类A,则类A会被过度表示(90%),您将拥有90%的准确性,

一个很好的指标是使用日志丢失,回归是一个很好的算法,优化这个指标 看到https://stats.stackexchange.com/questions/113301/multi-class-logarithmic-loss-function-per-class

的其他的解决方案,就是对你的小类进行过采样

0

首先,我发现很难查看混淆表。将它绘制成图像可以更好地直观地理解正在发生的事情。

建议您使用单个数字度量标准进行优化,因为它更简单快捷。当您发现系统无法达到您的预期效果时,请修改您选择的指标。

如果您在每个班级中都有相同数量的示例,则准确度通常是一个很好的指标。否则(在这里似乎是这种情况),我建议使用F1 score,它考虑到您的估算器的precision and recall

编辑:然而,它是由你决定是否约25%的准确性,或任何指标是“足够好”。如果您正在分类机器人是否应该拍摄一个人,那么您应该修改算法,但如果您决定是伪随机数据还是随机数据,则25%的准确性可能足以证明这一点。