如何使用 libsvm 库(Matlab)实现 1 对 1 多类分类?

Posted

技术标签:

【中文标题】如何使用 libsvm 库(Matlab)实现 1 对 1 多类分类?【英文标题】:How to realize a 1 vs 1 multiclass classification using libsvm library (Matlab)? 【发布时间】:2016-03-14 13:07:40 【问题描述】:

如何使用 libsvm 实现一对一的多类分类?请帮我解决这个问题。

我还从这个答案中阅读了一种对所有方法...Full example of multiple-class SVM with cross-validation using Matlab [closed]

我的测试数据:特征和最后一列是标签

D = [

1           1          1           1             1
1           1          1           9             1
1           1          1           1             1
11          11         11          11            2
11          11         11          11            2
11          11         11          11            2
30          30         30          30            3
30          30         30          30            3
30          30         30          30            3
60          60         60          60            4
60          60         60          60            4
60          60         60          60            4
];

我的测试数据是

inputTest = [
    1           1           1           1             
    11          11          11          10            
    29          29          29          30            
    60          60          60          60            
];

【问题讨论】:

【参考方案1】:

LIBSVM 提供了一个 Matlab 接口。包里有一个很好的README如何通过Matlab使用这个接口。

用法如下:

matlab> model = svmtrain(training_label_vector, training_instance_matrix [, 'libsvm_options']);

带有以下参数:

    -training_label_vector:
        An m by 1 vector of training labels (type must be double).
    -training_instance_matrix:
        An m by n matrix of m training instances with n features.
        It can be dense or sparse (type must be double).
    -libsvm_options:
        A string of training options in the same format as that of LIBSVM.

但是,由 12 个示例组成的训练数据不足以构建一个好的 SVM 分类器。您应该获得更多有关训练和测试过程的示例。

【讨论】:

以上是关于如何使用 libsvm 库(Matlab)实现 1 对 1 多类分类?的主要内容,如果未能解决你的问题,请参考以下文章

在 matlab 中添加路径 libsvm 库后的问题

如何设置 LIBSVM Matlab 接口?

缩放 LIBSVM 的测试数据:MATLAB 实现

如何在matlab里安装libsvm包

Matlab 中的 Libsvm 回归预测测试集实例的相同值

如何在 Matlab 中使用 libsvm?