支持向量机SVM时间序列预测程序
最后更新于:2024-04-03 23:41:09
一、程序介绍
二、代码运行环境
MATLAB2016~2021
三、程序具体内容
注:图标代表该m文件为脚本文件,可以直接运行;
图标代表函数文件,在没有输入变量的情况下无法直接运行。更详细的解释可以看这里。
1.demos文件夹
demos文件夹中全部为脚本文件,其中的文件使用了funs文件夹中的函数文件实现各种功能。
1.1.ScriptSVM_Mul.m
调用funs中的FunForeSVM_Mul函数进行多步预测(不划分训练集/测试集)的例子,演示了FunForeSVM_Mul函数的常规用法。出图如下:
1.2.ScriptSVM_Mul_TrainAndTest.m
调用funs中的FunForeSVM_Mul_TrainAndTest函数进行多步预测(划分训练集/测试集)的例子,演示了FunForeSVM_Mul_TrainAndTest函数的常规用法。出图如下:
1.3.ScriptSVM_Onestep_TrainAndTest.m
调用funs中的FunForeSVM_Onestep_TrainAndTest函数进行单步预测(划分训练集/测试集)的例子,演示了FunForeSVM_Onestep_TrainAndTest函数的常规用法。出图如下:
2.funs文件夹
funs文件夹中为该工具箱相关的函数文件,该文件夹中的文件无法直接运行,需要在其他文件或命令行窗口中对入口参数赋值并调用。
2.1.DivideInputAndOutput.m
对于一维时间序列预测,将输入的时间序列划分为后续模型训练的输入和输出。该函数为笔者封装的底层通用函数,在其他函数中嵌套调用,也可灵活运用于各种相关场景中。函数参数说明如下:
2.2.DivideTrainAndTestTimes.m
对于一维时间序列预测,将输入的时间序列划分为后续模型训练集、测试集的输入和输出。同样为底层通用函数,可灵活运用于各种相关场景中。函数参数说明如下:
2.3.EvaForeEffect.m
用于评价时间序列预测效果各个量化指标的通用函数,集合了MSE、RMSE、MAE、MAPE、R2等评价指标,一行代码就可以得到预测评价结果。
2.4.FunForeSVM_Mul.m
使用SVM方法进行多步预测。函数参数说明如下:
2.5.FunForeSVM_Mul_TrainAndTest.m
SVM方法做时间序列预测“预测”的程序(多步),部分数据用来训练,剩余数据拿来做对比验证。函数参数说明如下:
2.6.FunForeSVM_Onestep_TrainAndTest.m
SVM方法做时间序列预测“预测”的程序(单步),部分数据用来训练,剩余数据拿来做对比验证。函数参数说明如下:
3.install_funs.m
工具箱快速安装函数,使用方法见第四节。
4.uninstall_funs.m
工具箱快速卸载函数,使用方法见第四节。
四、快速开始
1.一键式安装工具箱
使用前建议先执行安装,安装方法为:
(1)右键点击“install_funs.m”,再点运行。
(2)当在命令行窗口出现下图提示时说明安装完成
2.使用你的数据快速获取预测结果
(1)导入数据
根据你的文件类型的不同(excel,txt,csv等),将数据导入MATLAB的方法有所不同。同学们可以先参考这个文档。或者看博主针对常用文件的导入方法的这个教程。
如果你已经实现了数据导入,这时候应该拥有了一个一维数据变量,这时候就可以调用函数进行预测了。
(2)实现预测
参照demos文件夹中的m文件编写自己的脚本文件。
3.卸载工具箱
这步通常是不需要的,如果一定要卸载(从MATLAB路径中去除)该工具箱,则右键uninstall_funs.m运行即可。
五、关于完整版与公开版代码
功能 | 正式版 | 公开版 |
数据导入、参数设置、模型训练与可视化结果展示 | √ | √ |
软件全部源码(函数m文件) | √ | × |
可导出预测结果数据 | √ | × |
预测图无水印 | √ | × |
六、获取公开版程序(需使用电脑浏览器打开)
SVM时间序列公开版代码
七、获完整版程序(需使用电脑浏览器打开)
获取通道一(淘宝):点击此处获取完整版程序
获取通道二(本页面):点击下面“立即支付”按钮,付款后获取完整版代码下载链接和售后联系方式~本通道处于测试阶段,使用该通道可以额外优惠(仅需68元)。付款完成后刷新一下本页面即可看到下载链接。
(注意支付跳转失败的话,请使用浏览器打开本页面)
八、重要更新
20240403 修复FunForeSVM_Onestep_TrainAndTest函数输出的拟合值未反归一化的bug
20211204 优化数据集划分逻辑
20211023 创建SVM时间序列的初始版本代码