我尝试使用 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 正在做“一对一”(所以是一个二进制分类器),但是当我有多个类时我不知道如何处理它。
请你帮助我好吗 ?
预先感谢您的帮助。