Python|使用深度神经网络的 K-Means 聚类进行短期风电预测
2023-09-14 09:05:20 时间
目录
1 引言
可再生能源的开发利用一直是世界上最热门的热点之一。风力发电由于清洁和广泛的可用性,正迅速向大规模产业发展,并具有波动性和间歇性电力的特点。准确可靠的风电预测方法对于电能质量、可靠性管理以及降低旋转备用供电成本至关重要.
2 问题描述
风能预测对应于对近期一个或多个风力涡轮机的预期产量的估计。在电网中,任何时候都必须在用电量和发电量之间保持平衡——否则可能会出现电能质量或供应的干扰。风力发电是风速的直接函数,与传统发电系统相比,风力发电不易调度。因此,风力发电的波动受到了极大的关注。
3 目的
一种风电功率预测数据挖掘方法,由K-means聚类方法和bagging神经网络组成。根据气象条件和历史功率对历史数据进行聚类。皮尔逊相关系数用于计算预测日与聚类之间的距离。
4 重要性
风电功率预测(WPF)对于有效指导电网调度和风电场生产规划具有重要意义。风的间歇性和波动性导致训练样本的多样性对预测精度有重大影响。由于必须保持消耗和发电之间的平衡,因此风力发电的波动是一个非常重要的研究领域。
5 创新点
为了处理训练样本的动态并提高预测精度,提出了一种针对短期WPF的由MinMax归一化、K-means聚类和深度神经网络组成的数据挖掘方法。基于历史天数之间的相似性,K-means聚类用于通过取各个聚类的质心来减少数据集。此外,当给定参数的标准化值时,这个简化的数据集用于预测未来产生的功率。
6 Python代码
部分代码:
import numpy as np
from sklearn.metrics import mean_squared_error
import matplotlib.pyplot as plt
import pandas as pd
import datetime as dt
import matplotlib.dates as mdates
def str_to_datetime(date):
return dt.datetime.strptime(date, '%Y-%m-%d %H:%M:%S')
def main():
df = pd.read_csv('Processed_data/wp7.csv', names=['dates', 'ws-2', 'ws-1', 'ws', 'ws+1', 'wd-2',
'wd-1', 'wd', 'wd+1', 'hour_from_06', 'week', 'mounth',
'production'], sep=',', skiprows=1)
real_production = df.production[48:]
real_production.index = np.arange(len(real_production))
M = len(real_production)
predicted_production = df.production[:M]
df['dates'] = df['dates'].apply(str_to_datetime)
xDates = df.dates.iloc[0:M]
realFrame = pd.DataFrame({"Dates": xDates, "Real": real_production})
predFrame = pd.DataFrame({"Dates": xDates, "Prediction": predicted_production})
print("MSE: ", mean_squared_error(realFrame.Real, predFrame.Prediction))
fig, ax = plt.subplots()
ax.plot(realFrame["Dates"], realFrame["Real"])
ax.plot(predFrame["Dates"], predFrame["Prediction"])
ax.xaxis.set_major_formatter(mdates.DateFormatter('%m.%Y'))
plt.show()
if __name__ == '__main__':
main()
7 结果
相关文章
- python的环境变量的设置,安装库的两种方法,pycharm解释器设置字体大小,在DOS下运行python,无法定位动态库「建议收藏」
- pycharm怎么配置python环境anaconda_编译环境是什么
- Python怎么输入小数和整数_python输入非负整数
- python编程是啥-Python编程「建议收藏」
- Python入门系列(十)一篇学会python文件处理
- Python模块
- 符合python命名规范的标识符是什么_Python标识符命名规范
- python chr()和ord()_Python函数ord
- python表情代码_Python实现表情包的代码实例[通俗易懂]
- 【说站】python for…in循环的使用
- 【说站】python中有哪些邮件模块
- Python修改文件后缀_python重命名文件名
- python deepcopy函数_Python deepcopy
- python如何生成随机数_Python生成50个随机数
- Python安装失败_python第三方库安装失败
- 上手Python之元组
- Python连接sqlite数据库,查询报错 sqlite3.OperationalError: no such table: userInfo
- Python用KShape对时间序列进行聚类和肘方法确定最优聚类数k可视化|附代码数据
- Python操作MongoDB
- 【python】函数详解
- 【视频】Python用LSTM长短期记忆神经网络对不稳定降雨量时间序列进行预测分析|数据分享|附代码数据
- python-数据库编程-如何处理错误和异常(二)
- TIOBE 2017年度榜单揭晓!C夺冠,Python紧随其后详解编程语言
- 用python实现的可以拷贝或剪切一个文件列表中的所有文件