Task01 数据探索与分析

第一部分 赛题解读

赛题介绍.
数据集介绍及下载.

1.1 赛题背景介绍

1.蚂蚁金服拥有上亿会员,每天都涉及大量的资金流入和流出,资金管理压力会非常大。
2.在既保证资金流动性风险最小,又满足日常业务运转的情况下精确地预测资金的流入出情况变得尤为重要。
赛题需要我们根据余额宝用户的申购赎回数据等信息预测未来每日的资金流入流出情况。

1.2 赛题数据介绍

解压数据集后可见五个文件。

1.2.1 用户信息表

用户信息表: user_profile_table 。总共随机抽取了约 3 万用户,其中部分用户在 2014 年 9 月份第一次出现,这部分用户只在测试数据中 。因此用户信息表是约 2.8 万 个用户的基本数据,在原始数据的基础上处理后,主要包含了用户的性别、城市和星座。具体的字段如下表 1 :
在这里插入图片描述

1.2.2 用户申购赎回数据表

用户申购赎回数据表: user_balance_table 。里面有 20130701 至 20140831 申购和赎回信息、以及所有的子类目信息, 数据经过脱敏处理。脱敏之后的数据,基本保持了原数据趋势。数据主要包括用户操作时间和操作记录,其中操作记录包括申购和赎回两个部分。金额的单位是分,即 0.01 元人民币。 如果用户今日消费总量为0,即consume_amt=0,则四个字类目为空。
在这里插入图片描述
注 1 :上述的数据都是经过脱敏处理的,收益为重新计算得到的,计算方法按照简化后的计算方式处理,具体计算方式在下节余额宝收益计算方式中描述。

注 2 :脱敏后的数据保证了今日余额 = 昨日余额 + 今日申购 - 今日赎回,不会出现负值。

1.2.3 收益率表

收益表为余额宝在 14 个月内的收益率表: mfd_day_share_interest 。具体字段如表格 3 中所示。
在这里插入图片描述

1.2.4 上海银行间同业拆放利率(Shibor)表

银行间拆借利率表是 14 个月期间银行之间的拆借利率(皆为年化利率): mfd_bank_shibor 。具体字段如下表格 4 所示:
在这里插入图片描述

1.2.5 选手提交结果示例表

选手提交结果表: tc_comp_predict_table
在这里插入图片描述
每一行数据是一天对申购、赎回总额的预测值, 2014 年 9 月每天一行数据,共 30 行数据。 Purchase 和 redeem 都是金额数据,精确到分,而不是精确到元。
评分数据格式要求与“选手结果数据样例文件”一致,结果表命名为:tc_comp_predict_table, 字段之间以逗号为分隔符,格式如下图:
在这里插入图片描述

1.2.6 余额宝收益计算方式

在这里插入图片描述
此处计算方式基于实际余额宝收益计算方法,但是进行了一定的简化。

1.3 赛题任务与评估指标

1.3.1 赛题任务

利用 2013 年7月~2014 年8月的数据, 预测 2014 年9月每一天申购和赎回的总量。

1.3.2 评估指标

(1)传统评估指标
申购总量和赎回均为连续型变量,常采用 MSE (均方误差)、 MAE (平均绝对误差)、 MAPE MAPE(平均绝对相误差)等为评价指标 。
(2)scikit-learn中的各种衡量指标

from sklearn.metrics import mean_squared_error mean_squared_error #均方误差
from sklearn.metrics import mean_absolute_error mean_absolute_error #平均绝对误差
import import numpy numpy as np
#调用
mean_squared_error(y_test, predict)
mean_absolute_error(y_test, predict)
np.mean np.mean((y_test - y_predict) / y_test) #平均绝对误差

(3)赛题评估指标
积分制,每天10分,共300分;使用相对误差,通过得分函数映射得到一个每天预测结果的得分,映射函数未知。具体操作如下:
1.计算所有用户在测试集上每天的申购及赎回总额与实际情况总额的误差。
在这里插入图片描述
2.若某天预测误差较小(例如 <0.1, ),则该天可获得满分( 10 分),若某天预测误差较大(例如 >0.3 ),则该天得分为 0。
3.最后公布总积分 = 申购预测得分 *45%+ 赎回预测得分 *55% 。

1.4 赛题方案解析

1.4.1 资金流入流出预测

1.需要先统计每天的申购总额和赎回总额;
2.时间序列预测问题;
3.在比赛前应先查询以往比赛的经典方案。

1.4.2 方案

1.基准方法:临近数据、中位数等;
2.时间序列规则与模型;
3.抽取特征、利用机器学习方法建模。

第二部分 数据分析与探索

2.1 数据探索和准备步骤

2.1.1 时间序列图

1820 年~1869年的太阳黑子数依时间画在下图中:
在这里插入图片描述
时间序列图便于观察数据特点,例如,是否具有周期性,震荡幅度等等,是用于观察数据随时间的变化的一种好方法。

2.1.1 数据可视化

2.1.1.1 直方图

在这里插入图片描述

2.1.1.2 密度曲线图

直方图的变种:
在这里插入图片描述

2.1.1.3 箱型图

在这里插入图片描述
箱型图用数据中的五个统计量:最小值、上四分位数(Q3)、中位数、下四分位数(Q1)与最大值来描述数据的一种方法,它也可以粗略地看出数据是否具有有对称性,分布的分散程度等信息,特别可以用于对几个样本的比较。
异常值为:<Q1-1.5IQR;>Q3+1.5IQR
其中IQR = Q3- Q1,为四分位差。

2.1.1.4 小提琴图

小提琴图用来展示类别变量的值的分布情况,宽的地方数据分布多。
在这里插入图片描述
• 细黑线代表 95% 置信区间
• 黑色粗条代表四分位数范围
• 白点代表中位数
小提琴图 (Violin Plot)是用来展示多组数据的分布状态以及概率密度。这种图表结合了箱形图和密度图的特征,主要用来显示数据的分布形状。在数据量非常大不方便一个一个展示的时候小提琴图特别适用。
95%置信区间就是说某个统计量落在这个区间里的可能性是95%。

2.1.3 变量间相关性分析与独立性分析

2.1.3.1 相关性分析

• 定类变量:按事物某种属性分类或分组,数字大小代表类别。比如性别。
• 定序变量:不仅分类,还按某种特性排序; 两值的差无意义;如教育程度。
• 定距变量:表现为数值,有单位,可以做加减运算,不能做乘除运算。比如温度。
在这里插入图片描述

2.1.3.2 独立性分析/检验

• 变量间无线性相关,还可能存在非线性关联
• 假设 X为连续型变量, Y为离散型变量(有 R种取值)
• 𝐻0:X与Y独立; 𝐻1:X与Y不独立
• 定义 𝐹(𝑋)=𝑃(𝑋≤𝑥),𝐹𝑟(𝑋)=𝑃(𝑋≤𝑥|𝑌=𝑦𝑟)
在这里插入图片描述
在这里插入图片描述
计算复杂度低,易于实现链接.
分位数表:
在这里插入图片描述

2.2 数据分析

主要讲解数据分析中使用到的方法。

2.2.1 读取数据

data_balance = pd.read_csv('user_balance_table.csv')#用户申购赎回数据表

pd.read_csv()默认用逗号分隔符读取数据,并转化为dataframe的格式。

2.2.2 添加时间信息

查看数据后发现日期特征‘report_date’的格式为20140805,需要转化为计算机可读的形式2014-08-05。

data_balance['date'] = pd.to_datetime(data_balance['report_date'], format="%Y%m%d")

to_datetime方法可以解析多种不同的日期表示形式。
然后添加我们需要的时间戳:

data_balance['day'] = data_balance['date'].dt.day
data_balance['month'] = data_balance['date'].dt.month
data_balance['year'] = data_balance['date'].dt.year
data_balance
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值