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


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


文章内容中如有不足和错误,恳请各位大神不吝赐教!

  • 13
    点赞
  • 16
    收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 6

打赏作者

dxy_1110

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值