matlab 多维svm分类代码,SVM多分类(matlab)

本文介绍了在Matlab中使用fitcecoc函数进行SVM多维分类的方法,包括二分类和多分类模型的训练。通过鸢尾花数据集和电离层数据集的示例,展示了10折交叉验证降低泛化误差的过程,并以oosLoss作为模型评价指标。
摘要由CSDN通过智能技术生成

1.数据集:采用 matlab2016b 自带数据集:iris鸢尾花、ionosphere电离层数据

2.采用函数 fitcecoc 进行SVM二分类/多分类模型训练;

3.采用10折交叉验证,将Mdl转化为 CVMdl,减少泛化误差

4.将泛化误差ossLoss作为模型的评价指标

示例1:鸢尾花数据集iris

function [CVMdl,oosLoss]=SVM3()

load fisheriris

X = meas; %150*4 :150个样本,4个特征(萼长、萼宽、瓣长、瓣宽);meas=measure(长度)

Y = species; %三种属性{'setosa','versicolor','virginica'};species(种类)

t = templateSVM('Standardize',1); %创建SVM模板t

%训练该模型

Mdl = fitcecoc(X,Y,'Learners',t,'ClassNames',{'setosa','versicolor','virginica'});

%验证该模型

CVMdl = crossval(Mdl); %将模型进行交叉验证,减少过拟合的影响

%显示结果

oosLoss = kfoldLoss(CVMdl) %10折交叉验证得到的泛化误差 oosloss =0.033,效果很好

结果如下:

>> [CVMdl,oosLoss

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值