电力负荷预测基于matlab日特征气象因素支持向量机svm电力负荷预测含matlab源码1612期(代码片段)

紫极神光 紫极神光     2023-03-01     142

关键词:

一、SVM简介

机器学习的一般框架:
训练集 => 提取特征向量 => 结合一定的算法(分类器:比如决策树、KNN)=>得到结果
1 SVM定义
支持向量机(support vector machines,SVM)是一种二分类模型,它将实例的特征向量映射为空间中的一些点,SVM 的目的就是想要画出一条线,以 “最好地” 区分这两类点,以至如果以后有了新的点,这条线也能做出很好的分类。SVM 适合中小型数据样本、非线性、高维的分类问题。

SVM 最早是由 Vladimir N. Vapnik 和 Alexey Ya. Chervonenkis 在1963年提出,目前的版本(soft margin)是由 Corinna Cortes 和 Vapnik 在1993年提出,并在1995年发表。深度学习(2012)出现之前,SVM 被认为机器学习中近十几年来最成功,表现最好的算法。

2 SVM 基本概念
将实例的特征向量(以二维为例)映射为空间中的一些点,如下图的实心点和空心点,它们属于不同的两类。SVM 的目的就是想要画出一条线,以“最好地”区分这两类点,以至如果以后有了新的点,这条线也能做出很好的分类。

Q1:能够画出多少条线对样本点进行区分?
答:线是有无数条可以画的,区别就在于效果好不好,每条线都可以叫做一个划分超平面。比如上面的绿线就不好,蓝线还凑合,红线看起来就比较好。我们所希望找到的这条效果最好的线就是具有 “最大间隔的划分超平面”。

Q2:为什么要叫作“超平面”呢?
答:因为样本的特征很可能是高维的,此时样本空间的划分就不是一条线了。

Q3:画线的标准是什么?/ 什么才叫这条线的效果好?/ 哪里好?
答:SVM 将会寻找可以区分两个类别并且能使间隔(margin)最大的划分超平面。比较好的划分超平面,样本局部扰动时对它的影响最小、产生的分类结果最鲁棒、对未见示例的泛化能力最强。

Q4:间隔(margin)是什么?
答:对于任意一个超平面,其两侧数据点都距离它有一个最小距离(垂直距离),这两个最小距离的和就是间隔。比如下图中两条虚线构成的带状区域就是 margin,虚线是由距离中央实线最近的两个点所确定出来的(也就是由支持向量决定)。但此时 margin 比较小,如果用第二种方式画,margin 明显变大也更接近我们的目标。


Q5:为什么要让 margin 尽量大?
答:因为大 margin 犯错的几率比较小,也就是更鲁棒啦。

Q6:支持向量是什么?
答:从上图可以看出,虚线上的点到划分超平面的距离都是一样的,实际上只有这几个点共同确定了超平面的位置,因此被称作 “支持向量(support vectors)”,“支持向量机” 也是由此来的。

二、部分源代码


%% 清空环境变量
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自带的映射函数
% 对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);

三、运行结果

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.
[3]周品.MATLAB 神经网络设计与应用[M].清华大学出版社,2013.
[4]陈明.MATLAB神经网络原理与实例精解[M].清华大学出版社,2013.
[5]方清城.MATLAB R2016a神经网络设计与应用28个案例分析[M].清华大学出版社,2018.

电力负荷预测基于matlab灰狼算法优化lstm短期电力负荷预测含matlab源码1230期

一、灰狼算法及LSTM简介1灰狼算法简介1.1前言灰狼优化算法(GreyWolfOptimizer,GWO)由澳大利亚格里菲斯大学学者Mirjalili等人于2014年提出来的一种群智能优化算法。该算法受到了灰狼捕食猎物活动的启发而开发的一种优化搜索方法... 查看详情

电力负荷预测基于matlab粒子群算法优化lstm短期电力负荷预测含matlab源码1232期

一、粒子群算法及LSTM简介1粒子群算法简介1.1引言自然界中的鸟群和鱼群的群体行为一直是科学家的研究兴趣所在。生物学家CraigReynolds在1987年提出了一个非常有影响的鸟群聚集模型,在他的仿真中,每一个个体都遵循:避免与... 查看详情

电力负荷预测基于matlab模拟退火算法结合狮群算法优化elman神经网络电力负荷预测含matlab源码1454期

一、模拟退火算法简介1引言模拟退火算法(SimulatedAnnealing,SA)的思想最早由Metropolis等人于1953年提出:Kirkpatrick于1983年第一次使用模拟退火算法求解组合最优化问题[1]。模拟退火算法是一种基于MonteCarlo迭代求解策略的随机寻优算... 查看详情

电力负荷预测基于matlab遗传算法优化bp神经网络电力负荷预测含matlab源码1524期(代码片段)

一、遗传算法简介1引言2遗传算法理论2.1遗传算法的生物学基础2.2遗传算法的理论基础2.3遗传算法的基本概念2.4标准的遗传算法2.5遗传算法的特点2.6遗传算法的改进方向3遗传算法流程4关键参数说明二、BP神经网络简介1BP神经网络... 查看详情

第十届“泰迪杯”数据挖掘挑战赛b题:电力系统负荷预测分析31页省一等奖论文及代码

...08;1)【第十届“泰迪杯”数据挖掘挑战赛】B题:电力系统负荷预测分析问题一Baseline方案(2)【第十届“泰迪杯”数据挖掘挑战赛】B题:电力系统负荷预测分析问题一ARIMA、AutoARIMA、LSTM、Prophet多方案实现... 查看详情

第十届“泰迪杯”数据挖掘挑战赛b题:电力系统负荷预测分析31页省一等奖论文及代码

...08;1)【第十届“泰迪杯”数据挖掘挑战赛】B题:电力系统负荷预测分析问题一Baseline方案(2)【第十届“泰迪杯”数据挖掘挑战赛】B题:电力系统负荷预测分析问题一ARIMA、AutoARIMA、LSTM、Prophet多方案实现... 查看详情

电力负荷预测基于matlabeemd+iwoa+lssvm电力负荷预测含matlab源码jq002期(代码片段)

一、鲸鱼算法及LSTM简介1鲸鱼优化算法(WhaleOptimizationAlgorithm,WOA)简介鲸鱼优化算法(WOA),该算法模拟了座头鲸的社会行为,并引入了气泡网狩猎策略。1.1灵感鲸鱼被认为是世界上最大的哺乳动物。一头成年... 查看详情

时序预测|matlab实现lstm-svr(长短期记忆神经网络-支持向量机)时间序列预测(代码片段)

...量机)时间序列预测;主要研究问题不限于交通预测、负荷预测、气象预测、经济预测等。LSTM和SVR组合预测,结合LSTM序列提取优势和SVR非线性提取优势,组合预测具体介绍如下。模型介绍提出了一种基于长短时记忆神... 查看详情

基于遗传算法优化svm参数的热负荷预测,ga-svm回归分析

...算法的原理及步骤SVM应用实例,基于遗传算法优化SVM的热负荷预测代码结果分析展望背影负荷预测对现代智能化社会拥有重要意义,本文用遗传算法改进的SVM进行热负荷预测支持向量机SVM的详细原理SVM的定义支持向量机(supportve... 查看详情

回归预测-lssvm基于粒子群算法优化最小二乘支持向量机lssvm实现数据回归预测附matlab代码

...线传感器信号处理图像处理路径规划元胞自动机无人机 电力系统⛄内容介绍准确预测光伏电站输出功率,是促进光伏并网发电,提高电网运行稳定性的主要途径之一.该文提出一种基于粒子群算法最小二乘支持向量机(particleswarmoptim... 查看详情

lssvm回归预测基于matlab灰狼算法优化最小支持向量机gwo-lssvm数据预测含matlab源码2259期(代码片段)

...1算法理论采用灰狼优化算法的最小二乘支持向量机模型预测时,为避免过拟合现象和检验该模型的有效性,将实证部分主要分为:①基于灰狼优化算法的最小二乘支持向量机预测(出现过拟合现象);②经过交叉验证的灰狼优化算法的... 查看详情

lssvm回归预测基于matlab灰狼算法优化最小支持向量机gwo-lssvm数据预测含matlab源码2259期(代码片段)

...1算法理论采用灰狼优化算法的最小二乘支持向量机模型预测时,为避免过拟合现象和检验该模型的有效性,将实证部分主要分为:①基于灰狼优化算法的最小二乘支持向量机预测(出现过拟合现象);②经过交叉验证的灰狼优化算法的... 查看详情

lssvm回归预测基于matlab人工蜂群算法优化最小二乘支持向量机lssvm数据回归预测含matlab源码2213期

⛄一、人工蜂群算法优化最小二乘支持向量机LSSVM简介1最小二乘支持向量机最小二乘支持向量机是支持向量机的一种改进算法[9,10],它将SVM算法中的不等式约束转化为等式约束,采用最小二乘线性系统作为损失函数代替支持向量机... 查看详情

lssvm回归预测基于matlab天鹰算法优化最小二乘支持向量机ao-lssvm数据回归预测含matlab源码1848期

⛄一、天鹰算法优化最小二乘支持向量机LSSVM简介1最小二乘支持向量机最小二乘支持向量机是支持向量机的一种改进算法[9,10],它将SVM算法中的不等式约束转化为等式约束,采用最小二乘线性系统作为损失函数代替支持向量机所采... 查看详情

lssvm回归预测基于matlab天鹰算法优化最小二乘支持向量机ao-lssvm数据回归预测含matlab源码1848期

⛄一、天鹰算法优化最小二乘支持向量机LSSVM简介1最小二乘支持向量机最小二乘支持向量机是支持向量机的一种改进算法[9,10],它将SVM算法中的不等式约束转化为等式约束,采用最小二乘线性系统作为损失函数代替支持向量机所采... 查看详情

lssvm预测基于鲸鱼优化算法的lssvm数据预测matlab源码(代码片段)

 1、最小二乘支持向量机LSSVM基本原理最小二乘支持向量机是支持向量机的一种改进,它是将传统支持向量机中的不等式约束改为等式约束,且将误差平方和(SumSquaresError)损失函数作为训练集的经验损失,这样就把解二次规划问... 查看详情

svm时序预测基于matlab鲸鱼算法优化支持向量机svm时序数据预测含matlab源码2250期

⛄一、鲸鱼算法优化支持向量机SVM1鲸鱼优化算法WOA是由Mirjalili和Lewis在2016年提出的一种较为新颖的元启发式群体智能优化算法,该算法模仿座头鲸的“螺旋气泡网”捕食策略,如图1所示。图1座头鲸“螺旋起泡网”捕食... 查看详情

lssvm分类基于matlab最小二乘支持向量机数据分类含matlab源码2330期

...2330期】获取代码方式2:付费专栏Matlab智能算法神经网络预测与分类(初级版)备注:点击上面蓝色字体付费专栏Matlab智能算法神经网络预测与分类(初级版),扫描上面二维码,付费29.9元订阅海神之光博客付费专栏Matlab智能算... 查看详情