【第十届泰迪杯B题电力负荷预测代码】

2023-11-18

#第十届泰迪杯B题电力负荷预测源代码及可视化数据图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述包括全部问题的代码,现在的数据分析是根据官网暂时发布的数据进行的分析,后续会继续更新代码!

import matplotlib.pyplot as plt
import seaborn as sns 
sns.set_style('darkgrid')
import pandas as pd 
#-*-coding:utf-8-*- 
#文件名: ch.py 
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体 
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题 
label = pd.read_csv('附件1-区域15分钟负荷数据.csv')
industry = pd.read_csv('附件2-行业日负荷数据.csv')
weather = pd.read_csv('附件3-气象数据.csv')
label = label.rename(columns={'数据时间':'日期1'})
label['日期'] = label['日期1'].apply(lambda x: x.split(' ')[0])
weather.loc[:, '日期'] = pd.to_datetime(weather.loc[:, '日期'], format='%Y年%m月%d日', errors='coerce')
label.loc[:, '日期'] = pd.to_datetime(label.loc[:, '日期'], format='%Y/%m/%d', errors='coerce')
# weather['日期']=weather['日期'].astype('datetime64[ns]')
def make_weather_fetures(data_df):
    weather['start_weather'] = weather['天气状况'].apply(lambda x: x.split('/')[0])
    weather['end_weather'] = weather['天气状况'].apply(lambda x: x.split('/')[1])
    weather['最高温度'] = weather['最高温度'].map(lambda d: d.replace('℃','')).astype(int)
    weather['最低温度'] = weather['最低温度'].map(lambda d: d.replace('℃','')).astype(int)

    #label encoding
    le1 = LabelEncoder()
    le1.fit(weather['夜晚风力风向'])
    weather['白天风力风向'] = le1.transform(weather['白天风力风向'])
    weather['夜晚风力风向'] = le1.transform(weather['夜晚风力风向'])
    
    le2 = LabelEncoder()
    le2.fit(pd.concat([weather['start_weather'],weather['end_weather']]))
    weather['start_weather'] = le2.transform(weather['start_weather'])
    weather['end_weather'] = le2.transform(weather['end_weather'])

    return data_df.drop(['天气状况','Unnamed: 6'],axis=1)
weather = make_weather_fetures(weather)
train = label.merge(weather,on='日期',how='left')
def make_time_fetures(data_df):
    data_df['日期1']=data_df['日期'].astype('datetime64[ns]')
    data_df['year']= data_df['日期1'].dt.year
    data_df['month']= data_df['日期1'].dt.month
    data_df['qua']= data_df['日期1'].dt.quarter
    data_df['day']  = data_df['日期1'].dt.day
    data_df['hour'] = data_df['日期1'].dt.hour  
    data_df['weekday'] = data_df['日期1'].dt.weekday
    data_df=pd.get_dummies(data_df,columns=['weekday'])
    return data_df.drop(['日期1','日期'],axis=1)
train = make_time_fetures(train)
train.to_csv('洗好的数据.csv',index=0)
train1= pd.read_csv('洗好的数据.csv')
train1

下载链接最新的AotoTS预测模型,其精度和拟合程度都比LSTM和ARIMA的要高,预测结果更加准确,文件里面详细写明了调参方式

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【第十届泰迪杯B题电力负荷预测代码】 的相关文章

随机推荐