当前位置: 首页 > news >正文

时序预测 | MATLAB实现CNN-SVM卷积支持向量机时间序列预测

时序预测 | MATLAB实现CNN-SVM卷积支持向量机时间序列预测

目录

    • 时序预测 | MATLAB实现CNN-SVM卷积支持向量机时间序列预测
      • 预测效果
      • 基本介绍
      • 研究回顾
      • 程序设计
      • 参考资料

预测效果

1
2
3
4
5

基本介绍

CNN-SVM预测模型将深度学习模型作为特征学习器,将SVM 支持向量机 作为训练器进行回归预测。在深度学习模型中,卷积神经网络模型的卷积层和池化层具有强大的计算能力,能够降低图像在平移过程中的损失率,从而特征向量的影响会大大减少,经过不同的卷积层和池化层,可以有效地控制模型的拟合能力从而降低了拟合过程中特征向量的维数。

研究回顾

  • SVM 支持向量机基于核函数思想,将非线性映射作为理论基础映射高维空间,由非线性转变为线性可分,再以最大化分类间隔为目标寻找最优分类超平面(分类函数)。本次CNN 与SVM 模型结合,主要利用SVM 的hinge loss 形式的损失函数。
    1
  • 本次构建的CNN-SVM 卷积支持向量机多输入单输出回归预测模型以卷积神经网络结构为基础,建立完整的CNN 模型。通过训练数据获取卷积层权重参数,然后将卷积层输出结果作为SVM 输入特征向量进行训练,最后进行预测。
  • CNN 模型不需要复杂的预处理,可以从输入的信息中自动进行特征挖掘和提取,随着网络不断向后传递,由浅到深对特征进行融合。1
  • 支持向量机(SVM)适用于处理非线性的小样本数据,通过输入融合值,将二维输入空间映射到高维空间,在高维空间中构造一个最优决策函数从而处理在二维空间中的预测回归问题。

程序设计

  • 完整程序和数据获取方式1:私信博主,同等价值程序兑换。
  • 完整程序和数据获取方式2:订阅《组合优化》专栏,订阅后私信博主获取。
% 归一化
[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,:);
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);%训练集期望输出反归一化

参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/126378086?spm=1001.2014.3001.5501
[2] https://blog.csdn.net/kjm13182345320/article/details/126358211?spm=1001.2014.3001.5501

http://www.lryc.cn/news/11387.html

相关文章:

  • 【TypeScrip】TypeScrip的任意类型(Any 类型 和 unknown 顶级类型):
  • 智能洗地机什么牌子好?智能洗地机排行
  • 【数据结构与算法】链表1:移除链表 设计链表链表反转(双指针法、递归法)
  • 山东大学软件学院面向对象简答题整理【个人向】
  • JAVA时间类及JAVA8新时间类
  • ASEMI代理FGH60N60SFD,安森美FGH60N60SFD原装IGBT
  • 【云原生之Docker实战】使用dokcer部署web端vscode
  • Docker安装Tomcat、mysql、redis
  • 【python 基础篇 八】python的常用数据类型操作-------集合
  • Spring框架中问题补充
  • 【Leedcode】顺序表必备的三道面试题(附图解)
  • SOFA Weekly|开源人、本周贡献 issue 精选
  • 2023美赛 ICM E题详细版思路
  • 【LeetCode】剑指 Offer(3)
  • springboot simple (13) springboot Elasticsearch(Elasticsearch8.5.1)
  • 《爆肝整理》保姆级系列教程python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
  • 分享111个HTML旅游交通模板,总有一款适合您
  • guava中ImmutableList使用示例详解
  • ASE28N50-ASEMI高压N沟道MOS管ASE28N50
  • MyBatis缓存
  • Linux环境下(CentOS 7)安装Java(JDK8)
  • 基于STM32L431+Liteos的串口空闲中断加DMA循环接收
  • BZOJ4403 序列统计
  • 如何正确使用 钳位二极管
  • 【C语言进阶】动态内存管理
  • 第一批因ChatGPT坐牢的人,已经上路了
  • Eclipse下Maven的集成
  • Elasticsearch7学习笔记(尚硅谷)
  • 前端学习第一阶段-第7章 品优购电商项目
  • cocos2dx 4.0 - cpp - pc版 环境搭建