【发布时间】:2017-05-26 08:37:11
【问题描述】:
我尝试使用 libsvm 和 3D 描述符来执行对象识别。到目前为止,我有 7 类对象,并且对于每个类别,我都有其对象数量(及其 pourcentage):
类别 1. 492 (14%)
类别 2. 574 (16%)
类别 3。738 (21%)
第 4 类。 164 (5%)
第 5 类。 369 (10%)
第 6 类。 123 (3%)
第 7 类。 1025 (30%)
所以我总共有 3585 个对象。
我遵循了 libsvm 的实用指南。 这里提醒一下:
A.扩展训练和测试 B. 交叉验证 C. 培训 D. 测试
我将数据分为训练和测试。 通过进行 5 次交叉验证过程,我能够确定好的 C 和 Gamma。
但是我得到了糟糕的结果(CV 大约是 30-40,我的准确率大约是 50%)。
然后,我在考虑我的数据,发现我有一些不平衡的数据(例如类别 4 和 6)。我发现在 libSVM 上有一个关于权重的选项。这就是为什么我现在想设置好的权重。
到目前为止,我正在这样做:
svm-train -c cValue -g gValue -w1 1 -w2 1 -w3 1 -w4 2 -w5 1 -w6 2 -w7 1
但是结果是一样的。我确信这不是这样做的好方法,这就是为什么我请你帮忙。 我看到了一些关于该主题的主题,但它们与二元分类而不是多类分类有关。 我知道 libSVM 正在做“一对一”(所以是一个二进制分类器),但是当我有多个类时我不知道如何处理它。
你能帮帮我吗?
提前感谢您的帮助。
【问题讨论】:
标签: machine-learning classification svm libsvm multiclass-classification