第二届世界科学智能大赛社会科学赛道:市场博弈和价格预测 # Datawhale AI 夏令营 # task3

        这是Datawhale2024暑期夏令营的第三期,该期夏令营同样依托于AI竞赛,DW选择了由上海科学智能研究院、复旦大学联合阿里云在上智院·天池平台发布的“第二届世界科学智能大赛”。(竞赛官网网站为:上海科学智能研究院 (sais.com.cn)

       一共分了五个赛道,分别是:


        关于赛题的介绍和分析这里就不过多介入,感兴趣的同学可以自行去上文中的竞赛官网查看相关内容。

        task3的内容主要是关于上分方向的探讨,分成了三个部分:时间序列挖掘、ABM和强化学习三个方向。由于方法难易程度和时间的局限(更主要的是本人水平有限),我在这里只对时间序列改进方法进行一些探讨,只是本人的一些浅薄之见,抛砖引玉,姑妄听之。


一、代码思路分析

        由于代码较长,在这里不再贴出完整的代码,也不再对代码进行逐步分析,对baseline感兴趣的朋友可以前往Datawhale查看(网站如下:Datawhale),我将以思维导图的形式对代码进行整体上的归纳和总结。

        在特征工程的部分,对于时间戳特征采取了独热编码。在进行独热编码时,如果一个分类变量有k个不同的类别,通常会生成k-1个虚拟变量,以避免所谓的“虚拟变量陷阱”(Dummy Variable Trap),即独热编码后的变量间出现完全多重共线性。这是因为k个虚拟变量中最后一个类别可以通过剩余k-1个变量的状态推断出来。因此,在许多情况下,为了避免多重共线性,通常会忽略其中一个类别,仅保留k-1个虚拟变量。

二、一些上分思路

        PS:这里的上分思路只针对时间序列的方法。

1. 加入更多的节假日特征

        在baseline中,只加入了春节和劳动节,后续我又加入了国庆节、清明节等所有节假日(还好我们国家放假少,一共就那么几天,找假期特别好找。。。。)。经测试,有小几百分的提高

2. 加入气象数据特征

        经过分析和网络查找资料,我们可以发现,很多气象数据都会对出清价格产生影响,比如:

  • 温度:温度是影响电力需求的主要因素之一。高温天气会增加空调和制冷设备的使用,导致电力需求上升;低温天气则会增加供暖设备的使用,同样导致电力需求上升

  • 风速:风速直接影响风力发电的发电量。风速较高时,风力发电量增加,可能导致电力供给增加,从而压低市场价格;风速较低时,风力发电量减少,可能导致电力供给减少,从而推高市场价格。

  • 太阳辐射:太阳辐射量影响光伏发电的发电量。晴天和高辐射量的天气条件下,光伏发电量增加,电力供给增加,从而可能压低市场价格;反之,阴天和低辐射量的天气条件下,光伏发电量减少,电力供给减少,从而可能推高市场价格。

  • 降水量:降水量影响水库的水位和径流量,从而影响水力发电的发电量。降水量充足时,水力发电量增加,电力供给增加,从而可能压低市场价格;降水量不足时,水力发电量减少,电力供给减少,从而可能推高市场价格。

  • 湿度:湿度与温度共同作用影响电力需求,特别是空调和制冷设备的使用。高温高湿的天气条件会显著增加制冷需求,从而增加电力需求

  • 气象灾害:如暴风雨、台风、冰冻天气等极端气象事件会对电力系统造成破坏,导致电力供给中断或受限,从而推高市场价格。同时,这些事件也可能导致电力需求的剧烈波动。

        赛题数据并没有说明是哪个城市的电力数据,只说可以按照华北地区的数据查找,但是,华北地区城市众多,不同城市的气象数据相差其实不小,我选取了北京市的气象数据。由于数据比较难找,(温度好找数据,其他的辐射、降水量等因素很难找到每天的数据),我最终只找到了历史月均数据,网站如下,供大家参考:

https://zh.weatherspark.com/y/131055/%E4%B8%AD%E5%9B%BD%E3%80%81%E5%8C%97%E4%BA%AC%E5%B8%82%E7%9A%84%E5%85%A8%E5%B9%B4%E5%B9%B3%E5%9D%87%E5%A4%A9%E6%B0%94#Figures-Temperature
https://www.weather-atlas.com/zh/china/beijing-climate
https://www.data.ac.cn/table/tbc24

        但是,当我把这些数据作为特征列加入训练集后,进行了多次尝试,发现线上验证结果更差了。结合DW大佬的意见(感谢zwj大佬),我认为可能有如下原因:

(1)赛题数据和北京市的气象数据并不匹配,华北地区的不同城市之间气象相差很大。

(2)赛题数据是按照一刻钟计算的,但是我用的历史月均数据,单位相差过大,可能加入了太多噪音,难以作为有效特征。(每天的甚至每小时的数据太过难找,而且这种详细数据大多费用不菲。。。)

(3)直接加入数据作为特征欠妥,对数据进行进一步处理,提取变化趋势作为特征,可能会更好。

3. 特征列做标准化处理

        这里我推荐大家对特征列进行一下标准化处理,经过我的测试,经过标准化处理,成绩会有一些上升(但只有十几或者几十)。

4. 考虑更换模型

        我尝试了很多模型,最终发现,线性模型预测是最好的,在此赛题中,可能因为需求对价格的线性程度高,树模型不如线性模型更准确,可以尝试再用L1和L2模型试试,其他模型,不做推荐。

5. 模型融合方式

        不推荐使用stacking融合,最终线上验证结果还不如加权平均。。。。

        这里原因应该是因为大量的-80电价无法准确预测,一旦stacking融合对极值电价预测失误,会造成很大的MSE误差。加权平均反而使得数据更加平滑了,不容易出现极值(负电价预测失误还不如不预测?)

6. 预测结果做平滑化处理

        经过我的尝试,对预测结果做平滑化处理,对成绩有提升

三、存在的问题

        在baseline的基础上,我加入了交叉验证,但是线下验证的结果和线上验证的结果却是相差巨大。(我加入了控制拟合,应该没有过拟合),在之后,我又做了许多尝试,始终没能解决线上验证和线下验证有较大差距的问题。每次提交结果都像开盲盒。

        我推测原因可能是因为训练集和测试集数据范围相差较大,我进行了一些浅显的分析,从下图可以看出,测试集的demand出现了一些异常高和异常低的部分,这一部分的出清价格可能是模型足够泛化也难以预测的?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值