【SVM时序预测】基于matlab粒子群算法优化支持向量机PSO-SVM期贷时序数据预测【含Matlab源码 2289期】

本文主要是介绍【SVM时序预测】基于matlab粒子群算法优化支持向量机PSO-SVM期贷时序数据预测【含Matlab源码 2289期】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

⛄一、PSO-SVM介绍

1 SVM
SVM是Vapnik提出的一种分类技术,这一技术具有坚实的统计理论基础。SVM可以将原始的数据映射到高维且线性可分的空间,扩展了线性不可分的样本数据,它是使用核函数将线性不可分转换为线性可分。

如果问题为线性不可分割,则需要引入非线性变换。在变换后的坐标空间中,划分超平面的模型方程如下

f(x)=ωTφ(x)+b (5)

式中:ω和b为SVM模型中的参数,φ(x)表示x的映射变换。为了使得找到的超平面到不同类别之间的距离和最大,则有
在这里插入图片描述
根据二次规划技术结合核函数进行求解得到超平面的方程
在这里插入图片描述
式中:κ(·)为核函数,κ(x,xi)表示ϕ(x)·ϕ(xi),ϕ(x)表示关于x的映射变换,αi表示权重系数,yi表示真实值。核函数技术是使用原来的样本数据计算变换后的空间中相似度的一种方法,可以用来帮助处理SVM中的非线性问题。常用的核函数有径向基函数、线性核函数、多项式核函数等。本文采用径向基核函数。

SVM分类模型中存在两个非常重要的参数C和γ。参数C代表惩罚因子,C的取值会影响分类器的分类精度,也可以理解为对误差的容忍限度。如果C太大,则训练阶段的分类准确率很高,而测试阶段的分类准确率很低,对于模型产生的误差具有较低的容忍程度。如果C太小,则分类准确率较差,不能令人满意,对于模型产生的误差具有较高的容忍程度,从而使得训练出来的分类模型变得无用。不恰当的C值会导致模型具有较差的泛化能力。参数γ对结果的影响相较于惩罚因子更大,γ的取值会对特征空间中的划分产生影响。如果γ的值过大会导致拟合过度,而γ的值过小会导致拟合不足,并且γ的大小会影响支持向量的多少,从而影响模型的训练速度。因此C和γ的取值对于SVM的影响很大,不同的取值会导致不同的分类性能,为了选择合适的C和γ的值,通过PSO优化SVM模型。

2 PSO算法
PSO算法是基于种群的搜索算法。在群体中粒子的经验知识会影响相邻粒子的运动趋势。PSO算法中的任意一个粒子均为潜在的优化解,通过不断地调整自身位置找到设置条件下的相对更优解。

粒子群优化算法由改变每个粒子向其pbest和gbest位置移动的速度组成。加速度由随机项加权得到,在这些随机项中,为向pbest和gbest位置的加速度生成单独的随机数。PSO更新每个粒子的位置、速度的方式见式(8)
在这里插入图片描述
式中:w1表示初始的设置值,we表示迭代到最大的进化代时的设置值,Ik表示设置的最大的迭代次数,g表示当前迭代次数。通过LDW方法可以提高PSO的寻优性能。

3 粒子群优化的支持向量机
在本节中,阐述了用于停电预测的PSO-SVM算法模型。利用LDW优化的粒子群算法寻找参数的最佳值,自动求解支持向量机的模型选择问题,从而优化SVM分类器的精度。在PSO算法中,粒子在搜索空间中位置的变化是基于个体追随他人成功的社会心理倾向。群中一个粒子的变化受其邻居的经验或知识的影响。因此,搜索过程使得粒子随机返回到搜索空间中先前成功的区域。

为了实现本文提出的方法,将径向基核函数(Radial basis kernel function, RBF)用于支持向量机分类器。将粒子群中每个粒子的位置视为一个矢量,这个矢量编码SVM分类器的两个参数的值,分别是核参数C和γ。分类精度是设计适应度函数的一个标准。因此,对于分类精度高的粒子产生较高的适应值。同时为了更好地利用粒子群算法寻优,采用线性递减权重动态更新w的值。最终将粒子群优化的SVM模型应用于停电情况的预测。粒子群优化的SVM算法的算法描述如下:
在这里插入图片描述
算法1是通过粒子群优化算法优化支持向量机中的参数,提高支持向量机模型的性能。首先初始化,随机生成初始的粒子,并对生成的粒子进行评估,给局部最优和全局最优的位置赋值(第1~7行)。接着,通过线性递减权重更新粒子的惯性因子值,接着更新粒子的速度和位置值,并对粒子进行评估,将不同粒子的位置对应的参数代入SVM模型中得到分类精度,根据不同参数下的分类精度更新局部最优和全局最优的位置,然后不断迭代直到满足结束条件。最后,返回搜索到的适合停电数据预测的SVM模型下的相对更优参数(第8~24行)。

⛄二、部分源代码

%% 清空环境
tic;clc;clear;close all;format compact
%% 加载数据
data=xlsread(‘EUA五分钟.xlsx’,‘G2:G30763’); save data data
load data
% 归一化
[a,inputns]=mapminmax(data’,0,1);%归一化函数要求输入为行向量
data_trans=data_process(5,a);%% 对时间序列预测建立滚动序列,即用1到m个数据预测第m+1个数据,然后用2到m+1个数据预测第m+2个数据
input=data_trans(:,1:end-1);
output=data_trans(:,end);
%% 数据集 前75%训练 后25%预测
m=round(size(data_trans,1)*0.75);
Pn_train=input(1:m,:);
Tn_train=output(1:m,:);
Pn_test=input(m+1:end,:);
Tn_test=output(m+1:end,:);

%% 1.没有优化的SVM
bestc=0.001;bestg=10;%c和g随机赋值 表示没有优化的SVM
t=0;%t=0为线性核函数,1-多项式。2rbf核函数
cmd = [‘-s 3 -t ‘,num2str(t),’ -c ‘, num2str(bestc),’ -g ‘,num2str(bestg),’ -p 0.01 -d 1’];

model = svmtrain(Tn_train,Pn_train,cmd);%训练
[predict,~]= svmpredict(Tn_test,Pn_test,model);%测试
% 反归一化,为后面的结果计算做准备
predict0=mapminmax(‘reverse’,predict’,inputns);%测试实际输出反归一化
T_test=mapminmax(‘reverse’,Tn_test’,inputns);%测试集期望输出反归一化
T_train=mapminmax(‘reverse’,Tn_train’,inputns);%训练集期望输出反归一化

figure
plot(predict0,‘r-’)
hold on;grid on
plot(T_test,‘b-’)
xlabel(‘样本编号’)
ylabel(‘收盘价/元’)
if t0
title(‘线性核SVM预测’)
elseif t
1
title(‘多项式核SVM预测’)
else
title(‘RBF核SVM预测’)
end

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]李淑锋,李加,张玉峰,王大鹏,袁培森.基于粒子群优化的支持向量机停电预测研究[J].南京理工大学学报. 2022,46(04)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

这篇关于【SVM时序预测】基于matlab粒子群算法优化支持向量机PSO-SVM期贷时序数据预测【含Matlab源码 2289期】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/423896

相关文章

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

springboot+dubbo实现时间轮算法

《springboot+dubbo实现时间轮算法》时间轮是一种高效利用线程资源进行批量化调度的算法,本文主要介绍了springboot+dubbo实现时间轮算法,文中通过示例代码介绍的非常详细,对大家... 目录前言一、参数说明二、具体实现1、HashedwheelTimer2、createWheel3、n

SpringBoot首笔交易慢问题排查与优化方案

《SpringBoot首笔交易慢问题排查与优化方案》在我们的微服务项目中,遇到这样的问题:应用启动后,第一笔交易响应耗时高达4、5秒,而后续请求均能在毫秒级完成,这不仅触发监控告警,也极大影响了用户体... 目录问题背景排查步骤1. 日志分析2. 性能工具定位优化方案:提前预热各种资源1. Flowable

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4