|
|
51CTO旗下网站
|
|
移动端

2.2.2 LibSVM 的使用

《大数据分析:数据挖掘必备算法示例详解》第2章SVM 算法,本书详细介绍了大数据分析,尤其是数据分类相关算法的原理及实现 细节,并给出了每个算法的编程实例。本节为大家介绍LibSVM 的使用。

作者:张重生来源:机械工业出版社|2017-12-13 17:38

2.2.2 LibSVM 的使用

(1)LibSVM的一般处理过程

① 数据预处理

数据格式转换:将数据转换成 SVM的格式。SVM算法要求一个实数向量表示一个数据样本。

数据规范化:不仅可以避免算法实施过程中大数值范围的属性对小数值范围属性的影响,同时也可以避免出现数值计算困难的问题。

对于训练集和测试集,要使用同样的方法进行规范化。

② 模型选择:选择合适的内核,并确定惩罚参数 (C)和内核参数 (γ,gamma)。

③ 通过交叉验证获取最优的参数 C和 γ,并用来训练整个训练集。

④ 对测试集进行测试。

(2)LibSVM的参数介绍

打开 MATLAB,将工作目录切换至 LibSVM文件夹下,输入如下命令:

  1.  >>svmtrain 

即可看到如下输出 (该段代码为 LibSVM软件包的输出):

  1. Usage:model=svmtrain(training_label_vector,training_instance_matrix,′libsvm_options′);  
  2. libsvm_options:  
  3. -ssvm_type:settypeofSVM(default0)  
  4. 0--C-SVC  
  5. 1--nu-SVC  
  6. 2--one-classSVM  
  7. 3--epsilon-SVR  
  8. 4--nu-SVR  
  9. -tkernel_type:settypeofkernelfunction(default2)  
  10. 0--linear:u′v  
  11. 1--polynomial:(gammau′v+coef0)^degree  
  12. 2--radialbasisfunction:exp(-gamma|u-v|^2)  
  13. 3--sigmoid:tanh(gammau′v+coef0)  
  14. 4--intersection:sum(min(x,y))  
  15. 5--chi-square:exp(-gamma(1-2sum((xi-yi)^2/(xi+yi))))  
  16. 6--precomputedkernel(kernelvaluesintraining_instance_matrix)  
  17. -ddegree:setdegreeinkernelfunction(default3)  
  18. -ggamma:setgammainkernelfunction(default1/num_features)  
  19. -rcoef0:setcoef0inkernelfunction(default0)  
  20. -ccost:settheparameterCofC-SVC,epsilon-SVR,andnu-SVR(default1)  
  21. -nnu:settheparameternuofnu-SVC,one-classSVM,andnu-SVR(default05)  
  22. -pepsilon:settheepsiloninlossfunctionofepsilon-SVR(default01)  
  23. -mcachesize:setcachememorysizeinMB(default100)  
  24. -eepsilon:settoleranceofterminationcriterion(default0001)  
  25. -hshrinking:whethertousetheshrinkingheuristics,0or1(default1)  
  26. -bprobability_estimates:whethertotrainaSVCorSVRmodelforprobability  
  27. estimates,0or1(default0)  
  28. -wiweight:settheparameterCofclassitoweightC,forC-SVC(default1)  
  29. -vn:n-foldcrossvalidationmode  
  30. -q:quietmode(nooutputs) 

在此,笔者将对其中几个参数进行简要说明。

-s:表示 SVM算法的类型,一般情况下采用默认参数。

-t:表示内核函数类型,一般采用 RBF内核。

其中参数 -c和 -g对训练结果影响较大,建议对这两个参数进行选优后再对整个训练集进行训练。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码

 

51CTO读书频道活动讨论群:365934973
【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

C# 2005 & .NET 3.0高级编程(第5版)

该书为C#经典名著!是Wrox红皮书中最畅销的品种之一。从第1版开始就名满天下;其第3版被评选为2005年最权威的十大IT图书之一;并荣获“2005...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊