libsvm使用

SVM基础:
http://www.chinakdd.com/article-W82k0g2822JE712.html
看了一部分,还没看完。。
博文:
(1)http://blog.csdn.net/chl033/article/details/4645544
写的浅显易懂
(2)如何提升LibSVM分类效果
http://blog.csdn.net/xiahouzuoxin/article/details/9372805
1. ‘svm-scale’的使用
2. 实际使用LibSVM的步骤
3. 关于交叉验证(CrossValidation,简称CV)
4. 关于GridSearch
5. 非平衡数据
6. 自定义核函数(转自http://www.matlabsky.com/forum.php?mod=viewthread&tid=15296
另:
一、SVM 怎样能得到好的结果

  1. 对数据做归一化(simple scaling)
    参考:http://jacoxu.com/?p=118
    svmscale是用来对原始样本进行缩放的, 范围可以自己定, 一般是[0,1]或[-1,1]. 缩放的目的主要是
    1) 防止某个特征过大或过小, 从而在训练中起的作用不平衡;
    2) 为了计算速度. 因为在核计算中, 会用到内积运算或exp运算, 不平衡的数据可能造成计算困难.
    用法: svmscale [-l lower] [-u upper]
    [-y y_lower y_upper]
    [-s save_filename]
    [-r restore_filename] filename

其中, []中都是可选项:
-l: 设定数据下限; lower: 设定的数据下限值, 缺省为-1
-u: 设定数据上限; upper: 设定的数据上限值, 缺省为1
-y: 是否对目标值同时进行缩放; y_lower为下限值, y_upper为上限值;
-s save_filename: 表示将缩放的规则保存为文件save_filename;
-r restore_filename: 表示将按照已经存在的规则文件restore_filename进行缩放;
filename: 待缩放的数据文件, 文件格式按照libsvm格式.

默认情况下, 只需要输入要缩放的文件名就可以了: 比如(已经存在的文件为test.txt)
svmscale test.txt

这时, test.txt中的数据已经变成[-1,1]之间的数据了. 但是, 这样原来的数据就被覆盖了, 为了让规划好的数据另存为其他的文件, 我们用一dos的重定向符>来另存为(假设为out.txt):
svmscale test.txt > out.txt
运行后, 我们就可以看到目录下多了一个out.txt文件, 那就是规范后的数据. 假如, 我们想设定数据范围[0,1], 并把规则保存为test.range文件:
svmscale –l 0 –u 1 –s test.range test.txt > out.txt
这时, 目录下又多了一个test.range文件, 可以用记事本打开, 下次就可以用-r test.range来载入了.

  1. 应用 RBF kernel

  2. 用cross-validation和grid-search得到最优的c和g

  3. 用得到的最优c和g训练训练数据

  4. 测试
    二、Windows下svm使用的文件格式形成代码
    在matlab中调用svm时没有那么多功能(我目前理解的是这样哦~~),如交叉验证和数据归一化等。为了使用这些功能,可以使用libsvm的exe文件进行交叉验证和训练等。这些文件能够接收的训练数据是下面的形式。下面程序就是把matlab中的特征向量和标签转换成需要的格式。

load('test.mat');%test.mat中的变量test是结构对象,test.X代表训练数据(n*d,d为特征向量长度),test.Y(n*1)代表数据的类别
[size1,size2]=size(test.X);
fid=fopen('test.txt','wt');
for i=1:size1
    fprintf(fid,'%g ',test.Y(i));

    for j=1:size2
        fprintf(fid,'%g:',j);
        if j==size2
            fprintf(fid,'%g\n',test.X(i,j));
        else
            fprintf(fid,'%g ',test.X(i,j));
        end
    end
end

最终形成的文件格式为:
[标签] 1:value 2:value 3:value……..
1 1:0 2:0 3:0.123379 4:0.56402 5:1.25773 6:2.27725 7:3.36294 8:2.5937
0 1:0 2:0 3:0 4:0.00410983 5:0.294078 6:1.3213 7:2.09252 8:3.55806

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值