Untitled6

libsvm三种核类型得到模型

1.导入包

from libsvm.svm import *
from libsvm.svmutil import *

2.读取数据

train_label, train_value = svm_read_problem("D:\Download\libsvm\libsvm-3.25\windows\\train.txt")         #训练数据集
predict_label, predict_value = svm_read_problem("D:\Download\libsvm\libsvm-3.25\windows\\test.txt")   #预测数

这里我使用的数据已经转化为libsvm所需数据格式,如果采用其他格式数据,需要先对数据标准化。
使用的训练数据和检验数据文件格式如下:
[label] [index1]:[value1] [index2]:[value2] …
[label] [index1]:[value1] [index2]:[value2] …
Label 就是说class(属于哪一类), 就是你要分类的种类,通常是一些整数。
index 是有順序的索引,通常是连续的整数。就是指特征编号,必须按照升序排列
value 就是特征值,用来 train 的数据,通常是一堆实数组成

3.训练模型

svm_tarin函数参数如下
svm_train(y,x,training_options)
y: 数据标志,即分类类别,为整型或双精度浮点数
x:数据数组
training_options: 命令行参数,为字符串
本次使用的参数如下:
-s:svm类型,默认为0:
0 – C-SVC
1 – v-SVC
2 – one-class-SVM
3 –ε-SVR
4 – n - SVR

-t:核函数类型,默认值为2
0 –线性核:u’v
1 –多项式核:(g
u’v+coef0)degree
2 – RBF核:exp(-γ
||u-v||2)
3 – sigmoid核:tanh(γ*u’*v+coef0)

model = svm_train(train_label,train_value,'')
print("result:")
p_label, p_acc, p_val = svm_predict(predict_label, predict_value, model);
svm_save_model("D:\Download\libsvm\libsvm-3.25\windows\\modle_rbf.txt",model)
result:
Accuracy = 95% (38/40) (classification)
model = svm_train(train_label,train_value,'-t 0')
print("result:")
p_label, p_acc, p_val = svm_predict(predict_label, predict_value, model);
svm_save_model("D:\Download\libsvm\libsvm-3.25\windows\\modle_line.txt",model)
result:
Accuracy = 95% (38/40) (classification)
model = svm_train(train_label,train_value,'-t 1')
print("result:")
p_label, p_acc, p_val = svm_predict(predict_label, predict_value, model);
svm_save_model("D:\Download\libsvm\libsvm-3.25\windows\\modle_deg.txt",model)
result:
Accuracy = 95% (38/40) (classification)

模型文件

数据说明:

  • svm_type 所选择的svm类型
  • kernel_type 训练采用的核函数类型
  • gamma RBF核的参数γ
  • nr_class 类别数
  • total_sv 支持向量总个数
  • rho 判决函数的偏置项b
  • label 原始文件中的类别标识
  • nr_sv 每个类的支持向量机的个数
  • SV 各个类的权系数及相应的支持向量
  • degree 多项式核特有,默认为3

多项式核模型文件
svm_type c_svc
kernel_type polynomial
degree 3
gamma 0.25
coef0 0
nr_class 3
total_sv 9
rho 3.7141812658050397 0.91899842203085869 0.96274356597618416
label 2 1 0
nr_sv 4 3 2
SV
0 0.0017875776406328422 1:4.9 2:2.5 3:4.5 4:1.7
0.018974855104321425 0 1:7.2 2:3 3:5.8 4:1.6
0.073961724455309227 0 1:6.2 2:2.8 3:4.8 4:1.8
0.12105332151511954 0 1:6 2:3 3:4.8 4:1.8
-0.081787283776731612 0 1:5.4 2:3 3:4.5 4:1.5
-0.13220261729801841 0 1:6.7 2:3 3:5 4:1.7
-0 0.0079536940415775182 1:5.1 2:2.5 3:3 4:1.1
-0 -0.0038588525889347446 1:4.8 2:3 3:1.4 4:0.3
-0.0017875776406328422 -0.0040948414526427741 1:5.1 2:3.8 3:1.9 4:0.4

线性核模型文件
svm_type c_svc
kernel_type linear
nr_class 3
total_sv 19
rho 4.679239360716295 0.90176827091004386 0.87316500102662398
label 2 1 0
nr_sv 8 9 2
SV
1 0.1964636690483807 1:4.9 2:2.5 3:4.5 4:1.7
0.20451070777346686 0 1:6.9 2:3.1 3:5.1 4:2.3
0.41930117380455711 0 1:7.2 2:3 3:5.8 4:1.6
1 0 1:6.2 2:2.8 3:4.8 4:1.8
1 0 1:6.5 2:3.2 3:5.1 4:2
1 0 1:6 2:2.2 3:5 4:1.5
1 0 1:6 2:3 3:4.8 4:1.8
1 0 1:6.1 2:3 3:4.9 4:1.8
-0.36195784673729037 0 1:5.2 2:2.7 3:3.9 4:1.4
-1 0 1:6.9 2:3.1 3:4.9 4:1.5
-1 0 1:6.3 2:3.3 3:4.7 4:1.6
-1 0 1:5.4 2:3 3:4.5 4:1.5
-1 0 1:6.7 2:3 3:5 4:1.7
-0.26185403484073366 0 1:6.3 2:2.3 3:4.4 4:1.3
-0 0.62281802804225195 1:5.1 2:2.5 3:3 4:1.1
-1 0 1:6.2 2:2.2 3:4.5 4:1.5
-1 0 1:6 2:2.9 3:4.5 4:1.5
-0 -0.26512672757340894 1:4.8 2:3 3:1.4 4:0.3
-0.1964636690483807 -0.35769130046884301 1:5.1 2:3.8 3:1.9 4:0.4

高斯核模型文件
svm_type c_svc
kernel_type rbf
gamma 0.25
nr_class 3
total_sv 35
rho -0.1115865136674557 -0.22766750678256945 -0.1238830575978794
label 2 1 0
nr_sv 16 14 5
SV
1 0.67422072543608824 1:4.9 2:2.5 3:4.5 4:1.7
1 0.17766368271513761 1:6.9 2:3.1 3:5.1 4:2.3
0 0.049198291557873114 1:7.7 2:3.8 3:6.7 4:2.2
0.034919766284614469 0.023571215345850133 1:6.1 2:2.6 3:5.6 4:1.4
0.92479809863234763 0 1:7.2 2:3 3:5.8 4:1.6
1 0 1:5.9 2:3 3:5.1 4:1.8
1 0 1:6.2 2:2.8 3:4.8 4:1.8
1 0 1:6.5 2:3.2 3:5.1 4:2
0.25593396789869893 0.33590484368311863 1:7.9 2:3.8 3:6.4 4:2
1 0.073213565265302843 1:6 2:2.2 3:5 4:1.5
0 0.40862214340890096 1:7.7 2:2.6 3:6.9 4:2.3
1 0 1:6 2:3 3:4.8 4:1.8
0.017302591379370891 0 1:5.8 2:2.7 3:5.1 4:1.9
0 0.052329796508713999 1:6.2 2:3.4 3:5.4 4:2.3
1 0 1:6.3 2:2.5 3:5 4:1.9
1 0 1:6.1 2:3 3:4.9 4:1.8
-0 0.30311370589750475 1:5 2:2.3 3:3.3 4:1
-0.76839060878871102 0 1:5.2 2:2.7 3:3.9 4:1.4
-1 0 1:6.9 2:3.1 3:4.9 4:1.5
-1 0 1:6.3 2:3.3 3:4.7 4:1.6
-1 0 1:5.4 2:3 3:4.5 4:1.5
-1 0.23878792919288919 1:6.7 2:3 3:5 4:1.7
-0.92888603354947341 0 1:6.3 2:2.3 3:4.4 4:1.3
-0 1 1:5.1 2:2.5 3:3 4:1.1
-1 0 1:6.4 2:3.2 3:4.5 4:1.5
-1 0.48338173149349134 1:7 2:3.2 3:4.7 4:1.4
-0.20843765647886756 0 1:5 2:2 3:3.5 4:1
-1 0 1:6.2 2:2.2 3:4.5 4:1.5
-0.32724012537797964 0 1:6.6 2:2.9 3:4.6 4:1.3
-1 0 1:6 2:2.9 3:4.5 4:1.5
-0 -0.31138296067288956 1:5.7 2:3.8 3:1.7 4:0.3
-0.88996954792818339 -0.27448136017029817 1:5.7 2:4.4 3:1.5 4:0.4
-0 -0.23231751897059344 1:4.8 2:3 3:1.4 4:0.3
-0 -0.53204419043092932 1:5.1 2:3.8 3:1.9 4:0.4
-0.90475471599280188 -0.67505733633917486 1:4.4 2:3 3:1.3 4:0.2

根据公式f(x)=wTx+b以及模型数据可以求得最终的决策函数。*

おすすめ

転載: blog.csdn.net/weixin_45747542/article/details/121431015