0


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

  • 目录---#### 加入特征- 时间特征- 按照教程,我加入年、月、日、小时、是否为节假日(因为这是看task3之前写的,所以是使用python中的Chinesecalendar库构造的节假日特征,没有用到教程中的手动构造,不一定如教程中一样准确)作为时间特征,格式如下 timestampyearmonthdayhour is_holiday2021-12-01 07:45:0020211217False- 建立价格与需求的滞后特征- 观察题目数据,尽管需求数据是按每15分钟的频率波动,但市场出清价格是按每小时进行波动。同时,按照常规思维,之前的报价与需求可能影响之后的报价与价格,故而我对demand与baseline得到的prices都建立了3,10,30期的移动平均滞后特征(可能滞后期过短,后续我将继续尝试加长滞后时间,建立日滞后、星期滞后),格式如下。 timestamp****demandd3h_MAd10_MAd30_MA2021-12-01 07:45:0043283.7743677.342401.1940117.4timestamppricesp3_MAp10_MAp30_MA2021-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的相关系数最高。 9de6105756324d33bdc9e1d793684447.png

  • 使用机器学习模型进行预测(9:1划分了训练数据,作为训练、测试集)- 基于pycaret库尝试时序模型- 发现效果都不好,R^2基本都为负数。不清楚是否是因为尚未对数据做平稳性检验。不过这些模型效果似乎都一般。e2b3d2be5c354cbda788df9aa8f4f491.png- prophet模型- prophet处理时间特征、节假日效应的功能强大。对prophet调参后R^2的拟合效果总算为正了。虽然很低。(这里划了后6000个数据作为测试集,使用了三折交叉验证)425b807a10ef48c9bf17e56cdba94bf0.png- BP神经网络- BP神经网络效果比以上都好。 0dbbc3fd947a459d84d247ec49d547e5.png02ef5329a1b944bdbf6409a14bd58dd0.png- CNN-BILSTM-Attention- 基于市场出清价格每小时波动一次,我认为这一个小时内4个时间节点的数据对市场出清价格都有影响,即未来的值会影响过去。我猜测选择bilstm可能是较好的选择。这一个模型的数据还没跑出来。故而暂时先不放效果图了。- (8.7更新)效果比BP神经网络好一些。

  • 下分记录- 只构建年月日时特征,使用bp神经网络上分是2w,加入价格和需求量的滞后特征后是1w5。我认为再多加一些相关特征,效果可能会继续改进。当然这两次测试目前都没有超过baseline。 3d57eb327856435abc0a3274ef9b85d8.png- (8.7)bilstm试了几个参数,都在1w4左右。

  • 思考- 线性模型拟合得是变量与自变量间的线性关系;机器学习模型拟合线性与非线性关系,侧重于发现数据中的模式和关联性。abm模型是一种生成式因果机制,通过互动规则和方式的设置,观察现象产生。- 从数据上看,通过机器学习模型,已经挖掘到了一些具有关联性的特征变量。如时间,价格等。- 一个不知道有没有用的两个tips:(1)我觉得还要考虑到市场出清价格是按小时波动的,可以对数据建立滞前变量,或者使用bilstm提升效果;(2)机器学习预测出来的结果基本不会出现负值,可能模型把负值都当成孤证不立的异常值进行处理了,后续可以使用线性回归映射一下,把可能是负数的值调一下,不知道能不能提高效果。- 题目已经给出集合竞价这一规则。根据题目给出的数据与模型,我认为最好从两方面下手。 5dfe47be0148487ca50b61fad01a9ddf.png- 一种是改进预测方法。用机器学习替代线性回归。显然,我基于题目baseline中的abm得出prices这一特征变量,然后再引入其他自己找的特征变量,进行一些机器学习模型预测,效果不如baseline。- 一种是改善abm模型。在集合竞价的基础上,把挖掘出的变量特征,如节假日,时间特征,行业特征,政策因素作为影响报价的其他规则加入abm模型(比如,哪些月份是用电高低峰期)。这一部分我还在思考。- 最后两者相互结合。

  • (8.15更新)跑取了相关股票数据(龙源技术交易数据),行业数据(国证煤炭指数等),mic相关系数一模一样,都是0.43,模型拟合成一条直线。特征没有效果。最有效的还是各种途径建立时间的各种特征。
标签: 人工智能 笔记

本文转载自: https://blog.csdn.net/yiny37/article/details/140895216
版权归原作者 yiny37 所有, 如有侵权,请联系我们删除。

“Datawhale AI夏令营 社会科学赛道 8.3笔记 时间序列方向”的评论:

还没有评论