资源简介
自己写的PSO优化的LSSVM代码,用于对电力负荷的时间序列进行预测,含有原始数据序列。

代码片段和文件信息
%% 文件说明
% main.m : 主文件,进行预测,将生成的网络保存到 ‘nets.mat‘中
% main_back.m : 使用‘nets.mat‘重现结果
% nets.mat : 保存 3 * 48 个grnn网络,用于结果重现
% QLD1.csv : 原始数据(用的什么时候的数据你点开看一下就明白了)
% QLD1.mat : 导成matlab格式的数据
% optimizeGrnn.m : 使用模拟退火优化grnn的spread参数
% adaboost : 组合算法 输出结果的第一个数是组合后的mape
%% 原理
% 一周共使用48个神经网络
% 输入前一个周7个相同时间点的数据 得到 本周7个相同时间点的数据
%% 注意
% 老婆大人你只需要注意我加 ‘%%‘ 标注的代码
% 不用执行本文件,运行‘main_back.m‘即可看到结果
% net1MeanMape =
% 0.0165 <- grnn1
% net2MeanMape =
% 0.0168 <- grnn2
% net3MeanMape =
% 0.0168 <- grnn3
% combineMeanMapes =
% 0.0157 <- adaboost
clc;
close;
clear;
testWeekNum = 1;
%% 训练数据周数
trainWeekNum = 228;
load QLD1;
QLD1 = reshape(QLD1 48 length(QLD1)/48);
testWeekInd = 1;
trainWeekInd = 1 + (1:trainWeekNum);
testWeekX = [];
testWeekY = [];
for yWeekInd = testWeekInd
yWeekDayInd = (yWeekInd*7-6):(yWeekInd*7);
xWeekDayStart = yWeekInd * 7 + 1;
xWeekDayEnd = (yWeekInd + 1) * 7;
xWeekDayInd = xWeekDayStart:xWeekDayEnd;
yDayData = QLD1(: yWeekDayInd);
xDayData = QLD1(: xWeekDayInd);
testWeekY = [testWeekY yDayData‘];
testWeekX = [testWeekX xDayData‘];
end
trainWeekX = [];
trainWeekY = [];
for yWeekInd = trainWeekInd
yWeekDayInd = (yWeekInd*7-6):(yWeekInd*7);
xWeekDayStart = yWeekInd * 7 + 1;
xWeekDayEnd = (yWeekInd + 1) * 7;
xWeekDayInd = xWeekDayStart:xWeekDayEnd;
yDayData = QLD1(: yWeekDayInd);
xDayData = QLD1(: xWeekDayInd);
trainWeekY = [trainWeekY yDayData‘];
trainWeekX = [trainWeekX xDayData‘];
end
nets = {};
netMapes = [];
for time = 1:48
disp([‘ time:‘ num2str(time)]);
testInd = (0:(testWeekNum-1)) * 48 + time;
trainInd = (0:(trainWeekNum-1)) * 48 + time;
global trainX trainY xmap ymap testX testY;
testX = testWeekX(: testInd);
testY = testWeekY(: testInd);
trainX = trainWeekX(:trainInd);
trainY = trainWeekY(:trainInd);
[trainX xmap] = mapminmax(trainX 0.0000001 1);
[trainY ymap] = mapminmax(trainY 0.0000001 1);
testX = mapminmax(‘apply‘ testX xmap);
[bestGam bestSig2] = optimizeLSSVM();
rand(‘seed‘ 2);
net = initlssvm(trainX‘ trainY‘ ‘function estimation‘ bestGam bestSig2 ‘RBF_kernel‘);
net = trainlssvm(net);
ySim = simlssvm(net testX‘)‘;
ySim = mapminmax(‘reverse‘ ySim ymap);
mape_ = mape(testY ySim);
nets{time 1} = net;
netMapes = [netMapes mape_];
end
meanMape = mean(netMapes)
save nets nets;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-08-15 21:25 lssvm+pso\
文件 2792 2016-08-15 21:20 lssvm+pso\main.m
文件 1835 2016-08-15 21:24 lssvm+pso\main_back.m
文件 108 2016-08-15 21:07 lssvm+pso\mape.m
文件 1818832 2016-08-15 21:23 lssvm+pso\nets.mat
文件 671 2016-08-15 21:21 lssvm+pso\optimizeLSSVM.asv
文件 671 2016-08-15 21:21 lssvm+pso\optimizeLSSVM.m
文件 4557 2016-08-15 21:12 lssvm+pso\PSO.m
文件 292213 2016-08-15 21:07 lssvm+pso\QLD1.mat
- 上一篇:最简单的stm32 RTOS
- 下一篇:Away3d+as3dmod超炫3D相册
相关资源
- EPSON XP225 xp235 xp245打印机清零软件+教
- 爱普生(EPSON)L3151 3153 3156 3157 3158不
- EPSON打印机程序设计指南(ESC/POS指令
- epson 2020黑白激光打印机驱动 win7/win
- L111墨水恢复软件
- EPSON T50 x86 32bit v6.62 爱普生打印机简
- 基于PSO优化BP神经网络的水质预测研究
- epson wf2750 64位 驱动
- 基于Spark的PSO并行计算
- 微电网PSO优化算法
- IBM Rational Harmony Deskbook _基于模型的系
- pso并行化算法.rar
- EPSON Stylus Photo R330 清零中文版
- EPson Photo1390 百度西EP601 ICC
- Epson L111 L211 L301 L303 L351 L353 L358 L551清
- EPSON L3115 L3118 l3119 打印机清零软件+教
- epson me350扫描驱动 官方版
- EPSON ME330 清零软件 免费
- EPSON L101+L201废墨清零
- EPSON L1110 Series 废墨清零软件含教程
- 爱普生Epson lq590k打印机驱动 v7.3.10sc
- EPSON L110-L210-L300-L350-L355 清零软件
- Epson爱普生LQ-50K针式打印机驱动 v1.0
- epson 690k pro驱动
-
epson
m>m m>101清 - 基于Grid-Search_PSO优化SVM回归预测矿井
- 深度学习框架下LSTM网络在短期电力负
- 赛普拉斯 电容触摸按键 PSoC4_CapSense
- PSoC4 入门中文资料
- PSOC 官方例程 赛普拉斯 RTC 实时时钟
评论
共有 条评论