【预测模型】SVM电力系统短期负荷预测【Matlab 212期】

一、简介

SVM(Support Vector Machine)指的是支持向量机,是常见的一种判别方法。在机器学习领域,是一个有监督的学习模型,通常用来进行模式识别、分类以及回归分析。
SVM方法是通过一个非线性映射p,把样本空间映射到一个高维乃至无穷维的特征空间中(Hilbert空间),使得在原来的样本空间中非线性可分的问题转化为在特征空间中的线性可分的问题.简单地说,就是升维和线性化.升维,就是把样本向高维空间做映射,一般情况下这会增加计算的复杂性,甚至会引起"维数灾难",因而人们很少问津.但是作为分类、回归等问题来说,很可能在低维样本空间无法线性处理的样本集,在高维特征空间中却可以通过一个线性超平面实现线性划分(或回归).一般的升维都会带来计算的复杂化,SVM方法巧妙地解决了这个难题:应用核函数的展开定理,就不需要知道非线性映射的显式表达式;由于是在高维特征空间中建立线性学习机,所以与线性模型相比,不但几乎不增加计算的复杂性,而且在某种程度上避免了"维数灾难".这一切要归功于核函数的展开和计算理论.

选择不同的核函数,可以生成不同的SVM,常用的核函数有以下4种:

⑴线性核函数K(x,y)=x·y;

⑵多项式核函数K(x,y)=[(x·y)+1]^d;

⑶径向基函数K(x,y)=exp(-|x-y|2/d2)

⑷二层神经网络核函数K(x,y)=tanh(a(x·y)+b).

二、源代码

clc;
clear 
C = 30;
theta = 2;%C为最小二乘支持向量机的正则化参数,theta为高斯径向基的核函数参数,两个需要进行优化选择调试
NumOfPre = 1;%预测天数,在此预测本季度最后七天
%以负荷的加权为参考1
al = 2;%温度的加权
be = 1;%湿度的加权
th = 1;%星期的加权
Time = 48;
Data = xlsread('input.xls');%此为从excel表格读数据的命令,表示将表格的数据读到Data数组中,省略表格中的第一行第一列文字部分 可输入你要预测的表格名称

Data = Data(2:end,:);
[M,N] = size(Data);%计算读入数据的行和列 M行N列
Data1 = Data;
for i = 1:2
    maxData = max(Data(:,i));
    minData = min(Data(:,i));
    Data1(:,i) = (Data(:,i) - minData)/(maxData-minData);%对温度进行归一化处理
end

for i = 4:N
    Data1(:,i) = log10(Data(:,i)) ;%对负荷进行对数处理 温度和负荷的预处理 可采用不同的方法 可不必拘泥
end
Dim =  M - 2 - NumOfPre;%训练样本数%拥有完整特征描述的数据共有M-2组!!
Input = zeros(M,8,Time);%预先分配处理后的输入向量空间%8是特征空间的维度!也是x的元素数!!
y = zeros(Dim,Time);
for i = 3:M 
    for j = 1:Time
        %%选取前一天温度、同一时刻的负荷,前两天的负荷,当天的温度作为输入特征
        x = [Data1(i-1,1:3), Data1(i-1,j+3), Data1(i-2,j+3),Data1(i,1:3)];%x就是每一个负荷对应的特征向量!!!
        x(1)=al*x(1);
        x(6)=al*x(6);
        x(2)=be*x(2);
        x(7)=be*x(7);
        x(3)=th*x(3);
        x(8)=th*x(8);
        Input(i-2,:,j) = x;%Input(i,,k)的含义为:第i天第j个时刻的负荷所对应的特征向量
        y(i-2,j) = Data1(i,j+3);
    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

三、运行结果

在这里插入图片描述
在这里插入图片描述

四、备注

完整代码或者代写添加QQ 912100926
往期回顾>>>>>>
【预测模型】粒子群之lssvm预测模型【Matlab 005期】
【lssvm预测】鲸鱼优化算法之lssvm预测【Matlab 006期】
【SVM预测】蝙蝠算法之SVM预测模型【Matlab 007期】
【SVM预测】灰狼算法优化之SVM支持向量机预测模型【Matlab 008期】
【预测模型】基于BP神经网络的预测模型【Matlab 009期】
【lssvm预测】蝙蝠算法之改进的最小二乘支持向量机lssvm预测【Matlab 010期】
【ISTM预测】鲸鱼优化算法之改进的lSTM预测【Matlab 045期】
【SVM预测】蝙蝠算法之改进SVM预测模型【Matlab 046期】
【lSSVM预测】鲸鱼优化算法之lSSVM数据预测【Matlab 140期】
【ANN预测模型】差分算法之改进ANN网络预测【Matlab 141期】
【预测模型】RBF神经网络预测模型【Matlab 142期】
【预测模型】SVM回归预测算法之预测股票趋势【Matlab 143期】
【预测模型】BP神经网络之模型优化预测【Matlab 176期】
【预测模型】RLS算法之数据预测【Matlab 177期】
【预测模型】碳排放约束下之煤炭消费量优化预测【Matlab 178期】
【预测模型】神经网络的电力负荷预测模型【Matlab 211期】

猜你喜欢

转载自blog.csdn.net/m0_54742769/article/details/113801103