Datawhale AI 夏令营(2024.07.15机器学习)

电力需求预测挑战赛(机器学习)

进阶代码详解

(1)导入模块

此部分包含代码所需的模块

简单介绍一下各个库的作用:

1.LightGBM是一个实现GBDT算法的框架,主要内涵为梯度上升的树算法,支持高效率的并行训练,并且具有更快的训练速度、更低的内存消耗、更好的准确率、支持分布式可以快速处理海量数据等优点。LightGBM 框架中还包括随机森林和逻辑回归等模型。通常应用于二分类、多分类和排序等场景。

2.GBDT 的主要思想是利用弱分类器(决策树)迭代训练以得到最优模型,该模型具有训练效果好、不易过拟合等优点。

3.TQDM应用类似于一个快速的、可伸展的进度条。

(2)探索性数据分析(EDA)

在数据准备阶段,主要读取训练数据和测试数据,并进行基本的数据展示。

数据简单介绍:

  • 其中id为房屋id,
  • dt为日标识,训练数据dt最小为11,不同id对应序列长度不同;
  • type为房屋类型,通常而言不同类型的房屋整体消耗存在比较大的差异;
  • target为实际电力消耗,也是我们的本次比赛的预测目标。

下面进行简单的可视化分析,帮助我们对数据有个简单的了解。

  • 不同type类型对应target的柱状图

基本代码:

figure()函数用于创建画布;

bar()函数用于绘制条形柱状图(括号内为条形图内部参数);

label()函数用于设定图像的纵横坐标;

title()函数用于指定图像标题;

  • id为00037f39cf的按dt为序列关于target的折线图

plot()函数用于绘制二维统计图象。

(3)特征工程

这里主要构建了 历史平移特征 和 窗口统计特征;每种特征都是有理可据的,具体说明如下:

  • 历史平移特征:通过历史平移获取上个阶段的信息;如下图所示,可以将d-1时间的信息给到d时间,d时间信息给到d+1时间,这样就实现了平移一个单位的特征构建。

  • 窗口统计特征:窗口统计可以构建不同的窗口大小,然后基于窗口范围进统计均值、最大值、最小值、中位数、方差的信息,可以反映最近阶段数据的变化情况。如下图所示,可以将d时刻之前的三个时间单位的信息进行统计构建特征给我d时刻。

reset_index()函数的作用是将行索引重置为列数据。

(4)模型训练与测试集预测

这里选择使用Lightgbm模型,也是通常作为数据挖掘比赛的基线模型,在不需要过程调参的情况的也能得到比较稳定的分数。 另外需要注意的训练集和验证集的构建:因为数据存在时序关系,所以需要严格按照时序进行切分,

  • 这里选择原始给出训练数据集中dt为30之后的数据作为训练数据,之前的数据作为验证数据,
  • 这样保证了数据不存在穿越问题(不使用未来数据预测历史数据)。

训练与验证精度:

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值