您的位置:首页 > 其它

libsvm 学习笔记(三)--- svm-scale 使用方法介绍

2015-02-16 14:46 507 查看
svm-scale 对数据进行缩放的规则:



式中,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 缩放数据的机制。

文章内容中如有不足和错误,恳请各位大神不吝赐教!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐