Datawhale AI夏令营 社会科学赛道 8.3笔记 时间序列方向

  • 目录

    加入特征

    时间特征

    建立价格与需求的滞后特征

    其他角度(天气,行业,政策,成本)

    通过MIC系数进行特征选择

    使用机器学习模型进行预测(9:1划分了训练数据,作为训练、测试集)

    基于pycaret库尝试时序模型

    prophet模型

    BP神经网络

    CNN-BILSTM-Attention

    下分记录

    思考


    加入特征

    • 时间特征
      • 按照教程,我加入年、月、日、小时、是否为节假日(因为这是看task3之前写的,所以是使用python中的Chinesecalendar库构造的节假日特征,没有用到教程中的手动构造,不一定如教程中一样准确)作为时间特征,格式如下
        timestampyearmonthdayhour is_holiday
        2021-12-01 07:45:0020211217False
    • 建立价格与需求的滞后特征
      • 观察题目数据,尽管需求数据是按每15分钟的频率波动,但市场出清价格是按每小时进行波动。同时,按照常规思维,之前的报价与需求可能影响之后的报价与价格,故而我对demand与baseline得到的prices都建立了3,10,30期的移动平均滞后特征(可能滞后期过短,后续我将继续尝试加长滞后时间,建立日滞后、星期滞后),格式如下。
        timestampdemandd3h_MAd10_MAd30_MA
        2021-12-01 07:45:0043283.7743677.342401.1940117.4
        timestamppricesp3_MAp10_MAp30_MA
        2021-12-01 07:45:00283.32283.7467281.94279.7013
    • 其他角度(天气,行业,政策,成本)
      • 天气、替代品和互补品:教程中已经提到,如温度高低、替代品和互补品发电影响供需。
      • 基于行业:随着双碳目标与esg概念的提出,火力发电行业整体应该受到影响。不知能否找到火力发电的行业数据,如行业发电量。或者引入该行业中的代表企业的高频股票价格,如陕西能源(sz.001286)是一家火力发电企业,其股价变动能否为模型提供参考信息。
      • 政策:根据经济学,价格受政策性补贴影响。政府是否为火力发电进行补贴(正向)、罚款(负向),将影响价格。
      • 成本:成本影响价格,题目已有耗煤量成本,亦可以从劳动力成本(参考发电企业的用工波动,比如应对市场竞争,劳动力近年工资有无变化,节假日前后,企业是否发放加班补贴)入手。我认为政策与成本部分可以加入ABM建模。
  • 通过MIC系数进行特征选择

    • 这里先只建立了时间和价格特征作为自定义的特征变量,通过MIC对13个特征变量与因变量进行分析,13个特征变量year、month、day、hour、demand、prices、d3_MA、d10_MA、d30_MA、p3_MA、p10_MA、p30_MA 、is_holiday的相关系数都在0.1以上,其中hour的相关系数最高。

  • 使用机器学习模型进行预测(9:1划分了训练数据,作为训练、测试集)

    • 基于pycaret库尝试时序模型
      • 发现效果都不好,R^2基本都为负数。不清楚是否是因为尚未对数据做平稳性检验。不过这些模型效果似乎都一般。
    • prophet模型
      • prophet处理时间特征、节假日效应的功能强大。对prophet调参后R^2的拟合效果总算为正了。虽然很低。(这里划了后6000个数据作为测试集,使用了三折交叉验证)
    • BP神经网络
      • BP神经网络效果比以上都好。

    • CNN-BILSTM-Attention
      • 基于市场出清价格每小时波动一次,我认为这一个小时内4个时间节点的数据对市场出清价格都有影响,即未来的值会影响过去。我猜测选择bilstm可能是较好的选择。这一个模型的数据还没跑出来。故而暂时先不放效果图了。
  • 下分记录

    • 只构建年月日时特征,使用bp神经网络上分是2w,加入价格和需求量的滞后特征后是1w5。我认为再多加一些相关特征,效果可能会继续改进。当然这两次测试目前都没有超过baseline。

  • 思考

    • 线性模型拟合得是变量与自变量间的线性因果关系,需要构建x,y的因果关系;机器学习模型拟合线性与非线性关系,侧重于发现数据中的模式和关联性。abm模型是一种生成式因果机制,通过互动规则和方式的设置,观察现象产生。
    • 从数据上看,通过机器学习模型,已经挖掘到了一些具有关联性的特征变量。如时间,价格等。
    • 一个不知道有没有用的两个tips:(1)我觉得还要考虑到市场出清价格是按小时波动的,可以对数据建立滞前变量,或者使用bilstm提升效果;(2)机器学习预测出来的结果基本不会出现负值,可能模型把负值都当成孤证不立的异常值进行处理了,后续可以使用线性回归映射一下,把可能是负数的值调一下,不知道能不能提高效果。
    • 题目已经给出集合竞价这一规则。根据题目给出的数据与模型,我认为最好从两方面下手。

      • 一种是改进预测方法。用机器学习替代线性回归。显然,我基于题目baseline中的abm得出prices这一特征变量,然后再引入其他自己找的特征变量,进行一些机器学习模型预测,效果不如baseline。
      • 一种是改善abm模型。在集合竞价的基础上,把挖掘出的变量特征,如节假日,时间特征,行业特征,政策因素作为影响报价的其他规则加入abm模型(比如,哪些月份是用电高低峰期)。这一部分我还在思考。
      • 最后两者相互结合。
  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值