BP和SVM是最常见的一类算法,常用来做测试或者和新算法做对比。在这里我们将给BP和SVM直接应用到时间序列预测的教程。
1.下载时间序列数据集和程序。其中,网盘连接是:https://pan.baidu.com/s/1zofxWIHbbs5pevjH6r_AVA,密码是“hvqy”。
“NewTrainTest.CSV”是一个时间序列的数据集,保护了16948行19列。其中,1-18列可以认为是X,第19列认为是Y。我们现在要做的就是训练19个X和Y之间的关系,然后给定X去预测Y。
2. 下载MATLAB,我的环境是2018a,其他版本的matlab我没有试过。把下载好的文件放到matlab的默认路径中,如图1所示。我的MATLAB的默认路径是“D:\Matlab2018a\2019322”,你只需要刚刚下载的文件复制到那里去就可以。然后用记事本把“SVM.txt”打开,复制里面的全部代码,在matlab的命令行窗口粘帖就可以运行程序了。
3. SVMoutput就是SVM关于测试集的预测的Y值,output_test是测试集真实的Y值。rmse、mape 、mae是测试集的几个预测常用的性能指标的统计结果。BP的代码和SVM差不多,这里不作赘述。代码中有一个6947,这数字可以修改。刚刚不是说了数据集有16948条吗,我们这里认为最后的6947作为测试集,前面的10001条作为训练集用来训练BP或SVM。这个数字当然可以修改。此外,要注意就是数据集必须把Y放到最后,X放到前面。比如你要预测Y=f(x1,x2,x3)的关系,在做csv文件的时候就要把Y放到最后一列。