zl程序教程

您现在的位置是:首页 >  后端

当前栏目

基于神经网络的负荷预测(Python代码实现)

Python神经网络代码 实现 基于 预测 负荷
2023-09-14 09:05:20 时间

 👨‍🎓个人主页:研学社的博客 

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🌈3 Matlab代码实现

🎉4 参考文献


💥1 概述

电力负荷,又称“用电负荷" 电能用户的用电设备在某一时刻向电力系统取用的电功率的总和。电力负荷预测的实质是从已知的电力系统、经济、社会、气象等情况出发,根据历史负荷变化规律,对未来某个时刻或时段做出预先估计和推测。电力负荷预测影响着电力系统的管理和运行,是电力系统制定发电计划、交易计划、调度计划等的重要依据。对电力负荷预测进行分类依据的划分标准有很多,预测时间周期是较为常见的一种,可以将电力负荷预测分为超短期负荷预测、短期负荷预测、中期负荷预测和长期负荷预测四类。超短期负荷预测的时间从几秒或几分钟到几个小时,短期负荷预测的时间从小时到周,中期负荷预测和长期负荷预测的时间从月到年。其中,超短期负荷预测和短期负荷预测可归为短期预测,中期负荷预测和长期负荷预测合称为中长期预测[ 1]。电力负荷数据预处理和预测方法选择是电力负荷预测任务的关键环节。在电力负荷预测前,需要对负荷数据进行预处理,以减小异常历史数据对预测精度的影响;预测方法的选择和预测模型的建立直接影响着预测结果能否取得理想的准确度,进而影响整个电力系统的运行,因此是十分重要的。
 

📚2 运行结果

部分代码:

import matplotlib as mpl
mpl.rcParams['figure.dpi']= 100
import matplotlib.pyplot as plt

def train(net, X_train, y_train, X_test, y_test, epochs,
          verbose_epoch, learning_rate, weight_decay):
    train_loss = []
    if X_test is not None:
        test_loss = []
    batch_size = 110
    dataset_train = gluon.data.ArrayDataset(X_train, y_train)
    data_iter_train = gluon.data.DataLoader(
        dataset_train, batch_size,shuffle=True)
    trainer = gluon.Trainer(net.collect_params(), 'adam',
                            {'learning_rate': learning_rate,
                             'wd': weight_decay})
    net.collect_params().initialize(force_reinit=True)
    for epoch in range(epochs):
        for data, label in data_iter_train:
            with autograd.record():
                output = net(data)
                loss = square_loss(output, label)
            loss.backward()
            trainer.step(batch_size)

            cur_train_loss = get_rmse_log(net, X_train, y_train)
        if epoch > verbose_epoch:
            print("Epoch %d, train loss: %f" % (epoch, cur_train_loss))
        train_loss.append(cur_train_loss)
        if X_test is not None:
            cur_test_loss = get_rmse_log(net, X_test, y_test)
            test_loss.append(cur_test_loss)
    plt.plot(train_loss)
    plt.legend(['train'])
    if X_test is not None:
        plt.plot(test_loss)
        plt.legend(['train','test'])
    plt.show()
    if X_test is not None:
        return cur_train_loss, cur_test_loss
    else:
        return cur_train_loss

🌈3 Matlab代码实现

🎉4 参考文献

部分理论来源于网络,如有侵权请联系删除。