首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MATLAB中找到SVM分类器的得分?

如何在MATLAB中找到SVM分类器的得分?
EN

Stack Overflow用户
提问于 2015-02-07 04:54:54
回答 1查看 3.5K关注 0票数 1

我目前正在做一个关于多式生物识别的项目(分数级的融合)。所以我需要在融合前得到分数。有人能告诉我如何使用经过训练的SVM分类器来获取特定测试样本的分数吗?

我在MATLAB中使用了内置的svmtrainsvmclassify函数。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-07 08:56:46

不幸的是,svmclassify函数只输出类的标签,没有距离(分数)。您必须编写自己的分类函数。幸运的是,这非常容易:因为您有带有svmclassify的统计工具箱,所以您可以轻松地使用

代码语言:javascript
复制
edit svmclassify

您将看到大部分功能是检查输入等。重要的部分是缩放数据:

代码语言:javascript
复制
sample(:,c) = svmStruct.ScaleData.scaleFactor(c) * ...
              (sample(:,c) +  svmStruct.ScaleData.shift(c));

并使用内置函数svmdecision进行分类。

代码语言:javascript
复制
outclass = svmdecision(sample,svmStruct);

svmdecision的定义中可以看出,它输出了距离f,但是svmclassify忽略了它。因此,您可以轻松地创建一个新函数,它看起来与svmclassify非常相似,但也可以返回f

代码语言:javascript
复制
1   function [outclass,f] = svmclassify(svmStruct,sample, varargin)
...
112    [outclass,f] = svmdecision(sample,svmStruct);
...
158    outclass = []; f = [];

您会发现svmdecision是一个私有功能。要从函数中调用它,您必须在本地文件夹(或任何子文件夹)中创建一个副本。

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

https://stackoverflow.com/questions/28378722

复制
相关文章

相似问题

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