回归预测 | MATLAB实现CNN-SVM多输入单输出回归预测

回归预测 | MATLAB实现CNN-SVM多输入单输出回归预测

目录

预测效果



基本介绍

CNN-SVM多输入单输出回归预测是一种结合卷积神经网络(CNN)和支持向量机(SVM)的混合模型,用于处理和预测具有多输入单输出特性的数据。

卷积神经网络(CNN):

主要用于从输入数据中提取局部特征。通过多个卷积层和池化层,CNN可以有效地捕捉数据中的重要模式和特征。

池化层(如最大池化或平均池化)用于降低特征图的空间维度,减少计算复杂度。

全连接层将高维的特征图展平成一维向量,用于后续的回归任务。

支持向量机(SVM):

在回归任务中,SVM通常用于拟合数据并预测连续值。它通过找到在特征空间中能够划分不同类别的最优超平面来工作,这个概念可以扩展到回归问题中。

为了处理非线性问题,SVM可以使用核函数(如线性核、径向基核、多项式核等)将数据映射到更高维空间,在这个空间中寻找一个线性超平面。

模型架构

多输入层:针对不同的输入变量,设计独立的输入层。这些输入变量可以是图像、文本、时间序列等不同类型的数据。

卷积层:对于图像或其他具有空间结构的数据,使用卷积层提取局部特征。多个卷积层可以逐层提取更抽象、更高级的特征。对于非图像数据,如时间序列数据,可以使用一维卷积层进行特征提取。

池化层:用于降低特征维度,减少计算量,并提高模型的鲁棒性。

全连接层:将卷积层和池化层提取到的特征映射到一个低维的特征空间,并学习到不同特征之间的非线性关系。

SVM回归:全连接层的输出作为SVM回归器的输入。SVM回归器利用提取到的特征进行回归预测,输出最终的预测值。

程序设计

clike 复制代码
%%  清空环境变量
warning off             % 关闭报警信息
close all               % 关闭开启的图窗
clear                   % 清空变量
clc  
addpath(genpath(pwd))
%% 导入数据
data =  readmatrix('day.csv');
data = data(:,3:16);
res=data(randperm(size(data,1)),:);    %此行代码用于打乱原始样本,使训练集测试集随机被抽取,有助于更新预测结果。
num_samples = size(res,1);   %样本个数


% 训练集和测试集划分
outdim = 1;                                  % 最后一列为输出
num_size = 0.7;                              % 训练集占数据集比例
num_train_s = round(num_size * num_samples); % 训练集样本个数
f_ = size(res, 2) - outdim;                  % 输入特征维度


P_train = res(1: num_train_s, 1: f_)';
T_train = res(1: num_train_s, f_ + 1: end)';
M = size(P_train, 2);

P_test = res(num_train_s + 1: end, 1: f_)';
T_test = res(num_train_s + 1: end, f_ + 1: end)';
N = size(P_test, 2);

%  数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test = mapminmax('apply', P_test, ps_input);

[t_train, ps_output] = mapminmax(T_train, 0, 1);
t_test = mapminmax('apply', T_test, ps_output);

%%  数据平铺
trainD =  double(reshape(p_train,size(p_train,1),1,1,size(p_train,2)));
testD  =  double(reshape(p_test,size(p_test,1),1,1,size(p_test,2)));
targetD =  t_train;
targetD_test  =  t_test;

参考资料

1\] https://blog.csdn.net/kjm13182345320/article/details/128267322?spm=1001.2014.3001.5501 \[2\] https://blog.csdn.net/kjm13182345320/article/details/128234920?spm=1001.2014.3001.5501

相关推荐
简简单单做算法34 分钟前
基于LSTM深度学习网络的视频类型分类算法matlab仿真
深度学习·matlab·分类·lstm·视频类型分类
王上上17 小时前
【论文阅读51】-CNN-LSTM-安全系数和失效概率预测
论文阅读·cnn·lstm
喵王叭18 小时前
【神经网络概述】从感知机到深度神经网络(CNN & RNN)
神经网络·cnn·dnn
kev_gogo18 小时前
关于回归决策树CART生成算法中的最优化算法详解
算法·决策树·回归
2zcode1 天前
基于Matlab图像处理的水果分级系统
图像处理·人工智能·matlab
88号技师1 天前
2025年7月Renewable Energy-冬虫夏草优化算法Caterpillar Fungus Optimizer-附Matlab免费代码
开发语言·人工智能·算法·matlab·优化算法
go54631584652 天前
基于阿里云平台的文章评价模型训练与应用全流程指南
图像处理·人工智能·深度学习·阿里云·cnn·机器人·云计算
绝顶大聪明2 天前
【CNN】卷积神经网络多通道卷积与偏置过程- part2
深度学习·神经网络·cnn
cwn_2 天前
tensorflow搭建神经网络
人工智能·rnn·深度学习·神经网络·机器学习·cnn·tensorflow
slandarer2 天前
MATLAB | 绘图复刻(二十二)| 带树状图的三角热图合集
matlab·nature