• 基于日特征气象因素的支持向量机预测电力负荷(Matlab代码实现)


     🍒🍒🍒欢迎关注🌈🌈🌈

    📝个人主页:我爱Matlab


    👍点赞➕评论➕收藏 == 养成习惯(一键三连)🌻🌻🌻

    🍌希望大家多多支持🍓~一起加油 🤗

    💬语录:将来的我一定会感谢现在奋斗的自己!

    🍁🥬🕒摘要🕒🥬🍁

    本文选取基于日特征气象因素的支持向量机预测方法,用Matlab编制模型的算法程序,从数据集中选取若干天数的历史数据作为模型的训练集,其余的数据作为测试集,模型最终能够实现对测试集中不同日期的负荷大小预测。

    ✨🔎⚡运行结果⚡🔎✨

    ​​

     

     ​

    💂♨️👨‍🎓Matlab代码👨‍🎓♨️💂


    %% 清空环境变量
    close all;
    clear all;
    clc;
    format compact;
    %% 数据的提取和预处理
    data=xlsread('筛选后数据');
    ts =  data((1:320),1);%训练集输出
    tsx = data((1:320),2:end);%训练集输入
    tts=data((321:end),1);%预测集输出
    ttx= data((321:end),2:end);%预测集输入
    % 数据预处理,将原始数据进行归一化
    ts = ts';
    tsx = tsx';
    tts=tts';
    ttx=ttx';

    % mapminmax为matlab自带的映射函数    
    % 对ts进行归一化
    [TS,TSps] = mapminmax(ts,-1,1);    %矢量归一化
    [TTS,TTSps]= mapminmax(tts,-1,1);
    TS = TS';
    TTS=TTS';

    % mapminmax为matlab自带的映射函数
    % 对tsx进行归一化
    [TSX,TSXps] = mapminmax(tsx,-1,1);    %特征值归一化
    [TTX,TTXps] = mapminmax(ttx,-1,1);    
    % 对TSX进行转置,以符合libsvm工具箱的数据格式要求
    TSX = TSX';
    TTX = TTX';

    %% 选择回归预测分析最佳的SVM参数c&g

    % 进行参数选择: 
    [bestmse,bestc,bestg] = SVMcgForRegress(TS,TSX,-10,10,-10,10);
    % 打印参数选择结果
    disp('打印参数选择结果');
    str = sprintf( 'Best Cross Validation MSE = %g Best c = %g Best g = %g',bestmse,bestc,bestg);
    disp(str);


    %% 利用回归预测分析最佳的参数进行SVM网络训练
    cmd = ['-c ', num2str(bestc), ' -g ', num2str(bestg) , ' -s 3 -p 0.01'];
    model = svmtrain(TS,TSX,cmd);

    %% SVM网络回归预测
    [predict,mse] = svmpredict(TS,TSX,model);
    [predict_2,mse_2] = svmpredict(TTS,TTX,model);
    predict = mapminmax('reverse',predict',TSps);
    predict_2 = mapminmax('reverse',predict_2',TTSps);
    predict = predict';
    predict_2 =predict_2'

    % 均方根误差计算
    N = length(tts);
    RMSE = sqrt((sum((tts-predict_2').^2))/N)
    % % 相关系数
    % N = length(tts);
    % YUCE_R2 = (N*sum(predict_2'.*tts)-sum(predict_2)*sum(tts))^2/((N*sum((predict_2).^2)-(sum(predict_2'))^2)*(N*sum((tts).^2)-(sum(tts))^2))
    %% 结果分析(测试集)
    figure;
    plot(tts,'-o');
    hold on;
    plot(predict_2,'r-^');
    legend('实际负荷','预测负荷');
    hold off;
    title('SVM预测输出图','FontSize',12);
    xlabel('2019年11月20日-2019年12月30日','FontSize',12);
    ylabel('负荷(KW)','FontSize',12);

    📜📢🌈参考文献🌈📢📜

    [1]梁静.互信息和改进支持向量机在电力负荷预测中的应用[J].红水河,2022,41(04):108-112.

  • 相关阅读:
    dll修复工具安装教程
    开源框架中的责任链模式实践
    重载与重写
    2023秋招回顾--Java开发--个人心得
    java 每种设计模式的作用,与应用场景
    红队专题-工具Fscan
    AYIT嵌入式实验室2023级C语言训练1-4章训练题
    基于python和定向爬虫的商品比价系统
    nodejs+vue流浪猫狗救助领养elementui
    【vxe-table】加载渲染列表数据的写法以及一些相关的常用属性
  • 原文地址:https://blog.csdn.net/weixin_66436111/article/details/128127564