matlab 多维svm分类代码,SVM多分类(matlab)
1.數(shù)據(jù)集:采用 matlab2016b 自帶數(shù)據(jù)集:iris鳶尾花、ionosphere電離層數(shù)據(jù)
2.采用函數(shù) fitcecoc 進(jìn)行SVM二分類/多分類模型訓(xùn)練;
3.采用10折交叉驗(yàn)證,將Mdl轉(zhuǎn)化為 CVMdl,減少泛化誤差
4.將泛化誤差ossLoss作為模型的評(píng)價(jià)指標(biāo)
示例1:鳶尾花數(shù)據(jù)集iris
function [CVMdl,oosLoss]=SVM3()
load fisheriris
X = meas; %150*4 :150個(gè)樣本,4個(gè)特征(萼長(zhǎng)、萼寬、瓣長(zhǎng)、瓣寬);meas=measure(長(zhǎng)度)
Y = species; %三種屬性{'setosa','versicolor','virginica'};species(種類)
t = templateSVM('Standardize',1); %創(chuàng)建SVM模板t
%訓(xùn)練該模型
Mdl = fitcecoc(X,Y,'Learners',t,'ClassNames',{'setosa','versicolor','virginica'});
%驗(yàn)證該模型
CVMdl = crossval(Mdl); %將模型進(jìn)行交叉驗(yàn)證,減少過(guò)擬合的影響
%顯示結(jié)果
oosLoss = kfoldLoss(CVMdl) %10折交叉驗(yàn)證得到的泛化誤差 oosloss =0.033,效果很好
結(jié)果如下:
>> [CVMdl,oosLoss]=SVM3()
CVMdl =
classreg.learning.partition.ClassificationPartitionedECOC
CrossValidatedModel: 'ECOC'
PredictorNames: {'x1'? 'x2'? 'x3'? 'x4'}
ResponseName: 'Y'
NumObservations: 150
KFold: 10
Partition: [1x1 cvpartition]
ClassNames: {'setosa'? 'versicolor'? 'virginica'}
ScoreTransform: 'none'
Properties, Methods
oosLoss =
0.0333333333333333
示例2:電離層數(shù)據(jù)二分類
%matlab自帶電離層
load ionosphere;
%使用默認(rèn)選項(xiàng)訓(xùn)練ECOC多類模型
model_2 =fitcecoc(X,Y);
%創(chuàng)建一個(gè)SVM模板
t_2 = templateSVM('Standardize',1);
%接下來(lái)訓(xùn)練ECOC分類器
model_2 = fitcecoc(X,Y,'Learners',t_2);
%使用10倍交叉驗(yàn)證交叉驗(yàn)證Mdl
CVmodel_2 =crossval(model_2);
%估算泛化誤差
oosLoss_2 = kfoldLoss(CVmodel_2);
結(jié)果:
>> [CVmodel_2,oosLoss_2]=SVM31()
CVmodel_2 =classreg.learning.partition.ClassificationPartitionedECOC
CrossValidatedModel: 'ECOC'PredictorNames: {1x34 cell}
ResponseName: 'Y'NumObservations: 351KFold: 10Partition: [1x1 cvpartition]
ClassNames: {'b' 'g'}
ScoreTransform: 'none'Properties, Methods
oosLoss_2 =
0.113960113960115
參考資料:
1.官方文檔:https://www.mathworks.com/help/stats/fitcecoc.html
2.代碼參考:fitcecoc的其他數(shù)據(jù)集嘗試: https://blog.csdn.net/kekeicon/article/details/72812097,作者:kekeicon
3.matlab自帶數(shù)據(jù)集一覽:https://ww2.mathworks.cn/help/stats/sample-data-sets.html
總結(jié)
以上是生活随笔為你收集整理的matlab 多维svm分类代码,SVM多分类(matlab)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 颈椎前路caspar撑开器_“骨质增生”
- 下一篇: matlab 画三维花瓶,精美花瓶建模教