我试图在一组约1000个对象中运行一个分类器,每个对象有6个浮点变量。我使用了scikit-learn的交叉验证功能来生成几个不同模型的预测值数组。然后,我使用sklearn.metrics
来计算分类器和混淆表的准确性。大多数分类器的准确度约为20-30%。下面是SVC分类器的混淆表(精度为25.4%)。
由于我是机器学习的新手,我不确定如何解释该结果,以及是否有其他好的指标来评估问题。直观地说,即使准确度达到25%,并且鉴于分类器的预测值达到了25%,我相信它至少在某种程度上是有效的,对吧?我怎么能用统计参数来表达呢?
答案 0 :(得分:1)
如果此表格是一个混淆表,我认为您的分类器在大多数情况下预测了E类。我认为您的E类在您的数据集中过多,如果您的类没有,则准确性不是一个好的指标相同数量的实例, 例如,如果您有3个类,A,B,C,并且在测试数据集中,如果您的分类器预测所有时间类A,则A类过度表示(90%),您将具有90%的准确度,
一个好的指标是使用日志丢失,逻辑回归是一种优化此指标的好算法 见https://stats.stackexchange.com/questions/113301/multi-class-logarithmic-loss-function-per-class
另一种解决方案是对小班进行过采样
答案 1 :(得分:-1)
首先,我发现很难看到混淆表。将其绘制成图像可以更直观地了解正在发生的事情。
建议使用单一数字指标进行优化,因为它更容易,更快捷。当您发现系统无法按预期执行时,请修改您选择的指标。
如果每个班级都有相同数量的例子,那么准确性通常是一个很好的指标。否则(这似乎是这里的情况)我建议使用F1 score,其中考虑了估算器的precision and recall。
编辑:但是,您需要决定〜25%的准确度,或任何指标是否“足够好”。如果你正在分类机器人是否应该射击一个人你应该修改你的算法,但如果你决定它是伪随机数据还是随机数据,那么25%的准确率可能足以证明这一点。