基于 MATLAB fitcsvm 的 OVR SVM 多分类器实现

本代码参考 MATLAB 官方例程,实现 SVM 多分类器(one-versus-rest)。对于未知标签的测试集,初始化中测试样本的标签,以及结果分析中的验证部分可忽略。

OVR SVM

一对多(one-versus-rest)模型的基本策略:训练时依次将某一类别的样本归为正样本集,其余类的样本归为负样本集;这样对于拥有 nnn 种类型的样本集就可以构造出 nnn 个二分类器。

一般取获得最高分数的分类器对应的正样本集,为当前测试样本的类;对于所有分类器输出负分数的情况,此时测试样本可能不属于任一分类器对应的正样本类;对于多个分类器输出正分数的情况,可以考虑进行多一步骤的判决。

clear;
close all;

%--------------------------------- 初始化 --------------------------------%
% X % 训练样本, 第一个维度为样本数, 第二个维度为特征数
% testX % 测试样本
% Y % 训练样本的标签; 字符向量元胞数组表示
% testY % 测试样本的标签

%----------------------------- 训练一对多分类器 ---------------------------%
classes = unique(Y); % 标签排序去重
SVMModels = cell(size(classes,1),1); % 储存分类器的元胞数组

for j = 1:numel(classes)
	% 通过字符串比较为分类器设置标签, 仅 classes{
   
   
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值