当前位置:   article > 正文

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

matlabsvm数据预测

目录

1.算法运行效果图预览

2.算法运行软件版本

3.部分核心程序

4.算法理论概述

5.算法完整程序工程


1.算法运行效果图预览

2.算法运行软件版本

matlab2022a

3.部分核心程序

  1. ...........................................................................
  2. Year=[2011,2012,2013,2014,2015,2016];
  3. figure;
  4. plot(Year,dn{i},'k-o');
  5. hold on
  6. plot(Year,Predict1{i},'r-s');
  7. grid on
  8. xlabel('year');
  9. ylabel('value');
  10. legend('真实值','训练预测值');
  11. %获得误差
  12. for i = 1:31
  13. error(i) = mean(abs(dn{i}-Predict1{i}));
  14. RMSE(i) = sqrt(sum(abs(dn{i}-Predict1{i}).^2)/6);
  15. end
  16. figure;
  17. bar(RMSE);
  18. title('31个城市训练数据的RMSE误差值');
  19. %使用训练模型进行预测
  20. %输入2017年到2020的X变量作为采集数据
  21. %从excel中没提供这个数据集,所以需要这里先用模拟的数据。这里采用拟合法,得到未来几年大概的X值
  22. for i = 1:31%31个城市
  23. tmps1 = Xn{i};
  24. for j = 1:24
  25. tmps2 = tmps1(:,j);
  26. X = [Year'];
  27. %进行拟合
  28. X2 = 2018;
  29. tmps4(:,j) = [tmps2;tmps2(end)+0.001*(X2-2016)*(tmps2(end)-tmps2(end-1))];%调节过大的幅度
  30. end
  31. Xn2{i} = tmps4;
  32. end
  33. %进行预测
  34. for i = 1:31%31个城市
  35. [Predict2{i},error2] = svmpredict([1;1;1;1;1;1;1],Xn2{i},model{i});
  36. end
  37. %用北京的数据进行显示预测结果
  38. Year2=[2011,2012,2013,2014,2015,2016,2018];
  39. K=1;%设置不同的K,选择显示不同的城市
  40. .......................................................
  41. for i = 1:31
  42. figure;
  43. subplot(211);
  44. plot(Year,dn{i},'bs','LineWidth',1,...
  45. 'MarkerSize',10);
  46. hold on
  47. plot(Year2,Predict2{i},'r-s','LineWidth',1,...
  48. 'MarkerEdgeColor','k',...
  49. 'MarkerFaceColor','g',...
  50. 'MarkerSize',4)
  51. grid on
  52. xlabel('year');
  53. ylabel('value');
  54. legend('真实值','2018预测值');
  55. title([NAME{i},'预测值']);
  56. subplot(212);
  57. bar([abs(dn{i}-Predict2{i}(1:end-1));0]);
  58. title('误差');
  59. end
  60. %保存数据
  61. XX=[];
  62. for i = 1:31
  63. XX=[XX,Predict2{i}(end)];
  64. end
  65. %注意,XX就是最后的2020年数据Y
  66. XX
  67. 05_058m

4.算法理论概述

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

数学表达式: 超平面可以表示为:

wTx+b=0

其中 w 是法向量,b 是位移项。

最大化间隔的优化问题: 对于给定的数据集,SVM试图找到最优的 w 和b,使其满足以下条件:

KKT条件与最优解: 最终得到的决策函数为:

其中只有支持向量(满足 0<αi​<C 的样本点)影响决策边界。

非线性情况下的SVM原理:为了处理非线性分类问题,引入了核函数 K(xi​,xj​) 来将低维特征映射到高维特征空间:

常用的核函数包括线性核、多项式核、高斯径向基核(RBF)等。

预测模型: 对于新的输入样本x,其预测类别标签由如下公式给出:

5.算法完整程序工程

OOOOO

OOO

O

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/502855
推荐阅读
相关标签
  

闽ICP备14008679号