libsvm使用(续)

libsvm使用

LIBSVM 软件包简介

LIBSVM 是台湾大学林智仁 (Chih-Jen Lin) 博士等开发设计的一个操作简单、易于使用、快速有效的通用 SVM 软件包,可以解决分类问题(包括 C- SVC n - SVC )、回归问题(包括 e - SVR n - SVR )以及分布估计( one-class-SVM )等问题,提供了线性、多项式、径向基和 S 形函数四种常用的核函数供选择,可以有效地解决多类问题、交叉验证选择参数、对不平衡样本加权、多类问题的概率估计等。 LIBSVM 是一个开源的软件包,需要者都可以免费的从作者的个人主页 http://www.csie.ntu.edu.tw/~cjlin/ 处获得。他不仅提供了 LIBSVM C++ 语言的算法源代码,还提供了 Python Java R MATLAB Perl Ruby LabVIEW以及 C#.net 等各种语言的接口,可以方便的在 Windows UNIX 平台下使用,也便于科研工作者根据自己的需要进行改进(譬如设计使用符合自己特定问题需要的核函数等)。另外还提供了 WINDOWS 平台下的可视化操作工具 SVM-toy 并且在进行模型参数选择时可以绘制出交叉验证精度的等高线图。

 SVM进行函数估计是有监督学习,进行概率密度估计是非监督学习

自从版本2.8以后 libsvm采用SMO算法

初步使用

将编译好的文件4个文件放在windows文件下(从台湾人网站上下载的文件中有个windows文件将其复制到D:盘),改名windowssvm然后把heart_scale文件拷贝到windowssvm,如下图


heart_scale文件台湾人为我们准备的一些数据,用于测试,以后我们用自己的测试数据

切换到字符目录下:

 

一二行出现不能打开heart_scale是没有将文件拷贝到与svm-train.exe所在目录。

 

其中, #iter 为迭代次数, nu 与前面的操作参数 -n n -n n :设置 n - SVC one-class-SVM n - SVR 中参数 n ,默认值 0.5 )相同, obj SVM 文件

转换为的二次规划求解得到的最小值, rho 为判决函数的常数项 b nSV 为支持

向量个数, nBSV 为边界上的支持向量个数, Total nSV 为支持向量总个数。

注释2

obj 是对偶SVM问题的最优目标值. rho 是判决函数sgn(w^Tx - rho)的偏项. nSV nBSV 分别代表支持向量和边界支持向量 (alpha_i = C)的个数. nu-svm 在某中程度上可以看作 C-SVM的等价形式,不过其中的 C被替换为 nu. nu 仅表明了相应的参数.

 

训练后的模型保存为文件 heart_scale.model

 

可以看到多出了heart_scale.model文件,用写字板打开

 

用记事本等文本浏览器打开

 

可以看到其内容如下(其后“ % ”后内容为笔者所加注释):

svm_type c_svc % 训练所采用的 svm 类型,此处为 C- SVC

kernel_type rbf % 训练采用的核函数类型,此处为 RBF

gamma 0.0769231 % 与操作参数设置中的 g 含义相同

nr_class 2 % 分类时的类别数,此处为两分类问题

total_sv 132 % 总共的支持向量个数

rho -0.424462 % 决策函数中的常数项 b

label 0 1 % 类别标签

nr_sv 64 68 % 各类别标签对应的支持向量个数

SV % 以下为支持向量

 

test_file 就是我们要 predict 的数据。它的格式跟 svmtrain 的输入,也就是 training_set_file 是一样的!不过每行最前面的 label 可以省略 ( 因为 predict 就是要 predict 那个 label) 但如果 test_file label 的值的话, predict 完会顺便拿 predict 出来的值跟 test_file 里面写的值去做比对,这代表: test_file 写的 label 是真正的分类结果,拿来跟我们 predict

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 39
    评论
评论 39
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值