【Datawhale AI 夏令营】电力需求预测 Task02
一.目标
完成task01最基础的跑通baseline操作后,task02的目标就是使用进阶的机器学习模型lightgbm来解决问题,以达到更好的预测效果。
通过本次学习,可以了解:
- 用数据集绘制柱状图和折线图
- 使用时间序列数据构建历史平移特征和窗口统计特征
- 使用lightgbm进行训练并预测
二.基础概念
1.LightGBM
LightGBM(Light Gradient Boosting Machine)是一个实现GBDT算法的框架,支持高效率的并行训练,并且具有更快的训练速度、更低的内存消耗、更好的准确率、支持分布式可以快速处理海量数据等优点。
LightGBM 框架中还包括随机森林和逻辑回归等模型。通常应用于二分类、多分类和排序等场景。
三.代码
本次测试主要是在飞桨AI Studio星河社区进行运行的
链接: link
1.数据集选择
当你登录(注册)好账号后,本次测试需要数据集,所以需要我们手动去选择添加对应的数据集。
- 点击项目,选择新建项目中的Notebook

- 点击添加数据集,搜索电力需求预测挑战赛-数据集

2.模块导入
- 在导入模块之前,需要先安装上LightGBM,输入下述代码,之后运行,即可安装。
pip install lightgbm==3.3.0
- 导入所需模块
import numpy as np
import pandas as pd
import lightgbm as lgb
from sklearn.metrics import mean_squared_log_error, mean_absolute_error, mean_squared_error
import tqdm
import sys
import os
import gc
import argparse
import warnings
warnings.filterwarnings('ignore')
3.读取训练数据和测试数据
根据个人相关数据库的地址所在(可能提供的源代码的地址和你的实际地址有出入),可以对下述中的地址进行修改
train = pd.read_csv('./data/data283931/train.csv')
test = pd.read_csv('./data/data283931/test.csv')

数据介绍:
- 其中id为房屋id;
- dt为日标识,训练数据dt最小为11,不同id对应序列长度不同;
- type为房屋类型,通常而言不同类型的房屋整体消耗存在比较大的差异;
- target为实际电力消耗,也是我们的本次比赛的预测目标。
4.可视化分析
- 不同type类型对应target的柱状图
import matplotlib.pyplot as plt
# 不同type类型对应target的柱状图
type_target_df = train.groupby('type')['target'].mean().reset_index()
plt.figure(figsize=(8, 4))
plt.bar(type_target_df['type'], type_target_df['target'], color=['blue', 'green'])
plt.xlabel('Type')
plt.ylabel('Average Target Value')
plt.title('Bar Chart of Target by Type')
plt.show()

- id为00037f39cf的按dt为序列关于target的折线图
specific_id_df = train[train['id'] == '00037f39cf']
plt.figure

最低0.47元/天 解锁文章
575





