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 小时前
双指针算法专题(2)
数据结构·算法·leetcode
我要学编程(ಥ_ಥ)3 小时前
滑动窗口算法专题(1)
java·数据结构·算法·leetcode
LluckyYH4 小时前
代码随想录Day 46|动态规划完结,leetcode题目:647. 回文子串、516.最长回文子序列
数据结构·人工智能·算法·leetcode·动态规划
huanxiangcoco4 小时前
73. 矩阵置零
python·leetcode·矩阵
源代码:趴菜4 小时前
LeetCode118:杨辉三角
算法·leetcode·动态规划
luluvx4 小时前
LeetCode[中等] 74.搜索二维矩阵
算法·leetcode·矩阵
机器不会学习CL5 小时前
分类预测|基于改进的灰狼IGWO优化支持向量机SVM的数据分类预测matlab程序 改进策略:Cat混沌与高斯变异
支持向量机·matlab·分类
sjsjs116 小时前
【数据结构-扫描线】力扣57. 插入区间
数据结构·算法·leetcode
一杯茶一道题6 小时前
LeetCode 260. 只出现一次的数字 III
算法·leetcode
MogulNemenis6 小时前
力扣415周赛
java·数据结构·算法·leetcode