svm回归matlab工具箱很慢,PSO优化SVM参数进行回归预测,结果很不理想

具体程序代码如下,主要问题就是不管我怎么调整参数,最终的预测结果都没有太大的变化,还请了解这两大算法的帮忙看看问题出在哪里了,十分感谢!

tic;

close all;

clear;

clc;

format compact;

load M2.mat    %载入数据

% 提取数据

N=length(M2)-36;

train_tsx=zeros(N,36);

for i=1:N

train_tsx(i,:)=M2(i:i+35);

Y(i)=M2(i+36);               %36个月代表货币周期,从历史数据来看,大致与短经济周期一样(3-4年)

end

train_ts=Y';

%数据预处理,将原始数据进行归一化

ts = train_ts';

tsx = train_tsx';

% mapminmax为matlab自带的映射函数

% 对ts进行归一化

[TS,TSps] = mapminmax(ts,0,1);

% 对TS进行转置,以符合libsvm工具箱的数据格式要求

TS = TS';

% mapminmax为matlab自带的映射函数

% 对tsx进行归一化

[TSX,TSXps] = mapminmax(tsx,0,1);

% 对TSX进行转置,以符合libsvm工具箱的数据格式要求

TSX = TSX';

% PSO寻找最佳的SVM参数c&g

% 参数初始化

%粒子群算法中的两个参数

c1 = 0.5; % c1 belongs to [0,2]

c2 = 0.5; % c2 belongs to [0,2]

maxgen=200;   % 进化次数

sizepop=50;   % 种群规模

popcmax=10^(2);

popcmin=10^(-1);

popgmax=10^(3);

popgmin=10^(-2);

k = 0.5;       % k belongs to [0.1,1.0];

Vcmax = 500;

Vcmin = 1 ;

Vgmax = 10;

Vgmin = 0.1 ;

% SVM参数初始化

v = 5;

% 产生初始粒子和速度

for i=1:sizepop     % 随机产生种群

pop(i,1) = (popcmax-popcmin)*rand+popcmin;    % 初始种群

pop(i,2) = (popgmax-popgmin)*rand+popgmin;

V(i,1)=Vcmax*rands(1);  % 初始化速度

V(i,2)=Vgmax*rands(1);

% 计算初始适应度

cmd = ['-v ',num2str(v),' -c ',num2str( pop(i,1) ),' -g ',num2str( pop(i,2) ),' -s 3 -t 2 -p 0.01 '];

fitness(i) = svmtrain(TS, TSX, cmd);

fitness(i) = -fitness(i);

end

% 找极值和极值点

[global_fitness, bestindex]=min(fitness); % 全局极值

local_fitness=fitness;   % 个体极值初始化

global_x=pop(bestindex,:);   % 全局极值点

local_x=pop;    % 个体极值点初始化

% 迭代寻优

for i=1:maxgen

for j=1:sizepop       %速度更新

wV = 1;      % wV best belongs to [0.8,1.2]

V(j,:) = wV*V(j,:) + c1*rand*(local_x(j,:) - pop(j,:)) + c2*rand*(global_x - pop(j,:));

if V(j,1) > Vcmax

V(j,1) = Vcmax;

end

if V(j,1) < Vcmin

V(j,1) = Vcmin;

end

if V(j,2) > Vgmax

V(j,2) = Vgmax;

end

if V(j,2) < Vgmin

V(j,2) = Vgmin;

end

%种群更新

wP = 0.5;

pop(j,:)=pop(j,:)+wP*V(j,:);

if pop(j,1) > popcmax

pop(j,1) = popcmax;

end

if pop(j,1) < popcmin

pop(j,1) = popcmin;

end

if pop(j,2) > popgmax

pop(j,2) = popgmax;

end

if pop(j,2) < popgmin

pop(j,2) = popgmin;

end

% 自适应粒子变异

if rand>0.5

k=ceil(2*rand);

if k == 1

pop(j,k) = (20-1)*rand+1;

end

if k == 2

pop(j,k) = (popgmax-popgmin)*rand+popgmin;

end

end

%适应度值

cmd = ['-v ',num2str(v),' -c ',num2str( pop(j,1) ),' -g ',num2str( pop(j,2) ),' -s 3 -t 2 -p 0.01 '];

fitness(j) = svmtrain(TS, TSX, cmd);

fitness(j) = -fitness(j);

end

%个体最优更新

if fitness(j) < local_fitness(j)

local_x(j,:) = pop(j,:);

local_fitness(j) = fitness(j);

end

%群体最优更新

if fitness(j) < global_fitness

global_x = pop(j,:);

global_fitness = fitness(j);

end

fit_gen(i)=global_fitness;

end

toc

bestc = global_x(1);

bestg = global_x(2);

bestmse = -fit_gen(maxgen);

% 利用回归预测分析最佳的参数进行SVM训练

cmd = ['-c ',num2str( bestc ),' -g ',num2str( bestg ),' -s 3 -t 2 -p 0.01 '];

model = svmtrain(TS,TSX,cmd);

% 进行SVM预测

test_tsx1 = TS(163:198);

test_tsx1=test_tsx1';

[predict1,mse,detesvalue] = svmpredict(8.29,test_tsx1,model);

test_ts1 = mapminmax('reverse',predict1',TSps);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/523358.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Idea 依赖冲突一分钟解决2种方案

文章目录一、Diagrams解决方案1.1. 在pom.xml文件中&#xff0c;右击选择【Diagrams】-【Show Dependencies】1.2. 找到冲突的依赖1.3. 问题定位1.4. 解决方案1.5. 具体实现思路1.5.1. 查看spring-context的全局控版本1.5.2. 找到需要排除activemq-core中的spring-context的3.0…

2019年技术盘点容器篇(一):听UCloud谈风生水起的K8S | 程序员硬核评测

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者&#xff1a;刘晶晶据相关调研机构出具的报告数据显示&#xff0c;目前应用容器市场规模将从2016年的 7.62亿美元增长到2020年的27亿美元。显而易见&#xff0c;引入容器所展现的巨大灵活性有效推动了其采用速率&#xff0c;使企…

SpringBoot 整合ActiveMQ_企业实战

文章目录1. 新建Springboot工程2. 引入maven依赖3. ActiveMq配置类4. MQ生产者5. MQ 点对点消费者6. MQ 发布点阅消费者A7. MQ 发布点阅消费者B8. 统一测试类1. 新建Springboot工程 2. 引入maven依赖 <?xml version"1.0" encoding"UTF-8"?> <p…

怎样看Linux字体所在目录,Linux下列出所有字体的目录

fc-list|grep 黑/usr/share/fonts/adobe-source-han-sans/SourceHanSans-Bold.ttc: Source Han Sans HW TC,思源黑體 HW,思源黑體 HW Bold,Source Han Sans HW TC Bold:styleBold,Regular/usr/share/fonts/adobe-source-han-sans/SourceHanSans-Bold.ttc: 思源黑体,Source Han …

Docker精华问答 |为什么巨头会支持Docker?

如今Docker的使用已经非常普遍&#xff0c;特别在一线互联网公司。使用Docker技术可以帮助企业快速水平扩展服务&#xff0c;从而到达弹性部署业务的能力。在云服务概念兴起之后&#xff0c;Docker的使用场景和范围进一步发展。今天&#xff0c;就让我们来看看关于Docker的深度…

Unable to process Jar entry [module-info.class] from Jar

Unable to process Jar entry [module-info.class] from Jar [jar:file:/J:/rep/org/projectlombok/lombok/1.18.8/lombok-1.18.8.jar!/] for annotations org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19 解决方案&…

linux的批处理进程,巧用linux-top的批处理模式

IT技术学习&#xff1a;一种是采用循序渐进的系统式学习&#xff1b;一种是采用“投机取巧”的碎片式学习。我这个人比较赖&#xff0c;也没有那些大牛执着的精神和水平&#xff0c;所以只能和大家分享后者命令简述top命令-是UNIN&&LINUX系统自带的系统管理工具。可以实…

最新突破!科学家研发出世界首款精神控制手臂机器人;近日Kubernetes 1.15 正式发布;雷军公布小米手机产品线布局……...

关注并标星星CSDN云计算极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 腾讯微信电子健康卡整体解决…

java.lang.NoClassDefFoundError: org/springframework/core/ErrorCoded

这个错误主要是因为spring的相关jar的版本号不一致导致的&#xff0c;所以用maven管理会好很多

linux账户初始化文件,Linux启动初始化配置文件浅析

1)/etc/profile 登录时&#xff0c;会执行。全局(公有)配置&#xff0c;不管是哪个用户&#xff0c;登录时都会读取该文件。(2)/ect/bashrc Ubuntu没有此文件&#xff0c;与之对应的是/ect/bash.bashrcbash.bashrc 是交互式shell的初始化文件。(3)~/.profile 某个用户读取…

一文读懂云计算和PAYG“现付现用”模型

戳蓝字“CSDN云计算”关注我们哦&#xff01;译者 | 风车云马或许您对云计算听的比较多&#xff0c;但是对于“现付现用”(Pay-As-You-Go,PAYG)模型是什么还不十分了解。简单地说&#xff0c;PAYG是一种“实用”计算模型&#xff0c;它允许用户根据使用的机器小时数或消耗的资源…

JDBC出现这个错误的解决办法Connections could not be acquired from the underlying database!

以上问题可能有一下原因造成&#xff1a; 1、驱动配置有误 2、据库连接地址有误 3、H密码或帐号有误 4、数据库未启动或无权访问 5、项目未引入对应的驱动jar包 6、mysql root没有远程访问的权限&#xff0c;需要增加权限 7、grant all privileges on . to ‘root’’%’ iden…

linux用户权限简介,Linux用户及权限管理

【文件管理、管道、用户及组管理、用户及权限管理】\用户及组管理用户与组管理Linux系统是一个多用户多任务的分时操作系统&#xff0c;任何一个要使用系统资源的用户&#xff0c;都必须首先向系统管理员申请一个账号&#xff0c;然后以这个账号的身份进入系统。用户的账号一方…

Hadoop精华问答 | hadoop能干什么?

Hadoop能够进行大批量数据的离线处理,但是在实时计算上的表现实在是不尽如人意;而Storm就可以担当这部分的角色&#xff0c;今天&#xff0c;就让我们看看关于Storm的精华问答吧。1Q&#xff1a;hadoop是什么A&#xff1a;Hadoop被公认是一套行业大数据标准开源软件&#xff0c…

实战01_SSM整合ActiveMQ支持多种类型消息

ActiveMQ能干什么&#xff1f; 主要功能涉及JMS Provider用来帮助实现高可用、高性能、高伸缩、易用的企业级面向消息服务的系统。 ActiveMQ支持消息类型如下&#xff1a; 1、StreamMessage java原始值数据流 2、MapMessage 键值对 3、TextMessage 字符串 4、ObjectMessage 一…

linux xguest用户,在/etc/passwd中得到普通用户列表

/etc/passwd文件用来保存系统中当前所有的用户信息&#xff0c;该文件对所有用户都可见。在该文件中&#xff0c;每行信息代表一个用户。每个用户的信息由7部分组成&#xff1a;用户名&#xff1a;加密后的用户密码&#xff1a;用户ID(UID)&#xff1a;用户所在组ID(GID)&#…

实战02_SSM整合ActiveMQ支持多种类型消息

接上一篇&#xff1a;企业实战01_SSM整合ActiveMQ支持多种类型消息https://blog.csdn.net/weixin_40816738/article/details/100557400 ActiveMQ支持消息类型如下&#xff1a; 1、StreamMessage java原始值数据流 2、MapMessage 键值对 3、TextMessage 字符串 4、ObjectMessag…

华为首超苹果,iPhone 风光已不再?百度资讯搜索来源调整;自动驾驶激光雷达厂商Velodyne筹备上市;...

关注并标星星CSDN云计算极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 三星Galaxy A90更多细节曝光…

实战03_SSM整合ActiveMQ支持多种类型消息

接上一篇&#xff1a;企业实战02_SSM整合ActiveMQ支持多种类型消息https://blog.csdn.net/weixin_40816738/article/details/100572053 1、StreamMessage java原始值数据流 2、MapMessage 键值对 3、TextMessage 字符串 4、ObjectMessage 一个序列化的java对象 5、BytesMessage…

千字谏言!Python入门:这两点绝对不能偷懒!否则工作后必后悔

作为程序员&#xff0c;你有没有遇到过这样的领导&#xff1a;“别人还没走&#xff0c;你先走了不合适吧。”“不能确定功劳&#xff0c;总得有苦劳吧&#xff01;你看别人9点谁走了&#xff1f;”说到996&#xff0c;这很有可能是诱因之一。所以很多程序员会在学习了Java、C的…