资源简介
自己写的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相册
相关资源
- 基于PSoC的38译码器
- 《粒子群优化算法》 李丽 牛奔著
- EPSON打印机清零软件
- EPSON TX700W WIN7 64位 繁体中文驱动
- epson R290 win7 64位简体中文驱动程序
- TCPSocket文件传输.rar
- EPSON L800 L801 维修手册
- Postman Mac版本
- WPSOffice2019专业版潮州市党政机关单位
- WPSOffice2016专业版终身授权鸡活.rar
- 01_ALINX_ZYNQ_MPSoC(AXU3CG)逻辑开发教程
- Epson_WF-7620_WF-7610_WF-7110_Series维修手册
- deepsort的权重 文件 ckpt.t7
- MT7628_ProgrammingGuide&&MTK_APSoC_SDK_User_Ma
- DEEPSOIL Installer.exe
- EPSON T50简体中文驱动.rar
- 粒子群优化算法的RBF模型,做预测
- 爱普生EPSON机器人RC+7.3 SPEL+语言参考手
- 实用模拟电路设计2nd汤普森 (Marc T
- 深亚微米CMOS模拟集成电路设计 [美B
- CS布谷鸟算法、PSO粒子群优化源码中文
- emission load dispatch with PSO
- 基于并行GAPSO算法的多无人机协同任务
- 采用遗传粒子群GAPSO和混沌粒子群CP
- 电力负荷预测方法及应用分析
- 基于pso优化lssvm两参数
- 基于UDP SOCKET 统计丢包率
- PSOGSA代码
- BP_Pso算法
- 基于粒子群算法的PID参数寻优MATLA程序
评论
共有 条评论