多类支持向量机分类

Posted

技术标签:

【中文标题】多类支持向量机分类【英文标题】:multi-class support vector machine classification 【发布时间】:2013-08-31 19:58:56 【问题描述】:

我尝试使用一对一的方式运行自己的 svm 代码,但我在选择的函数中出现错误(c,sigma)和绘图函数中的错误,我希望你能帮我,这是代码

clear
clc
close all
%load the data
load dataset
load spacies
[~,~,group] = unique(spacies);
data=dataset(1:12,1:19);
xdata=zscore(data);
%group=spacies(1:end,1);
p=0.5;
[train,test]=crossvalind('HoldOut',group,p);
trainingsample=xdata(train,:);
traininglabel=group(train,1);
testingsample=xdata(test,:);
testinglabel=group(test,1);
numclass=max(group);
for i=1:numclass
    for j=i+1:numclass
        inij=(traininglabel==i)|(traininglabel==j);
        trainingsampleij=trainingsample(inij,:);
        traininglabelij=traininglabel(inij,:);
        %%k-fold using training data
        numfold=8;
        indices=crossvalind('kfold',traininglabelij,numfold);
        sigma=2.^(-10:1:10);
        C=2.^(-5:1:5);
        [bestsigma,bestC]=BestParametersRBF(trainingsampleij,...
                           traininglabelij,sigma,C,indices,numfold);
        %%performance
        svmStruct=svmtrain(trainingsampleij,traininglabelij,...
             'showplot',true,'kernel_function','rbf','rbf_sigma',bestsigma,...
             'boxconstraint',bestC);
        title(sprintf('Kernel Function: %s','rbf',...
              func2str(svmStruct.KernelFunction)),...
                       'interpreter','none');
        classes=svmclassify(svmStruct,testingsample,'showplot',true);
     end
 end
 acc=mean(grp2idx(classes)==grp2idx(testinglabel));

【问题讨论】:

你可以通过谷歌搜索得到答案stats.stackexchange.com/questions/19048/… 【参考方案1】:

训练数据是用于训练分类器的数据(例如 SVM)。

测试数据用于测试训练好的分类器的性能。

【讨论】:

谢谢 GilLevi...但是你能告诉我如何从矩阵输入(1 个 rawx3600 列)进行测试和训练吗? 我不太明白您的数据是如何组织的。请解释一下。 嗨 GilLevi..你能帮我找出上面代码中的错误吗【参考方案2】:

两者都包含一组 (x, y) 对,其中 x 是输入向量,y 是输出(就像 x 所属的类)。但它们在使用和应用阶段不同。

当参数值不固定时,训练数据用于确定模型的参数值(有时是模型的形式)。

在参数完全固定后使用测试数据来测试模型的质量(如精度或召回率)。严格来说,你不能使用测试数据来调整任何参数,包括模型复杂度参数。测试数据仅用于测试

开发数据集(通常与训练集分开)用于调整模型复杂度参数。

【讨论】:

非常感谢张博......数据中的空间是什么意思,我该如何创建它

以上是关于多类支持向量机分类的主要内容,如果未能解决你的问题,请参考以下文章

多类支持向量机分类

Scikit 学习支持向量机的多类分类

理解支持向量机

使用 scikit-learn 对多类支持向量机进行参数优化

支持向量机在 R语言中的实现和使用

学界 | 代替支持向量机,南大周志华组提出多类最优边界分配机mcODM