gpt4 book ai didi

machine-learning - LibSVM - 具有不平衡数据的多类分类

转载 作者:行者123 更新时间:2023-11-30 09:10:09 26 4
gpt4 key购买 nike

我尝试使用 libsvm 和 3D 描述符来执行对象识别。到目前为止,我有 7 个类别的对象,对于每个类别,我都有其对象数量(及其倾注量):

类别 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 正在执行“一对一”(因此是一个二元分类器),但当我有多个类时我不知道如何处理它。

你能帮我一下吗?

预先感谢您的帮助。

最佳答案

我以前也遇到过同样的问题。我也尝试给它们不同的权重,但没有成功。

我建议您使用数据集的子集进行训练。

尝试使用大致相同数量的不同类别样本。您可以使用所有类别 4 和 6 样本,然后为每个其他类别选取大约 150 个样本。

我用了这个方法,准确率确实提高了。希望这对您有帮助!

关于machine-learning - LibSVM - 具有不平衡数据的多类分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41592828/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com