1樓:匿名使用者
其實使用libsvm進行分類很簡單,只需要有屬性矩陣和標籤,然後就可以建立分類模型(model),然後利用得到的這個model進行分類**了。
一、屬性矩陣和標籤:
一個班級裡面有兩個男生(男生1、男生2),兩個女生(女生1、女生2),其中
男生1 身高:176cm 體重:70kg;
男生2 身高:180cm 體重:80kg;
女生1 身高:161cm 體重:45kg;
女生2 身高:163cm 體重:47kg;
如果將男生定義為1,女生定義為-1,並將上面的資料放入矩陣data中,即
data = [176 70;
180 80;
161 45;
163 47];
複製**
在label中存入男女生類別標籤(1、-1),即
label = [1;1;-1;-1];
複製**
這樣上面的data矩陣就是一個屬性矩陣,行數4代表有4個樣本,列數2表示屬性有兩個,label就是標籤(1、-1表示有兩個類別:男生、女生)。
二、有了上面的屬性矩陣data,和標籤label就可以利用libsvm建立分類模型了,簡要**如下:
model = svmtrain(label,data);
複製**
有了model就可以做分類**,比如此時該班級又轉來一個新學生,其
身高190cm,體重85kg
想通過上面這些資訊就給出其標籤(想知道其是男還是女【-1】)
比如 令 testdata = [190 85]; 由於其標籤不知道,假設其標籤為-1(也可以假設為1)
即testdatalabel = -1;
然後利用libsvm來**這個新來的學生是男生還是女生,**如下:
[predictlabel,accuracy] = svmpredict(testdatalabel,testdata,model)
複製**
下面整體執行一下上面這段的背景資料和**:
data = [176 70;
180 80;
161 45;
163 47];
label = [1;1;-1;-1];
model = svmtrain(label,data);
testdata = [190 85];
testdatalabel = -1;
[predictlabel,accuracy] = svmpredict(testdatalabel,testdata,model);
predictlabel
複製**
執行結果如下:
accuracy = 0% (0/1) (classification)
predictlabel =
2樓:山水阿銳
%%% 首先載入資料
load heart_scale;
data = heart_scale_inst;
label = heart_scale_label;
% 選取前200個資料作為訓練集合,後70個資料作為測試集合
ind = 200;
traindata = data(1:ind,:);
trainlabel = label(1:ind,:);
testdata = data(ind+1:end,:);
testlabel = label(ind+1:end,:);
% 利用訓練集合建立分類模型
model = svmtrain(trainlabel,traindata,'-s 0 -t 2 -c 1.2 -g 2.8');
% 分類模型model解密
model
parameters = model.parameters
label = model.label
nr_class = model.nr_class
totalsv = model.totalsv
nsv = model.nsv
% 利用建立的模型看其在訓練集合上的分類效果
[ptrain,acctrain] = svmpredict(trainlabel,traindata,model);
% **測試集合標籤
[ptest,acctest] = svmpredict(testlabel,testdata,model);
%%toc;
執行結果:
model =
parameters: [5x1 double]
nr_class: 2
totalsv: 197
rho: 0.0583
label: [2x1 double]
proba:
probb:
nsv: [2x1 double]
sv_coef: [197x1 double]
svs: [197x13 double]
parameters =
02.0000
3.0000
2.8000
0label =1-1
nr_class =
2totalsv =
197nsv =
89108
accuracy = 99.5% (199/200) (classification)
accuracy = 68.5714% (48/70) (classification)
elapsed time is 0.040873 seconds.
>>
電纜聯結器如何進行分類
1 互連的層次 根據電子裝置內外連線的功能,互連 interconnection 可分為五個層次。晶元封裝的內部連線 ic封裝引腳與pcb的連線。典型聯結器ic插座。印製電路與導線或印製板的連線。典型聯結器為印製電路聯結器。底板與底板的連線。典型聯結器為機櫃式聯結器。裝置與裝置之間的連線。典型產品為...
Excel中分類彙總中如何進行多項彙總且顯示彙總名稱
飄逸幽谷 建議用透視表,處理資料理強大 excel中如何實現多項分類彙總 選中需要分類匯來總的列 選擇源 選單的 bai資料 單擊升序排du序。2分類彙總 zhi 選擇選單dao的 資料 單擊 分類彙總 3在分類彙總對話方塊選擇相應的項 分類欄位選擇要分類彙總的列名,這裡選擇 班級 選定彙總項勾選 ...
如何使用vpgame進行dota2飾品競猜
去壹丶號丶電丶競吧,那裡就可以呀,它是個不錯的電競競猜平台,去那裡應該有飾品兌換的!英雄 飾品 電競外設什麼的都有。在vpgame上怎麼壓遊戲裡的飾品 20 這個需要你在vp上繫結小steam號,然後確定你可以交易 如果換了ip會有7天交易限制 然後在vp上壓東西,會有機械人給你發 你上steam裡...