libsvm 学习笔记(三)--- svm-scale 使用方法介绍
2015-02-16 14:46
507 查看
svm-scale 对数据进行缩放的规则:
![](https://img-blog.csdn.net/20150216161142141?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHh5XzExMTA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
式中,y 为缩放前的数据,y' 为缩放后的数据;lower 为参数中指定的数据下界,upper 为参数中指定的数据上界;min 为全部训练数据中的最小值,max 为全部训练数据中的最大值。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
windows 文件夹下有一个 svm-scale.exe 程序,可以用 svm-scale 命令来执行该程序。
先来看看 svm-scale 都有哪些参数,在 libsvm 的 windows 目录下输入命令svm-scale :
![](https://img-blog.csdn.net/20150216154432393?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHh5XzExMTA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
命令 svm-scale 要求至少输入一个文件名 data_filename,该文件中是要缩放的数据,看示例:
缩放 windows 文件夹下的 train1 文件中的数据:
![](https://img-blog.csdn.net/20150216155448782?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHh5XzExMTA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
执行这条命令,程序 svm-scale.exe 会将缩放的结果输出在控制台中:
![](https://img-blog.csdn.net/20150216155807448?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHh5XzExMTA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
我们使用命令 "> train1.scaled" 将结果输出在文件 train1.scaled中:
![](https://img-blog.csdn.net/20150216160007675?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHh5XzExMTA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
其他的可选参数:
lower --- upper:缩放后的数据范围(特征向量 x),默认 -1 到 1。
y_lower --- y_upper:缩放后的数据范围(类别标签 y),默认不对 y 进行缩放。
-s save_filename:将缩放的规则保存为文件save_filename。
-r restore_filename:按照restore_filename中的规则缩放数据。
我们使用命令 "-s train.range" 将缩放规则保存在文件train.range 中:
![](https://img-blog.csdn.net/20150216162304861?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHh5XzExMTA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
看看文件 train.range 中的内容:
![](https://img-blog.csdn.net/20150216162628459?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHh5XzExMTA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
第一行表示是对 x 进行的缩放;
第二行表示缩放的上下界分别是 1 和 -1;
第三行表示特征向量 x 的第一个分量 x1 在训练数据中的范围是 0~297.05,以此类推。
再看看文件 train1 和 train1.scaled 中的内容:
![](https://img-blog.csdn.net/20150216163147072?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHh5XzExMTA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20150216163149914?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHh5XzExMTA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
第一条数据中的 x 的第一个分量的缩放:
![](https://img-blog.csdn.net/20150216163619747?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHh5XzExMTA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
还可以自定义 lower 和 upper 的值后再对数据进行缩放:
![](https://img-blog.csdn.net/20150216163942046?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHh5XzExMTA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
再看看如何使用 train.range 文件对测试文件 test1 进行相同标准的缩放:
![](https://img-blog.csdn.net/20150216165740866?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHh5XzExMTA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
查看 train.range、test1、test1.scaled 文件的内容,检测缩放是否正确:
![](https://img-blog.csdn.net/20150216170206004?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHh5XzExMTA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20150216170214352?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHh5XzExMTA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20150216170223182?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHh5XzExMTA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20150216170244614?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHh5XzExMTA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
svm-scale.exe 程序的源码是 libsvm 根目录下的 svm-scale.c 文件,可以通过研究该文件中的源码来进一步深入学习 libsvm 缩放数据的机制。
文章内容中如有不足和错误,恳请各位大神不吝赐教!
式中,y 为缩放前的数据,y' 为缩放后的数据;lower 为参数中指定的数据下界,upper 为参数中指定的数据上界;min 为全部训练数据中的最小值,max 为全部训练数据中的最大值。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
windows 文件夹下有一个 svm-scale.exe 程序,可以用 svm-scale 命令来执行该程序。
先来看看 svm-scale 都有哪些参数,在 libsvm 的 windows 目录下输入命令svm-scale :
命令 svm-scale 要求至少输入一个文件名 data_filename,该文件中是要缩放的数据,看示例:
缩放 windows 文件夹下的 train1 文件中的数据:
执行这条命令,程序 svm-scale.exe 会将缩放的结果输出在控制台中:
我们使用命令 "> train1.scaled" 将结果输出在文件 train1.scaled中:
其他的可选参数:
lower --- upper:缩放后的数据范围(特征向量 x),默认 -1 到 1。
y_lower --- y_upper:缩放后的数据范围(类别标签 y),默认不对 y 进行缩放。
-s save_filename:将缩放的规则保存为文件save_filename。
-r restore_filename:按照restore_filename中的规则缩放数据。
我们使用命令 "-s train.range" 将缩放规则保存在文件train.range 中:
看看文件 train.range 中的内容:
第一行表示是对 x 进行的缩放;
第二行表示缩放的上下界分别是 1 和 -1;
第三行表示特征向量 x 的第一个分量 x1 在训练数据中的范围是 0~297.05,以此类推。
再看看文件 train1 和 train1.scaled 中的内容:
第一条数据中的 x 的第一个分量的缩放:
还可以自定义 lower 和 upper 的值后再对数据进行缩放:
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
再看看如何使用 train.range 文件对测试文件 test1 进行相同标准的缩放:
查看 train.range、test1、test1.scaled 文件的内容,检测缩放是否正确:
svm-scale.exe 程序的源码是 libsvm 根目录下的 svm-scale.c 文件,可以通过研究该文件中的源码来进一步深入学习 libsvm 缩放数据的机制。
文章内容中如有不足和错误,恳请各位大神不吝赐教!
相关文章推荐
- [原创]java WEB学习笔记105:Spring学习---AOP介绍,相关概念,使用AOP,利用 方法签名 编写 AspectJ 切入点表达式
- SVM学习笔记(1)LIBSVM在matlab下的使用安装
- libsvm svm-scale的学习和使用
- SVM学习笔记(2)LIBSVM在python下的使用
- java学习笔记(四)----对象、数组作为参数传递,静态变量、静态方法的使用,内部类,使用文档注释
- 学习笔记: Struts2中使用validate框架对Action的不同方法进行验证
- APIDemo学习笔记——Android上几种简单的Animation使用方法(二)
- 微软企业库5.0 学习之路——第五步、介绍EntLib.Validation模块信息、验证器的实现层级及内置的各种验证器的使用方法——中篇
- [ASP.NET学习笔记之四]数据集的使用方法和技巧
- 我的嵌入式学习笔记(2)--scanf使用常见问题及解决方法
- [EntLib]微软企业库5.0 学习之路——第五步、介绍EntLib.Validation模块信息、验证器的实现层级及内置的各种验证器的使用方法——上篇
- LIBSVM的介绍与使用方法
- 【原创】Asp.net MVC 学习笔记之-为什么使用Html.TextBox方法会出现异常?
- NUnit学习笔记3--Attribute使用介绍
- [EntLib]微软企业库5.0 学习之路——第五步、介绍EntLib.Validation模块信息、验证器的实现层级及内置的各种验证器的使用方法——下篇
- NUnit学习笔记3--Attribute使用介绍
- AJAX学习基础:简单介绍数据岛使用方法
- Socket网络编程学习笔记(1):常用方法介绍
- [学习笔记]java web ServletContext.getRealPath(String str)方法的使用
- Domino学习笔记之@for和@elements的使用方法