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