楼主: 美楠
15535 6

[问答] tune.svm函数的用法 [推广有奖]

  • 1关注
  • 0粉丝

大专生

50%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
472 点
帖子
38
精华
0
在线时间
35 小时
注册时间
2015-4-29
最后登录
2015-6-26

楼主
美楠 发表于 2015-6-1 15:14:13 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
看师兄论文里面做的svm回归之前,先用tune.svm函数做了一个计算参数gamma和cost的最优值,请问这个是怎么设置的呢?原程序如下:
HOD_tunesvm <- tune.svm(HOD_Calibration[,1:5],HOD_Calibration[,6],gamma = 2^(-1:1), cost = 2^(2:4))#计算参数gamma和cost的最优值
HOD_svm <- svm(HOD_Calibration[,1:5],HOD_Calibration[,6],gamma = 0.5, cost = 4)#将上面计算的最优值代入svm模型
我试了试,如果不用这两个参数,直接最简单的svm(x,y),这样的话,误差比较大,而输入了最优参数滞后,相对误差明显降低了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Tune SVM gamma Cost cos 论文

沙发
ryoeng 在职认证  发表于 2015-6-1 21:53:59
提示: 作者被禁止或删除 内容自动屏蔽

藤椅
ryoeng 在职认证  发表于 2015-6-1 21:54:44
提示: 作者被禁止或删除 内容自动屏蔽

板凳
美楠 发表于 2015-6-2 09:50:15
为什么设置tune.svm设置不同的参数,它每次计算的最优值都不一样呢,而且最优值下面有一个best performance,是根据这个值选那两个参数吗?下面是我运行的,红色的是不同的部分。
> cqsl_tunesvm <- tune.svm(cqsl.scale,cqsl[,21],gamma = 2^(-1:1), cost = 2^(2:4))
> cqsl_tunesvm

Parameter tuning of ‘svm’:

- sampling method: 10-fold cross validation

- best parameters:
gamma cost
   0.5    8


- best performance: 0.01402403

> cqsl_tunesvm <- tune.svm(cqsl.scale,cqsl[,21],gamma = 2^(-2:2), cost = 2^(2:8))
> cqsl_tunesvm

Parameter tuning of ‘svm’:

- sampling method: 10-fold cross validation

- best parameters:
gamma cost
  0.25    4


- best performance: 0.01143376

> cqsl_tunesvm <- tune.svm(cqsl.scale,cqsl[,21],gamma = 2^(-5:2), cost = 2^(2:8))
> cqsl_tunesvm

Parameter tuning of ‘svm’:

- sampling method: 10-fold cross validation

- best parameters:
   gamma cost
0.03125   16


- best performance: 0.007504326

> cqsl_tunesvm <- tune.svm(cqsl.scale,cqsl[,21],gamma = 2^(-6:6), cost = 2^(2:8))
> cqsl_tunesvm

Parameter tuning of ‘svm’:

- sampling method: 10-fold cross validation

- best parameters:
    gamma cost
0.015625   32


- best performance: 0.007092799

报纸
perfect1992 学生认证  发表于 2015-6-17 09:57:41
每次使用交叉验证时,划分的数据集是不一样的,因而训练出来的模型也是不一样的,如果要让每次都是同一个结果,需要在交叉验证前设置set.seed(),这样每次运行都能是同一个结果。

地板
爽爽胖胖 学生认证  发表于 2016-10-29 22:56:49
thank you!

7
superzhang90 发表于 2017-4-5 14:30:45
美楠 发表于 2015-6-2 09:50
为什么设置tune.svm设置不同的参数,它每次计算的最优值都不一样呢,而且最优值下面有一个best performance ...
你好,问你个问题,为什么你的cost和gamma要用 2^ ,我看到也有一些使用 10^?这个是怎么指定的???

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 10:10