使用 libsvm 训练多类时的数据要求是啥?

Posted

技术标签:

【中文标题】使用 libsvm 训练多类时的数据要求是啥?【英文标题】:What's the data requirements when training multi-class with libsvm?使用 libsvm 训练多类时的数据要求是什么? 【发布时间】:2014-10-14 11:24:10 【问题描述】:

目前我正在使用 libsvm 3.18 进行概率估计的多类分类。是否需要:

    标准化标签。例如,我有 3 个标签的数据:120、125、131,我是否必须将它们转换为 0、1、2?

    按标签对数据进行排序?

OpenCV 的 SVM 有一些代码来“准备数据”,看起来它完成了上述两件事,所以我想问一下使用 libsvm 时是否也是这种情况

【问题讨论】:

【参考方案1】:

libSVM 不需要更改数据的标签或对数据进行排序。 首先,您需要以这种方式转换数据格式: Label 1:value 2:value ... 然后对输入数据进行归一化处理,例如使用 libSVM 中提供的 svm-scale 对数据的各个维度进行缩放。 现在您可以使用 SVM 来训练模型。 更详细的说明可以查看http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf。

【讨论】:

以上是关于使用 libsvm 训练多类时的数据要求是啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 LIBSVM 使用 platt 缩放和交叉验证?

准备我的数据以在 SVM libsvm matlab 中进行训练 [关闭]

libsvm 中的大型训练和测试数据

libSVM的数据格式

使用 LibSVM 训练一类 SVM

即使使用训练数据,LIBSVM 也无法准确预测