Datawhale组队学习-金融时序数据挖掘实践-Task01数据探索与分析
在二手车交易价格预测之后,本菜鸟又加入了金融时序数据挖掘实践的学习。两个项目都是结构化数据,都着重于对数据本身的探索。但时序数据有着不同于普通数据的周期性和绝对不能打乱的顺序性,在数据探索、特征工程及测试集划分等环节都有其独有的思路和方法,常常被单独划分出来自成体系。
1 赛题理解
本次实践内容是对货币基金的购买量和赎回量(资金的流入和流出)进行预测。赛题提供了2.8万个用户20130701至20140831的申购和赎回信息,用来预测3万个用户(有约0.2万用户是2014年9月第一次出现的新用户)20140901至20140930这30天每一天的申购和赎回总额(3万用户每日资金流入流出总量)。
- 收益计算时间:收益计算的时间不再是会计日,而是自然日,以0点为分隔,如果是0点之前转入或者转出的金额算作昨天的,如果是0点以后转入或者转出的金额则算作今天的。
- 收益计算方式:以周一转入周三显示为例,如果用户在周一存入10000元,即1000000分,那么这笔金额是周一确认,周二是开始产生收益,用户的余额还是10000元,在周三将周二产生的收益打入到用户的账户中,此时用户的账户中显示的是10001.1元,即1000110分。其他时间的计算按照表格中的时间来计算得到。
其中,有一些隐含条件值得注意:
- 总申购量包含昨日收益
- 申购之后,要到第二个工作日才能确认,比如周五申购的要到周一才能确认,周二开始计算收益
- 所用数据根据收益计算时间规则的改变,已去除三点以前当日确认的差异重新计算
- 收益计算时间、申购确认对节假日也进行了简化,只考虑了周六周日,没有考虑其它节假日及调休等。但用户的申购和赎回行为,仍然受节假日影响。
本次赛题涉及到一些基金类操作知识,可能会影响到对题目数据的理解和探索,在此整理归纳如下:
- SHIBOR(上海银行间同业拆放利率)表:只有交易日(非节假日)上午报价1次,以年利率(%,Act/360,T+0)对各期限品种报价,保留 4 位小数
- 万份收益:当日真正的收益,挑选基金的重要指标
- 七日年化收益率:过去7天的平均盈利水平
- 余额宝是按天复利计息,银行利率是周期内单利计息
- 传统指标:
某些天的异常表现容易严重影响传统评价指标,尤其是MSE - 赛题评估指标
希望给出的方案在每一天的预测误差都较小
采用积分制,每天10分,共300分
若某天预测误差较小(例如<0.1,),则该天可获得满分(10分)
若某天预测误差较大(例如>0.3),则该天得分为0
映射函数未知
2 环境配置
这次组队学习资料中的“04.时间序列模型”是使用R语言来实现的。可能很多同学和我一样,之前都没有接触过R语言。那么,首先来配置个R语言的环境,试着打开学习资料吧。
R、Rstudio的安装直接官网下载,傻瓜式点击下一步即可完成安装。
感觉R的编译环境下载快、安装简易,下载+安装基本几分钟搞定,比anaconda之类友好太多。
R官网地址:
https://cloud.r-project.org/ Rstudio官网地址:
https://www.rstudio.com/products/rstudio/download/
直接打开Rstudio,在左下角的console里输入(后面的代码均是在Rstudio中输入运行):
install.packages(c('repr', 'IRdisplay', 'evaluate', 'crayon', 'pbdZMQ', 'devtools', 'uuid', 'digest'))
这一步好像是安装了一些辅助性的包,接下来需要安装内核。
网上很多教程是这样写的:
devtools::install_github('IRkernel/IRkernel')
然而连接github好像有些不稳定,出现如下报错:
错误: Failed to install ‘IRkernel’ from GitHub: Timeout was reached:
[api.github.com] Resolving timed out after 10000 milliseconds
经过查找,发现现在的版本可以直接安装R内核包了:
install.packages('IRkernel')
运行之后显示:
package ‘IRkernel’ successfully unpacked and MD5 sums checked
The downloaded binary packages are in C:\xxxxxxxxxx\downloaded_packages
内核包已经下载解压完毕啦!不过现在还没有关联到jupyter。
我们还需要一行代码来使R内核在jupyter中被探测到:
IRkernel::installspec(user=FALSE)
运行之后显示:
[InstallKernelSpec] Installed kernelspec ir in
C:\xxxxxxxxx\jupyter\kernels\ir
现在,R内核就可以在jupypter中显示出来了: