【视频】Python用GM(1,1)灰色模型预测模型对电力预测

简介: 【视频】Python用GM(1,1)灰色模型预测模型对电力预测

全文链接:http://tecdat.cn/?p=32561

分析师:Dongsheng Hang


负荷预测是电力系统的重要工作之一,对电力系统各个部门的工作都起着非常重要的作用点击文末“阅读原文”获取完整代码数据


科学准确的负荷预测可以让电力决策部门经济合理地安排发电机组的启停,调整线路的潮流,使其更加合理,提前制订设备的检修计划,从而确保电网在安全稳定运行的前提下,系统运行的经济效益也能得到很大的提高。本文重点介绍了GM (1,1)模型的基本理论和建模步骤,结合Python软件对数据的分析,得出了影响模型精度的主要因素,对模型的改进提供了可行性的建议,这对未来灰色理论模型的进一步研究具有十分重要的意义。


GM(1,1)灰色模型


灰色系统理论灰色系统理论与方法的核心是灰色动态模型,其特点是生成函数和灰色微分方程。灰色动态模型是以灰色生成函数概念为基础,以微分拟合为核心的建模方法,灰色系统理论认为:一切随机量都是在一定范围内、一定时段上变化的灰色量和灰过程,对于灰色量的处理不是寻求它的统计规律和概率分布,而是将杂乱无章的原始数据列,通过一定的方法处理,变成比较有规律的时间序列数据,即以数找数的规律,再建立动态模型。

对于原始数据以一定方法进行处理,其目的有二:一是为建立模型提供中间信息;二是将原始数据的波动性弱化。


点击标题查阅往期内容


灰色关联分析(Grey Relation Analysis,GRA)中国经济社会发展指标


01

02

03

04


模型构建


灰色系统理论是基于关联空间、光滑离散函数等概念定义灰导数与灰微分方程, 进而用离散数据列建立微分方程形式的动态模型,即灰色模型是利用离散随机数经过生成变为随机性被显著削弱而且较有规律的生成数,建立起的微分方程形式的模型,这样便于对其变化过程进行研究和描述。G表示grey(灰色),M表示model(模型)

定义灰导数为

d(k)=x(0)(k)=x(1)(k)一x(1)(k-1)

灰色预测模型适用范围、优缺点


适用范围:该模型使用的不是原始数据的序列,而是生成的数据序列。核心体系是Grey Model,即对原始数据作累加生成(或其他处理生成)得到近似的指数规律再进行建模的方法。

优点:在处理较少的特征值数据,不需要数据的样本空间足够大,就能解决历史数据少、序列的完整性以及可靠性低的问题,能将无规律的原始数据进行生成得到规律较强的生成序列。

缺点:只适用于中短期的预测,只适合近似于指数增长的预测。

电力负荷数据


定义GM(1,1)灰色模型


class GM11():
    def __init__(self):
        self.f = None
    def train(self, X0):
        X1 = X0.cumsum()
        Z = (np.array([-0.5 * (X1[k - 1] + X1[k]) for k in range(1, len(X1))])).reshape(len(X1) - 1, 1)
        # 数据矩阵A、B
        A = (X0[1:]).reshape(len(Z), 1)
        B = np.hstack((Z, np.ones(len(Z)).reshape(len(Z), 1)))


训练预测模型


model.train(X_train)  # 训练
    Y_pred = model.predict(len(X))  # 预测
    Y_train_pred = Y_pred[:len(X_train)]

模型检验结果


相关文章
|
13小时前
|
机器学习/深度学习 数据可视化 PyTorch
使用Python实现深度学习模型:变分自编码器(VAE)
使用Python实现深度学习模型:变分自编码器(VAE)
8 2
|
1天前
|
机器学习/深度学习 数据可视化 PyTorch
使用Python实现深度学习模型:生成对抗网络(GAN)
使用Python实现深度学习模型:生成对抗网络(GAN)
17 3
|
2天前
|
机器学习/深度学习 数据可视化 PyTorch
使用Python实现深度学习模型:自动编码器(Autoencoder)
使用Python实现深度学习模型:自动编码器(Autoencoder)
8 0
|
2天前
|
前端开发 JavaScript TensorFlow
如何将训练好的Python模型给JavaScript使用?
本文介绍了如何将TensorFlow模型转换为Web格式以实现浏览器中的实际应用。首先,简述了已有一个能够检测扑克牌的TensorFlow模型,目标是将其部署到Web上。接着,讲解了TensorFlow.js Converter的作用,它能将Python API创建的GraphDef模型转化为TensorFlow.js可读取的json格式,用于浏览器中的推理计算。然后,详细说明了Converter的安装、用法及不同输入输出格式,并提供了转换命令示例。最后,文中提到了模型转换后的实践步骤,包括找到导出的模型、执行转换命令以及在浏览器端部署模型的流程。
17 3
|
2天前
|
机器学习/深度学习 TensorFlow API
Python深度学习基于Tensorflow(3)Tensorflow 构建模型
Python深度学习基于Tensorflow(3)Tensorflow 构建模型
70 2
|
2天前
|
机器学习/深度学习 自然语言处理 算法
Python遗传算法GA对长短期记忆LSTM深度学习模型超参数调优分析司机数据|附数据代码
Python遗传算法GA对长短期记忆LSTM深度学习模型超参数调优分析司机数据|附数据代码
|
2天前
|
机器学习/深度学习 编解码 监控
利用Python实现监控视频的超分辨率提升
利用Python实现监控视频的超分辨率提升
21 2
|
2天前
|
机器学习/深度学习 数据采集 前端开发
【Python机器学习专栏】模型泛化能力与交叉验证
【4月更文挑战第30天】本文探讨了机器学习中模型泛化能力的重要性,它是衡量模型对未知数据预测能力的关键。过拟合和欠拟合影响泛化能力,而交叉验证是评估和提升泛化能力的有效工具。通过K折交叉验证等方法,可以发现并优化模型,如调整参数、选择合适模型、数据预处理、特征选择和集成学习。Python中可利用scikit-learn的cross_val_score函数进行交叉验证。
|
机器学习/深度学习 Python
Python3入门机器学习 - 模型泛化
模型正则化 在多项式回归中如果degree过大,会造成过拟合的情况,导致模型预测方差极大,因此,我们可以使用模型正则化的方式来减小过拟合导致的预测方差极大的问题 即在我们训练模型时,不仅仅需要将预测的y和训练集的y的均方误差达到最小,还要使参数向量最小。
943 0
|
2天前
|
网络协议 Unix Python
Python编程-----网络通信
Python编程-----网络通信
8 1