BKA-CNN-BiLSTM、CNN-BiLSTM、BiLSTM、CNN四模型多变量时序光伏功率预测,附模型报告

BKA-CNN-BiLSTM、CNN-BiLSTM、BiLSTM、CNN四模型多变量时序光伏功率预测,附模型报告

预测效果

在这里插入图片描述

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

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

基本介绍

BKA-CNN-BiLSTM、CNN-BiLSTM、BiLSTM、CNN四模型多变量时序光伏功率预测 (Matlab2020b 多输入单输出)

1.程序已经调试好,替换数据集后,仅运行一个main即可运行,数据格式为excel!!!

2.BKA-CNN-BiLSTM、CNN-BiLSTM、BiLSTM、CNN四模型多变量时序光伏功率预测 (Matlab2023b 多输入单输出),考虑历史特征的影响。

BKA优化隐藏层节点数、初始学习率、L2正则化系数。黑翅鸢优化算法(Black-winged kite algorithm,BKA)是一种受自然启发的群智能优化算法。

3.运行环境要求MATLAB版本为2020b及其以上。

4.评价指标包括:R2、MAE、MSE、RPD、RMSE、MAPE等,图很多,符合您的需要代码中文注释清晰,质量极高。
在这里插入图片描述
数据集
在这里插入图片描述

程序设计

  • 完整源码和数据获取方式私信回复BKA-CNN-BiLSTM、CNN-BiLSTM、BiLSTM、CNN四模型多变量时序光伏功率预测,附模型报告。
%% 预测
t_sim1 = predict(net, p_train); 
t_sim2 = predict(net, p_test ); 

%%  数据反归一化
T_sim1 = mapminmax('reverse', t_sim1, ps_output);
T_sim2 = mapminmax('reverse', t_sim2, ps_output);

%%  均方根误差
error1 = sqrt(sum((T_sim1' - T_train).^2) ./ M);
error2 = sqrt(sum((T_sim2' - T_test ).^2) ./ N);


%%  相关指标计算
%  R2
R1 = 1 - norm(T_train - T_sim1')^2 / norm(T_train - mean(T_train))^2;
R2 = 1 - norm(T_test  - T_sim2')^2 / norm(T_test  - mean(T_test ))^2;

disp(['训练集数据的R2为:', num2str(R1)])
disp(['测试集数据的R2为:', num2str(R2)])

%  MAE
mae1 = sum(abs(T_sim1' - T_train)) ./ M ;
mae2 = sum(abs(T_sim2' - T_test )) ./ N ;

disp(['训练集数据的MAE为:', num2str(mae1)])
disp(['测试集数据的MAE为:', num2str(mae2)])

%% 平均绝对百分比误差MAPE
MAPE1 = mean(abs((T_train - T_sim1')./T_train));
MAPE2 = mean(abs((T_test - T_sim2')./T_test));

disp(['训练集数据的MAPE为:', num2str(MAPE1)])
disp(['测试集数据的MAPE为:', num2str(MAPE2)])

%  MBE
mbe1 = sum(abs(T_sim1' - T_train)) ./ M ;
mbe2 = sum(abs(T_sim1' - T_train)) ./ N ;

disp(['训练集数据的MBE为:', num2str(mbe1)])
disp(['测试集数据的MBE为:', num2str(mbe2)])

%均方误差 MSE
mse1 = sum((T_sim1' - T_train).^2)./M;
mse2 = sum((T_sim2' - T_test).^2)./N;

disp(['训练集数据的MSE为:', num2str(mse1)])
disp(['测试集数据的MSE为:', num2str(mse2)])

参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/128577926?spm=1001.2014.3001.5501
[2] https://blog.csdn.net/kjm13182345320/article/details/128573597?spm=1001.2014.3001.5501

### WSet-CNN-BKA-LSSVM 技术概述 WSet-CNN-BKA-LSSVM 是一种结合了多种机器学习和信号处理技术的复杂模型,旨在提高分类性能。该模型主要由以下几个部分组成: - **WSet (Weighted Set)**:用于加权输入数据集中的样本权重,使得重要样本得到更多关注。 - **CNN (Convolutional Neural Network)**:通过卷积层自动提取图像或其他结构化数据的特征表示[^1]。 - **BKA (Black Kite Algorithm)**:一种启发式优化算法,用于优化 CNN 和 LSSVM 的超参数配置[^2]。 - **LSSVM (Least Squares Support Vector Machine)**:最小二乘支持向量机是一种改进的支持向量机变体,在求解过程中采用线性方程组代替二次规划问题,从而加快计算速度并简化实现过程。 #### 特征提取与预处理阶段 在应用 WSet-CNN-BKA-LSSVM 进行数据分析之前,通常需要对原始数据进行预处理。这一步骤可能涉及标准化、归一化以及去除噪声等操作。对于图像数据而言,还需要调整大小至统一尺寸以便于后续处理。 接着利用 CNN 对经过预处理的数据执行特征抽取任务。此期间会经历多个卷积核过滤器作用下的变换,并配合池化层减少维度的同时保留关键信息。 ```python import tensorflow as tf from tensorflow.keras import layers, models def create_cnn_model(input_shape): model = models.Sequential() model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=input_shape)) model.add(layers.MaxPooling2D((2, 2))) model.add(layers.Conv2D(64, (3, 3), activation='relu')) model.add(layers.MaxPooling2D((2, 2))) model.add(layers.Flatten()) return model ``` #### BKA 参数调优流程 为了获得最佳性能表现,需借助 BKA 来寻找最优组合设置。这一环节涉及到定义适应度函数来评估不同参数设定下系统的效能指标;随后迭代更新种群直至收敛到全局最优点近为止。 ```matlab function best_params = bka_optimization(problem_definition) % Initialize population and other parameters... while not_converged evaluate_fitness(population); update_population(); if meet_stopping_criteria break; end end [~, idx] = max(fitness_values); best_params = population(idx,:); end ``` #### 使用 LSSVM 完成最终分类 当完成上述准备工作之后,则可以将从 CNN 提取出来的高级语义特征传递给已经过 BKA 调整过的 LSSVM 模型来进行最后的决策判断。此时需要注意的是要确保训练集和验证集中各类别的分布均衡以避免偏差影响准确性[^3]。 ```python from sklearn.svm import SVC from libsvm.svmutil import * # Assuming X_train contains the features extracted by CNN, # y_train are corresponding labels. model = svm_train(y_train.tolist(), X_train.tolist(), '-s 0 -t 2') p_label, p_acc, p_val = svm_predict(y_test.tolist(), X_test.tolist(), model) print('Accuracy:', p_acc[0]) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机器学习之心

谢谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值