如何使用libsvm進(jìn)行分類_第1頁
如何使用libsvm進(jìn)行分類_第2頁
如何使用libsvm進(jìn)行分類_第3頁
如何使用libsvm進(jìn)行分類_第4頁
如何使用libsvm進(jìn)行分類_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

這帖子就是初步教教剛接觸libsvm(svm)的同學(xué)如何利用libsvm進(jìn)行分類預(yù)測(cè),關(guān)于參數(shù)尋優(yōu)的問題在這里姑且不談,另有帖子詳述。其實(shí)使用libsvm進(jìn)行分類很簡(jiǎn)單,只需要有屬性矩陣和標(biāo)簽,然后就可以建立分類模型(model),然后利用得到的這個(gè)model進(jìn)行分類預(yù)測(cè)了。那神馬是屬性矩陣?神馬又是標(biāo)簽?zāi)兀课遗e一個(gè)直白的不能在直白的例子:說一個(gè)班級(jí)里面有兩個(gè)男生(男生1、男生2),兩個(gè)女生(女生1、女生2),其中男生1身高:176cm體重:70kg;男生2身高:180cm體重:80kg;女生1身高:161cm體重:45kg;女生2身高:163cm體重:47kg;如果我們將男生定義為1,女生定義為-1,并將上面的數(shù)據(jù)放入矩陣data中,即1.data=[17670;2.18080;3.16145;4.16347];復(fù)制代碼在label中存入男女生類別標(biāo)簽(1、-1),即label=復(fù)制代碼這樣上面的data矩陣就是一個(gè)屬性矩陣,行數(shù)4代表有4個(gè)樣本,列數(shù)2表示屬性有兩個(gè),label就是標(biāo)簽(1、-1表示有兩個(gè)類別:男生、女生)。Remark:這里有一點(diǎn)廢話一些(因?yàn)槲铱吹讲恢挂粋€(gè)朋友問我這個(gè)相關(guān)的問題):上面我們將男生定義為1女生定義為-1那定義成別的有影響嗎?這個(gè)肯定沒有影響?。。ㄓ媚_趾頭都能想出來,我不知道為什么也會(huì)有人問),這里面的標(biāo)簽定義就是區(qū)分開男生和女生,怎么定義都可以的,只要定義成數(shù)值型的就可以。比如我可將將男生定義為2,女生定義為5;后面的label相應(yīng)為label=[2;2;5;5];比如我可將將男生定義為18,女生定義為22;后面的label相應(yīng)為label=[18;18;22;22];為什么我說這個(gè)用腳趾頭都能想怎么定義都可以呢?學(xué)過數(shù)學(xué)的應(yīng)該都會(huì)明白,將男生定義為1,女生定義為-1和將男生定義為2,女生定義為5本質(zhì)是一樣的,應(yīng)為可以找到一個(gè)映射將(2,5)轉(zhuǎn)換成(1,-1),so所以本質(zhì)都是一樣的,后面的18、22本質(zhì)也是一

樣的。這里要多說一些,如果你原本的數(shù)據(jù)集合的標(biāo)簽不是數(shù)值型的(比如a、b、c)那么你完全可以通過某種轉(zhuǎn)換映射將不是數(shù)值型的標(biāo)簽轉(zhuǎn)換成數(shù)值型的。現(xiàn)在回歸正題,有了上面的屬性矩陣data,和標(biāo)簽labeI就可以利用libsvm建立分類模型了,簡(jiǎn)要代碼如下:model=svmtrain(label,data);復(fù)制代碼有了model我們就可以做分類預(yù)測(cè),比如此時(shí)該班級(jí)又轉(zhuǎn)來一個(gè)新學(xué)生,其身高190cm,體重85kg我們想通過上面這些信息就給出其標(biāo)簽(想知道其是男【1】還是女【-1】)比如令testdata=[19085];由于其標(biāo)簽我們不知道,我們假設(shè)其標(biāo)簽為-1(也可以假設(shè)為1)Remark:這里又有一點(diǎn)廢話一些(因?yàn)槲铱吹讲恢挂粋€(gè)朋友問我這個(gè)相關(guān)的問題):如果測(cè)試集合的標(biāo)簽沒有怎么辦?測(cè)試集合的標(biāo)簽就應(yīng)該沒有,否則測(cè)試集合的標(biāo)簽都有了,還預(yù)測(cè)你妹啊?。繘]有是正確的,就像上面一樣,新來的學(xué)生其標(biāo)簽咱不應(yīng)知道,就想通過其屬性矩陣來預(yù)測(cè)其標(biāo)簽,這才是預(yù)測(cè)分類的真正目的。之所以平時(shí)做測(cè)試時(shí),測(cè)試集合的標(biāo)簽一般都有,那是因?yàn)橐话闳藗兿胍纯醋约旱姆诸惼鞯男Ч绾?,效果的評(píng)價(jià)指標(biāo)之一就是分類預(yù)測(cè)的準(zhǔn)確率,這就需要有測(cè)試集的本來的真實(shí)的標(biāo)簽來進(jìn)行分類預(yù)測(cè)準(zhǔn)確率的計(jì)算。話歸正傳,即testdatalabel=-1;然后利用libsvm來預(yù)測(cè)這個(gè)新來的學(xué)生是男生還是女生,代碼如下:[predictlabel,accuracy]=svmpredict(testdatalabel,testdata,model)復(fù)制代碼下面我們整體運(yùn)行一下上面這段惡搞[egao]的背景數(shù)據(jù)和代碼(你別笑,這個(gè)是真能運(yùn)行的,也有結(jié)果的):data=[17670;18080;16145;16347];

label=[1;1;-1;-1];6.model=svmtrain(label,data);8.testdata=[19085];testdatalabel=-1;11.[predictlabel,accuracy]=svmpredict(testdatalabel,testdata,model);predictlabel復(fù)制代碼運(yùn)行結(jié)果如下:Accuracy=0%(0/1)(classification)predictlabel=1復(fù)制代碼哎,我們看到,通過預(yù)測(cè)我們得知這個(gè)新來的學(xué)生的標(biāo)簽是1(男生),由于原本我們假設(shè)其標(biāo)簽為-1,假設(shè)錯(cuò)誤,所以分類準(zhǔn)確率為0%。好,通過上面的講解,不知道諸位看官對(duì)于利用libsvm進(jìn)行分類是否有了一定了解【誰要是這么通俗的例子還搞不清楚怎么使用libsvm進(jìn)行分類,那我真無語啦】,下面使用libsvm工具箱本身帶的測(cè)試數(shù)據(jù)heart_scale來實(shí)際進(jìn)行一下測(cè)試:%%HowToClassifyUsingLibsvm%byfaruto@faruto'sStudio~%/faruto%Email:faruto@163.com%%http://www.mfun.la%%lastmodifiedby2010.12.27%%alittecleanworktic;closeall;44.[ptest,acctest]=svmpredict(testlabel,testdata,model);44.[ptest,acctest]=svmpredict(testlabel,testdata,model);12.clear;12.clear;clc;formatcompact;%%16.%首先載入數(shù)據(jù)loadheart_scale;data=heart_scale_inst;label=heart_scale_label;21.%選取前200個(gè)數(shù)據(jù)作為訓(xùn)練集合,后70個(gè)數(shù)據(jù)作為測(cè)試集合ind=200;traindata=data(1:ind,:);trainlabel=label(1:ind,:);testdata=data(ind+1:end,:);testlabel=label(ind+1:end,:);28.%利用訓(xùn)練集合建立分類模型model=svmtrain(trainlabel,traindata,'-s0-t2-c1.2-g2.8');31.%分類模型model解密modelParameters=model.ParametersLabel=model.Labelnr_class=model.nr_classtotalSV=model.totalSVnSV=model.nSV39.%利用建立的模型看其在訓(xùn)練集合上的分類效果[ptrain,acctrain]=svmpredict(trainlabel,traindata,model);42.%預(yù)測(cè)測(cè)試集合標(biāo)簽

45.%%toe;復(fù)制代碼運(yùn)行結(jié)果:1.model2.Parameters:[5x1double]3.nr_class:24.totalSV:1975.rho:0.05836.Label:[2x1double]7.ProbA:[]8.ProbB:[]9.nSV:[2x1double]10.sv_coef:[197x1double]11.SVs:[197x13double]ParametersTOC\o"1-5"\h\z02.00003.00002.80000Label=1-1nr_class=2totalSV=197nSV=8927.27.108Accuracy=99.5%(199/200)(classification)Accuracy=68.5714%(48/70)(classification)Elapsedtimeis0.040873seconds.>>復(fù)制代碼上面的代碼基本我不想多說什么。只是說一下參數(shù)輸入的意義:-ssvm類型:SVM設(shè)置類型(默認(rèn)0)0--C-SVC--v-SVC-一類SVM--e-SVR--v-SVR-t核函數(shù)類型:核函數(shù)設(shè)置類型(默認(rèn)2)0一線性:u'v一多項(xiàng)式:(r*u'v+coefO)人degree一RBF函數(shù):exp(-r|u-v|人2)-sigmoid:tanh(r*u'v+coef0)-gr(gama):核函數(shù)中的gamma函數(shù)設(shè)置(針對(duì)多項(xiàng)式/rbf/sigmoid核函數(shù))-ccost:設(shè)置C-SVC,e-SVR和v-SVR的參數(shù)(損失函數(shù))(默認(rèn)1)更多關(guān)于libsvm參數(shù)的說明請(qǐng)看libsvm參數(shù)說明【中英文雙語版本】/forum-v...-fromuid-18677.html還有關(guān)于建立的分類模型modelmodel=2.Parameters:[5x1double]4.5.nrclass:25.nrclass:26?7.totalSV:1978.9.rho:0.058310.11.Label:[2x1double]12.13.ProbA:[]14.15.ProbB:[]16.17.nSV:[2x1double]18.19.sv_coef:[197x1double]20.21.復(fù)制代碼SVs:[197x13double]因?yàn)楹枚嗯笥逊从痴f,比如想得到支持向量,還有model中的一些參看看不懂等等等等些列問題,會(huì)在后面的分類模型model解密詳解中說明利用libsvm-mat建立分類模型model參數(shù)解密【byfaruto】/thread-126

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論