#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
#include "ml.h"
#include #include #include using namespace std;
int main(int argc, char* argv)
else
else
}} // 學習資料的現實
cvnamedwindow("svm",cv_window_autosize);
cvshowimage("svm",img);
cvwaitkey(0);
// 學習引數的生成
for (i=0;icvinitmatheader(&data_mat,s,2,cv_32fc1,data);
cvinitmatheader(&res_mat,s,1,cv_32sc1,res);
criteria = cvtermcriteria(cv_termcrit_eps,1000,flt_epsilon);
param = cvsvmparams(cvsvm::c_svc,cvsvm::rbf,10.0,8.0,1.0,10.0,0.5,0.1,null,criteria);
// svm type:cvsvm::c_svc kernel:cvsvm::rbf degree:10.0 gamma:8.0 coef0:1.0
svm.train(&data_mat,&res_mat,null,null,param);
// 學習結果繪圖
for (i=0;i; cvinitmatheader(&m,1,2,cv_32fc1,a);
ret = svm.predict(&m);
switch((int)ret)
cvset2d(img,i,j,rcolor);
} }// 為了顯示學習結果,通過對輸入影象區域的所有畫素(特徵向量)進行分類,然後對輸入的畫素用所屬顏色等級的顏色繪圖
for(i=0;icvline(img,cvpoint(pts[i].x-2,pts[i].y-2),cvpoint(pts[i].x+2,pts[i].y+2),rcolor);
cvline(img,cvpoint(pts[i].x+2,pts[i].y-2),cvpoint(pts[i].x-2,pts[i].y+2),rcolor);
} // 支援向量的繪製
sv_num = svm.get_support_vector_count();
for (i=0; icvnamedwindow("svm",cv_window_autosize);
cvshowimage("svm",img);
cvwaitkey(0);
cvdestroywindow("svm");
cvreleaseimage(&img);
return 0;
}
svm 多類劃分問題
一般情況下svm有兩種多類劃分的方法,一種是one vs rest另外一種是pairwise。下面是我根據所閱讀的文獻對兩種多類劃分的理解,請大蝦看看是否正確,並且還附帶有問題 1 one vs rest。假如我有四類要劃分 也就是4個label 他們是a b c d。於是我在抽取訓練集的時候,分別...
SVM多類劃分問題
一般情況下svm有兩種多類劃分的方法,一種是one vs rest另外一種是pairwise。1 one vs rest。假如我有四類要劃分 也就是4個label 他們是a b c d。於是我在抽取訓練集的時候,分別抽取a所對應的向量作為正集,b,c,d所對應的向量作為負集 b所對應的向量作為正集,...
svm的多類分類問題
最近在看svm用於說話人識別,需要對訓練語音進行正負類區分,從而訓練合適的分類面。現在把自己看的東西大致總結一下,如果有錯的,或者不明白的,請指出,謝謝!傳統的svm使用與說話人確認,因為svm是乙個二分類,而確認也是乙個二分問題,接受 或 拒絕 將目標說話人作為正類,選取合適的冒認者集合作為負類,...