#AI夏令营 #Datawhale #夏令营
学习时间:2024 年 7.25~8.3
基于阿里云天池平台:“第二届世界科学智能大赛社会科学赛道:市场博弈和价格预测”
前言
利用所学知识,解决实际问题,加强动手能力
一、赛题背景
此次比赛主要针对“电力现货市场”(可以类比证券交易市场),泛指短时间内的电能量交易市场。
市场中有大量发电机组(供给者,会发电并卖出电力)按照交易规则,在指定的平台上采取集中竞价的方式确定电能的交易量和价格。这些电能会被输送给个体户、商业用户等,从而利用市场机制实现资源优化配置。
在最理想的情况下,市场完全竞争(市场参与者众多,以至于没有任何一方能够影响价格,不存在控制价格的可能性),没有任何博弈行为。每个发电机组都诚实报价,市场出清价格稳定可靠,达到最优效率。
但现实中,电力现货市场有以下特点:
- 寡头竞争(几家电力公司独大,对价格有显著影响)
- 不完全信息(不同机组信息不互通,存在打信息差牟利的可能)
- 非合作博弈(机组之间各谋其利,追求各自的利益最大化)
- 参与者有限理性(受限于经济知识和对市场的了解,机组不一定能做出最优决策)
从而不同机组之间有复杂的博弈行为,这就让市场出清价格难以估计。
因此,本次比赛要求针对电力现货市场价格和市场博弈主体(549个发电机组)的信息,用ABM方法建模这些机组在报价上的博弈行为,使最终模拟的市场出清报价接近现实中的市场出清价格。
市场出清机制:
出清机制是市场交易的核心过程,用于确定交易物品的价格和数量。在出清过程中,买家和卖家的报价被收集起来,并按照价格高低进行排序。随后,市场管理者从最高买价和最低卖价开始匹配交易,直到买卖双方的供需达到平衡。该平衡点对应的价格就是市场出清价格。
二、赛题数据级介绍
electricity price.csv:电力市场的市场出清价格,市场需求等信息。训练集范围为2021年12月1日到2023年7月1日,共计55392个点;测试集范围为2023年7月1日到2024年4月18日,共计28228个点
- Day/Time:交易时间,中国电力现货市场15分钟结算一次,一天共96个交易点
- demand:区域内电力总负荷(总需求),单位为MW
- clearing price (CNY/MWh):市场出清电价,单位为元/MW·h
day | time | demand(MW) | clearing price (CNY/MWh) |
---|---|---|---|
2021-12-1 | 0:15 | 59005.46 | 350.8 |
2021-12-1 | 0:30 | 58689.69 | 350.8 |
2021-12-1 | 0:45 | 58565.88 | 350.8 |
unit.csv:存放市场供给者(各发电机组)的参数信息
机组数据包含549个不同的火电机组
- unit ID:每个机组唯一的ID
- Capacity(MW):机组的额定容量(额定功率),越高机组的发电能力越强
- utilization hour (h) :电厂的年平均运行小时数,需要注意多个机组可能共同属于一个电厂,有相同的值
- coal consumption (g coal/KWh):每发一度电需要耗费多少煤炭,为成本参数
- power consumption rate:电厂单位时间内耗电量与发电量的百分比,例如单位时间耗电量为500度电,发电量为10000度电,利用率就是500/10000=5%。
unit ID | Capacity(MW) | utilization hour (h) | coal consumption (g coal/KWh) | power consumption rate (%) |
---|---|---|---|---|
1 | 110 | 2069.12 | 266.07 | 6.91 |
2 | 160 | 5509.22 | 292.7 | 6.91 |
3 | 160 | 3562.79 | 293.35 | 6.91 |
三、比赛任务与评价指标
任务:预测未来的市场出清价格
预测的市场出清价格尽可能的接近现实市场中的出清价格。
比赛本质是一个回归(预测目标为连续值,例如根据年龄预测身高)问题,需要预测2023年7月1日到2024年4月18日每15分钟的市场出清价格,虽然可以纯粹依靠时间序列模型完成,但比赛方称期待参赛成员使用ABM模型建模获取市场出清价格(影响复赛30%分数)。
最终评价指标为MSE(均方误差)和RMSE(均方根误差)的均值,值越小越好,公式如下:
MSE
=
∑
i
=
1
n
(
y
i
−
y
^
i
)
2
n
\text{MSE}=\frac{\sum_{i=1}^{n} (y_i - \hat{y}_i)^2}{n}
MSE=n∑i=1n(yi−y^i)2
Final Metric = MSE + MSE 2 \text{Final Metric}=\frac{\text{MSE}+\sqrt{\text{MSE}}}{2} Final Metric=2MSE+MSE
其中:
- y i y_i yi为真实市场出清价格
- y ^ i \hat y_i y^i为预测的市场出清价格
- n n n为样本数量,这里是测试集的大小28228
四、Task1: 跑通 Baseline
在Datawhale贡献者团队的帮助下体验了一站式 baseline,并获得本次夏令营的第一个分数。
利用散点观察数据
fig = px.scatter(electricity_price,x="timestamp",y="clearing price (CNY/MWh)",color="demand",range_y=[-80,1300])
fig.show()
fig = px.scatter(electricity_price,x="timestamp",y="demand")
fig.show()