首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MATLAB支持向量机10重分类实例

MATLAB支持向量机10重分类实例
EN

Stack Overflow用户
提问于 2010-06-18 23:08:39
回答 1查看 52.7K关注 0票数 22

我需要一个描述性的例子,展示如何在两类数据集上进行10倍SVM分类。在MATLAB文档中只有一个示例,但它不是10倍的。有人能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-06-19 01:44:34

下面是一个完整的示例,使用生物信息学工具箱中的以下函数:SVMTRAINSVMCLASSIFYCLASSPERFCROSSVALIND

代码语言:javascript
复制
load fisheriris                              %# load iris dataset
groups = ismember(species,'setosa');         %# create a two-class problem

%# number of cross-validation folds:
%# If you have 50 samples, divide them into 10 groups of 5 samples each,
%# then train with 9 groups (45 samples) and test with 1 group (5 samples).
%# This is repeated ten times, with each group used exactly once as a test set.
%# Finally the 10 results from the folds are averaged to produce a single 
%# performance estimation.
k=10;

cvFolds = crossvalind('Kfold', groups, k);   %# get indices of 10-fold CV
cp = classperf(groups);                      %# init performance tracker

for i = 1:k                                  %# for each fold
    testIdx = (cvFolds == i);                %# get indices of test instances
    trainIdx = ~testIdx;                     %# get indices training instances

    %# train an SVM model over training instances
    svmModel = svmtrain(meas(trainIdx,:), groups(trainIdx), ...
                 'Autoscale',true, 'Showplot',false, 'Method','QP', ...
                 'BoxConstraint',2e-1, 'Kernel_Function','rbf', 'RBF_Sigma',1);

    %# test using test instances
    pred = svmclassify(svmModel, meas(testIdx,:), 'Showplot',false);

    %# evaluate and update performance object
    cp = classperf(cp, pred, testIdx);
end

%# get accuracy
cp.CorrectRate

%# get confusion matrix
%# columns:actual, rows:predicted, last-row: unclassified instances
cp.CountingMatrix

输出如下:

代码语言:javascript
复制
ans =
      0.99333
ans =
   100     1
     0    49
     0     0

我们在只有一个“setosa”实例被错误分类为“non-setosa”的情况下获得了99.33%准确性。

更新:支持向量机函数已移至R2013a中的统计工具箱

票数 43
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3070789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档