用于多类数据集的Matlab SVM训练



我有一个关于SVM MATLAB工具箱2009b的问题!问题是:

如何在MATLAB工具箱2009b中训练SVM分类器来对多类数据集进行分类?

我只想使用MATLAB工具箱,所以如果有实现它的方法,请回答。例如,下面的代码用于对两类数据集进行分类:

svmtrain( training data,              ...
          labels of training data,    ...
          'Kernel_Function',          ...
          'rbf',                      ...
          'RBF_Sigma',                ...
          sigma value,                ...
          'Method',                   ...
          'LS',                       ...
          'BoxConstraint',            ...
          C                           ...
          ); 

我想知道有没有一种方法可以通过编写上面的代码来训练多类数据集的SVM,或者我应该为每个类编写一些代码来训练SVM,而不是为其他类?

这意味着,我是否应该将1作为所选类的标签,并将其他类的标签设置为0,然后用上面的代码训练SVM,并对所有类都这样做!?

感谢您的考虑:-)

我没有在Matlab中使用SVM,所以其他人可能会提供更明智的回应,但我会分享我所学到的。

Matlab生物信息学工具箱SVM

从阅读文档来看,生物信息学工具箱中的SVM似乎只支持二进制分类。正如问题中所建议的,经过一些努力,可以使用二进制分类器将其分类为多个类。在支持向量机的背景下,有一些关于实现这一点的方法的讨论。

备用选项

LIBSVM确实支持多类分类,并配有Matlab接口。你可以尝试安装并使用它。

此外,在研究这个问题时,我确实遇到了其他几个带有SVM实现的Matlab工具箱。如果LIBSVM对您来说不是一个好的选择,那么可能值得四处看看不同的SVM实现是否适合您的需求。

如果您有MATLAB R2014b或更高版本,您可以使用统计和机器学习工具箱中的fitcedoc函数来训练多类SVM。

是的,解决问题的方法是实施一对一策略。SVM的不足之一是它没有直接的多分类实现。但是您可以通过二进制分类来实现它。我在matlab中没有看到任何支持向量机多分类的函数。但我认为自己实现

并不难

最新更新