SVM熟练到精通5:MATLAB实例
生活随笔
收集整理的這篇文章主要介紹了
SVM熟练到精通5:MATLAB实例
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.源代碼
clc; clear all; close all; load fisheriris; %matlab自帶分類數(shù)據(jù)集fisheriris,來源于http://archive.ics.uci.edu/ml/ 中的risi數(shù)據(jù), %其數(shù)據(jù)類別分為3類,setosa,versicolor,virginica.每類植物有50個樣本,共150個。 %每個樣本有4個屬性,分別為花萼長,花萼寬,花瓣長,花瓣寬。%其中meas是150*4的矩陣代表著有150個樣本每個樣本有4個屬性描述 %species代表著這150個樣本的分類.data = [meas(:,1),meas(:,2)]; %構(gòu)建測試數(shù)據(jù) %在這里只取meas的第一列和第二列,即只選取前兩個特征groups = ismember(species,'setosa'); %構(gòu)建測試結(jié)果 %由于species分類中是有三個分類:setosa,versicolor,virginica %為了使問題簡單,我們將其變?yōu)槎诸悊栴}:Setosa and non-Setosa.[train,test] = crossvalind('holdOut',groups,0.5); %生成交叉驗證指標(biāo) [Train, Test] = crossvalind('HoldOut', N, P) %返回一個邏輯值的標(biāo)記向量,從N個觀察樣本中隨機(jī)選取(或近似于)P*N個樣本作為測試集。 %故P應(yīng)為0-1,缺省值為0.5。cp = classperf(groups); %評估分類器性能svmStruct = svmtrain(data(train,:),groups(train),'showplot',true); %訓(xùn)練支持向量機(jī)分類器 %使用svmtrain進(jìn)行訓(xùn)練,得到訓(xùn)練后的結(jié)構(gòu)svmStruct,在預(yù)測時使用classes = svmclassify(svmStruct,data(test,:),'showplot',true); %對于未知的測試集進(jìn)行分類預(yù)測 SVMStruct = svmtrain(Training,Group,Name,Value) %Training:訓(xùn)練數(shù)據(jù)矩陣,每一行對應(yīng)一個觀察,每一列對應(yīng)一個特征或變量; % svmtrain對NAN在訓(xùn)練或空字符串為缺失值,忽略了相應(yīng)的行組。 %Group:分組變量 %Name:有很多特性,畫圖、核函數(shù)選擇、階數(shù)、優(yōu)化算法等 %SVMStruct:訓(xùn)練后的SVM信息 支持向量、核函數(shù)等classperf(cp,classes,test); cp.CorrectRate; %分類器效果測評,就是看測試集分類的準(zhǔn)確率的高低2.分類結(jié)果
總結(jié)
以上是生活随笔為你收集整理的SVM熟练到精通5:MATLAB实例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 作为一个女程序员,无奈!
- 下一篇: 飞秋 下的命令