《量化投资:以MATLAB为工具》

MATLAB技术论坛

 找回密码
 注册账号
查看: 120|回复: 6
收起左侧

[提问] 帮帮忙,怎么调用遗传算法择优SVM参数的时候输出图像始终是0

[复制链接]

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2017-3-26 16:22:58 | 显示全部楼层 |阅读模式

function [BestMSE,Bestc,Bestg,ga_option] = gaSVMcgForRegress(train_label,train_data,ga_option)

调用这个函数的时候得到的图形如下,最佳适应度和平均适应度都是0,怎么回事呢



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册账号

x

该用户从未签到

发表于 2017-3-26 20:40:00 | 显示全部楼层
你把问题说明清楚,相关数据贴出来看下,才可以更好 帮你解决问题,我之前也有用过gaSVMcgForRegress,没出现过你的问题。
回复 支持 反对

使用道具 举报

签到天数: 6 天

[LV.2]偶尔看看I

 楼主| 发表于 2017-3-27 15:13:27 | 显示全部楼层
WJB986555360 发表于 2017-3-26 20:40
你把问题说明清楚,相关数据贴出来看下,才可以更好 帮你解决问题,我之前也有用过gaSVMcgForRegress,没出 ...

你好,就是调用SVMlib工具箱里面的gaSVMcgForRegress函数的时候运行的结果就是上那个图。最佳适应度和平均适应度都是0?好奇怪啊。我的调用格式是gaSVMcgForRegress(label,traindata),就传了两个参数,第三个参数用的默认值。优化参数用了好久,一天多,就出来这么个结果。好郁闷啊。全部代码是这样的:
[m,n] = size(IF1501MINUTE);
openprice = IF1501MINUTE(1:m,1);
closeprice = IF1501MINUTE(1:m,2);
highprice = IF1501MINUTE(1:m,3);
lowprice =  IF1501MINUTE(1:m,4);
volume =  IF1501MINUTE(1:m,5);
amounts =  IF1501MINUTE(1:m,6);
basicdata = IF1501MINUTE(1:m,:);
basicdata = basicdata';
[BASICDATA,BASICDATAps] = mapminmax(basicdata);
BASICDATA = BASICDATA';
traindata = BASICDATA(2:end,:);
>> label = sign(closeprice(2:end,:)-closeprice(1:end-1,:));
label(label==0)=1;
%接下来开始静态仿真
[best_mse,best_c,best_g] = gaSVMcgForRegress(label,traindata);
回复 支持 反对

使用道具 举报

签到天数: 6 天

[LV.2]偶尔看看I

 楼主| 发表于 2017-3-27 15:14:37 | 显示全部楼层
WJB986555360 发表于 2017-3-26 20:40
你把问题说明清楚,相关数据贴出来看下,才可以更好 帮你解决问题,我之前也有用过gaSVMcgForRegress,没出 ...

你好,就是调用SVMlib工具箱里面的gaSVMcgForRegress函数的时候运行的结果就是上那个图。最佳适应度和平均适应度都是0?好奇怪啊。我的调用格式是gaSVMcgForRegress(label,traindata),就传了两个参数,第三个参数用的默认值。优化参数用了好久,一天多,就出来这么个结果。好郁闷啊。IF1501MINUTE是一个6列的数据,全部代码是这样的:
[m,n] = size(IF1501MINUTE);
openprice = IF1501MINUTE(1:m,1);
closeprice = IF1501MINUTE(1:m,2);
highprice = IF1501MINUTE(1:m,3);
lowprice =  IF1501MINUTE(1:m,4);
volume =  IF1501MINUTE(1:m,5);
amounts =  IF1501MINUTE(1:m,6);
basicdata = IF1501MINUTE(1:m,:);
basicdata = basicdata';
[BASICDATA,BASICDATAps] = mapminmax(basicdata);
BASICDATA = BASICDATA';
traindata = BASICDATA(2:end,:);
>> label = sign(closeprice(2:end,:)-closeprice(1:end-1,:));
label(label==0)=1;
%接下来开始静态仿真
[best_mse,best_c,best_g] = gaSVMcgForRegress(label,traindata);
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2017-3-28 16:38:37 | 显示全部楼层
你顺便把数据上传上来看下,我也是用这个工具箱做没出现过你这个问题,数据传上来下。
回复 支持 反对

使用道具 举报

签到天数: 6 天

[LV.2]偶尔看看I

 楼主| 发表于 2017-3-28 16:48:34 | 显示全部楼层
WJB986555360 发表于 2017-3-28 16:38
你顺便把数据上传上来看下,我也是用这个工具箱做没出现过你这个问题,数据传上来下。

好的。你看一下数据。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册账号

x
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2017-3-31 16:58:00 | 显示全部楼层
我运行你前1000组数做回归没有问题
,不过如果运行5000组,就一直在跑,结果运行好久都没运行完

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册账号

x
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|网站地图|MATLAB技术论坛|Simulink仿真论坛 ( 陕ICP备08102094号  

GMT+8, 2017-10-20 00:36 , Processed in 1.103288 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表