首页 > 其他分享 >基于SVM支持向量机的数据预测matlab仿真

基于SVM支持向量机的数据预测matlab仿真

时间:2024-03-30 16:36:57浏览次数:26  
标签:仿真 dn SVM end 31 XX matlab Year tmps2

1.算法运行效果图预览

 

 

2.算法运行软件版本

matlab2022a

 

3.算法理论概述

       支持向量机是一种监督学习方法,主要用于分类和回归分析。它基于结构风险最小化原则构建最优超平面以实现最大间隔分类,并且在处理非线性问题时通过核函数映射到高维特征空间来实现线性可分。

 

 

 

4.部分核心程序

Year=[2011,2012,2013,2014,2015,2016];
figure;
plot(Year,dn{i},'k-o');
hold on
plot(Year,Predict1{i},'r-s');
grid on
xlabel('year');
ylabel('value');
legend('真实值','训练预测值');
 
 
%获得误差
for i = 1:31
    error(i) = mean(abs(dn{i}-Predict1{i}));
    RMSE(i) = sqrt(sum(abs(dn{i}-Predict1{i}).^2)/6);
end
figure;
bar(RMSE);
title('31个城市训练数据的RMSE误差值');
 
%使用训练模型进行预测
%输入2017年到2020的X变量作为采集数据
%从excel中没提供这个数据集,所以需要这里先用模拟的数据。这里采用拟合法,得到未来几年大概的X值
for i = 1:31%31个城市
    tmps1 = Xn{i};
    for j = 1:24
        tmps2 = tmps1(:,j);
        X     = [Year'];
        %进行拟合
        X2    = 2018;
        tmps4(:,j) = [tmps2;tmps2(end)+0.001*(X2-2016)*(tmps2(end)-tmps2(end-1))];%调节过大的幅度
    end
    Xn2{i} = tmps4;
end
 
 
%进行预测
for i = 1:31%31个城市
    [Predict2{i},error2] = svmpredict([1;1;1;1;1;1;1],Xn2{i},model{i});
end
 
 
%用北京的数据进行显示预测结果
Year2=[2011,2012,2013,2014,2015,2016,2018];
 
K=1;%设置不同的K,选择显示不同的城市
.......................................................
for i = 1:31
figure;
subplot(211);
plot(Year,dn{i},'bs','LineWidth',1,...
                       'MarkerSize',10);
hold on
plot(Year2,Predict2{i},'r-s','LineWidth',1,...
                       'MarkerEdgeColor','k',...
                       'MarkerFaceColor','g',...
                       'MarkerSize',4)
grid on
xlabel('year');
ylabel('value');
legend('真实值','2018预测值');
title([NAME{i},'预测值']);
subplot(212);
bar([abs(dn{i}-Predict2{i}(1:end-1));0]);
title('误差');
 
 
end
 
%保存数据
XX=[];
for i = 1:31
    XX=[XX,Predict2{i}(end)];
end
%注意,XX就是最后的2020年数据Y
XX

  

标签:仿真,dn,SVM,end,31,XX,matlab,Year,tmps2
From: https://www.cnblogs.com/matlabworld/p/18105668

相关文章

  • 基于DWT(离散小波变换)的图像加密水印算法,Matlab实现
           博主简介:专注、专一于Matlab图像处理学习、交流,matlab图像代码代做/项目合作可以联系(QQ:3249726188)       个人主页:Matlab_ImagePro-CSDN博客       原则:代码均由本人编写完成,非中介,提供有偿Matlab算法代码编程服务,不从事不违反涉及学术原则......
  • 基于单片机的水位检测系统仿真设计
    **单片机设计介绍,基于单片机的水位检测系统仿真设计文章目录一概要二、功能设计设计思路三、软件设计原理图五、程序六、文章目录一概要  基于单片机的水位检测系统仿真设计概要主要涵盖硬件设计、软件设计、仿真测试以及优化调整等方面。以下是对该设计......
  • Matlab|含sop的配电网故障重构
    目录1 主要内容2 部分代码3 程序结果4下载链接 1 主要内容程序主要以33节点为研究对象,编制配电网故障重构模型,采用图论知识保证配电网的连通性和辐射性,以网损和负荷损失作为目标函数,包括潮流约束、电压电流约束、sop约束、辐射性约束等。文章《主动配电网故......
  • 多边形边界扩大算法 基于MATLAB
    首先,通过定义多边形的顶点坐标(在paths、paths1和paths2变量中)和外延大小(extra和extra2变量),确定多边形的形状和外延量。对于每个多边形:使用迭代的方式遍历多边形的每个顶点。对于每个顶点,计算与相邻边的单位向量,并根据指定的外延大小计算扩展向量的长度。使用单位向量和......
  • 遗传算法(matlab)
    %求下列函数的最大值%%f(x)=10*sin(5x)+7*cos(4x)x∈[0,10]%%将x的值用一个10位的二值形式表示为二值问题,一个10位的二值数提供的分辨率是每为(10-0)/(2^10-1)≈0.01。%%将变量域[0,10]离散化为二值域[0,1023],x=0+10*b/1023,其中b是[0,1023]中的一个......
  • MATLAB
    MATLAB主要内容突击参考资料:MATLAB入门之旅(mathworks.com)命令在命令的末尾添加分号将抑制输出,但仍会执行该命令,正如您在工作区中所看到的。当您输入命令而没有以分号结尾时,MATLAB将会在命令提示符下显示结果。>>x=5+1x=6>>x=5+1;%不会输出(Ctrl+R......
  • matlab实现神经网络
    一、原理人工神经网络是具有适应性的简单神经元组成的广泛并互连的网络,它的组织能够模拟生物神经系统对真实世界物体作出的交互式反应。人工神经网络具有自学习、自组织、较好的容错性和优良的非线性逼近能力将神经网络的学习能力引入到模糊系统中,将模糊系统的模糊化处理、模......
  • m基于yolov2网络的火焰烟雾检测系统matlab仿真,包含GUI界面
    1.算法仿真效果matlab2022a仿真结果如下:  2.算法涉及理论知识概要        YOLOv2是一个实时目标检测系统,由JosephRedmon和AliFarhadi在2016年提出。它通过单个神经网络对输入图像进行一次前向传播就能预测出图像中的多个目标及其位置。在火焰烟雾......
  • MATLAB的一些基本知识
    1.矩阵%矩阵A=[123;456;789]B=A'%行变列,列变行C=A(:)%以先列后行的顺序打印为一列D=inv(A)%求逆A*DE=zeros(10,5,3)%打印三个10行5列的矩阵E(:,:,1)=rand(10,5)%打印随机数E(:,:,2)=randi(5,10,5)%打印最大为5的随机数E(:,:,3)=randn(10,5)%打印均值......
  • 【无人机路径规划】基于深度强化学习的多无人机辅助边缘计算网络路径规划(Matlab代码实
    ......