Matlab|基于支持向量机的电力短期负荷预测【最小二乘、标准粒子群、改进粒子群】

目录

主要内容

部分代码

结果一览

下载链接


主要内容

该程序主要是对电力短期负荷进行预测,采用三种方法,分别是最小二乘支持向量机(LSSVM)、标准粒子群算法支持向量机和改进粒子群算法支持向量机三种方法对负荷进行预测,有详实的文档资料,程序注释清楚,方便学习!

部分代码

复制代码
%C为最小二乘支持向量机的正则化参数,theta为高斯径向基的核函数参数,两个需要进行优化选择调试
NumOfPre =1;%预测天数,在此预测本季度最后七天
Time = 24;
Data = xlsread('a23.xls');%此为从excel表格读数据的命令,表示将表格的数据读到Data数组中,省略表格中的第一行第一列文字部分 可输入你要预测的表格名称
[M N] = size(Data);%计算读入数据的行和列 M行N列
for i = 1:3
    maxData = max(Data(:,i));
    minData = min(Data(:,i));
    Data1(:,i) = (Data(:,i) - minData)/(maxData-minData);%对温度进行归一化处理
end
for i = 4:5
    Data1(:,i) = Data(:,i);
end
for i = 6:N
    Data1(:,i) = log10(Data(:,i)) ;%对负荷进行对数处理 温度和负荷的预处理 可采用不同的方法 可不必拘泥
end
Dim =  M - 2 - NumOfPre;%训练样本数%训练样本数
Input = zeros(M-2,12,Time);%预先分配处理后的输入向量空间
y = zeros(Dim,Time);
for i = 3:M 
    for j = 1:Time
        %%选取前一天温度、同一时刻的负荷,前两天的负荷,当天的温度作为输入特征
        x = [Data1(i-1,1:5), Data1(i-1,j+5), Data1(i-2,j+5),Data1(i,1:5)];
        Input(i-2,:,j) = x;
        y(i-2,j) = Data1(i,j+5);
    end
end
Dist = zeros(Dim,Dim,Time);%预先分配距离空间
for i=1:Time
    for j=1:Dim
        for k=1:Dim
            Dist(j,k,i) = (Input(j,:,i) - Input(k,:,i))*(Input(j,:,i) - Input(k,:,i))';
        end
    end
end
Dist1=exp(-Dist/(2*YY));%RBF
for i=1:Time
    H = Dist1(:,:,i) + eye(Dim)/XX;%最小二乘支持向量的H矩阵

结果一览

1.最小二乘支持向量机(LSSVM)

2.标准粒子群算法支持向量机

3.改进粒子群算法支持向量机

下载链接

相关推荐
代码对我眨眼睛2 小时前
739. 每日温度 LeetCode 热题 HOT 100
算法·leetcode
wearegogog1233 小时前
基于块匹配的MATLAB视频去抖动算法
算法·matlab·音视频
zycoder.5 小时前
力扣面试经典150题day3第五题(lc69),第六题(lc189)
算法·leetcode·面试
王严培.6 小时前
7.MATLAB疑难问题诊疗的技术
开发语言·matlab·信息可视化
bubiyoushang8887 小时前
MATLAB实现直流电法和大地电磁法的一维正演计算
前端·javascript·matlab
_dindong12 小时前
基础算法:滑动窗口
数据结构·学习·算法·leetcode·力扣
码上地球14 小时前
大数据成矿预测系列(四) | 成矿预测的“主力军”:随机森林与支持向量机深度解析
大数据·随机森林·支持向量机
nju_spy16 小时前
力扣每日一题(二)任务安排问题 + 区间变换问题 + 排列组合数学推式子
算法·leetcode·二分查找·贪心·排列组合·容斥原理·最大堆
代码对我眨眼睛16 小时前
226. 翻转二叉树 LeetCode 热题 HOT 100
算法·leetcode·职场和发展
黑色的山岗在沉睡17 小时前
LeetCode 494. 目标和
算法·leetcode·职场和发展