【MATLAB第53期】基于MATLAB的TSK模糊神经网络时间序列预测模型,含短期预测未来功能
一、效果展示

 
 
二、数据设置
- 数据采用一列数据
- 滑动窗口设置为5 ,可自行设置
- 70%训练
- 30%测试
- 预测未来值为10 ,可自行设置,控制10以内
  
  
三、模型参数
nRules = 1;%模糊推理规则的数量
velocity = 2;%学习速度[0,velocity]之间二进制搜索
nEpochs = 1; %运行次数
评价指标:
   error = desired - output;% 相对误差
   ESS = sum(error(1:n).^2);%误差平方和
    SigmaM = sqrt(var(error(1:n)));%误差方差
    DW = sum(diff(error(1:n)) .^ 2) / sum(error(1:n) .^ 2);%达宾-沃森值
    R2 = 1 - ESS / sum((desired(1:n) - mean(desired(1:n))) .^ 2);%决定系数
        MAPE = mean(abs(error(n+1:end)) ./ abs(desired(n+1:end))) * 100;%mape
    SigmaF = sqrt(var(error(n+1:end)));%误差方差
    Tale = %泰尔系数
四、代码展示
clear all
load data %导入数据   一列数据 
tskData=data; %数据命名为tskData 
acf = autocorr(tskData, length(tskData)-1);% 自相关
pacf = parcorr(tskData, length(tskData)-1);%偏自相关
        
        
    figure();% 偏自相关绘图
    grid on    
    bar(pacf);
    title('偏自相关');
    xlabel('Lag');
    ylabel('Autocorrelation');
    
        
    figure();% 自相关绘图
    grid on    
    bar(acf);
    title('自相关');
    xlabel('Lag');
    ylabel('Autocorrelation');
    
    nInputs =5;%滑动窗口数量 
    nRules = 1;%模糊推理规则的数量
    velocity = 2;%学习速度[0,velocity]之间二进制搜索
    nEpochs = 1; %运行次数
    nLearnSamples =0.7;% 训练样本数量比例
    nSamples = length(tskData) - nInputs; %样本数量
    learnPercent = 70;%训练比例
       testPercent = 100 - learnPercent;%测试比例
    
    Fn = 10;%预测未来数量 ,只支持短期预测。 如10以内
%滑动窗口处理
   	sample = zeros(nSamples, nInputs);
    for i = 1:nSamples
        sample(i,:) = tskData(i:i+nInputs-1);
    end
五、代码获取
后台私信回复“53期”即可获取下载链接。



















