加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

libsvm中参数设置输入方式

(2016-01-19 21:39:12)
标签:

svm

分类: 故障诊断
一、c g 参数优化时的输入方式
model svmtrain(train_data_labels, train_data,‘-c 1 -g 0.5’);SVM网络预测
[predict_label, accuracy,decision_values] svmpredict(test_data_labels, test_data, model);%
可以运行,并从model.parameters可以看出g=0.5
如果需要寻找最优参数c和g
val_c=1
val_g=0.5
cmd=['-c',',num2str(val_c),','-g',',num2str(val_g)];
model svmtrain(train_data_labels, train_data,cmd);
注意cmd的写法中,‘ ’是为了保证空格的存在,即可以从运行结果中看出cmd其实为‘-c 1 -g 0.5’,这也是新设置-t,-h等其他参数的关键。
如果不加空格,cmd变为‘-c 1-g 0.5’,后面的-g参数相当于没有进行设置,svm使用的是默认值。

二、新添加参数的使用验证
例如我们想选择核函数-t

LIBSVM-t用来指定核函数类型(默认值是2)。

0)线性核函数

(无其他参数)

1)多项式核函数

(重点是阶数的选择,即d,一般选择1-111 3 5 7 9 11,也可以选择2,46…

2RBF核函数

(径向基RBF内核,exp{-|xi-xj|^2/均方差},其中均方差反映了数据波动的大小。

参数通常可选择下面几个数的倒数:0.1 0.2 0.4 0.6 0.8 1.6 3.2 6.4 12.8,默认的是类别数的倒数,即1/k2分类的话就是0.5

3sigmoid核函数 又叫做S形内核

两个参数g以及rg一般可选1 2 3 4r0.2 0.4 0.60.8 1

4)自定义核函数


 

model svmtrain(train_data_labels, train_data,'-c -g 0.4 -t 1');
或者
cmd=['-c',',num2str(bestc),','-g',',num2str(bestg),','-t',','3'];
model svmtrain(train_data_labels, train_data,cmd);

我们通过训练好厚的model中的parameter参数验证,设置t是否生效

model.Parameters参数意义从上到下依次为:

-s svm类型:SVM设置类型(默认0)

-t 核函数类型:核函数设置类型(默认2)

-d degree:核函数中的degree设置(针对多项式核函数)(默认3)

-g r(gama):核函数中的gamma函数设置(针对多项式/rbf/sigmoid核函数) (默认类别数目的倒数)

-r coef0:核函数中的coef0设置(针对多项式/sigmoid核函数)((默认0)

经过查看,两种方法均可以设置此例中的第二个参数为1,说明设置生效
0
1
3
0.400000000000000
0

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有