您的位置:首页 > 其它

Datawhale2020.8数据挖掘实战学习笔记之数据分析与探索

2020-08-20 20:25 204 查看

背景介绍以及代码的相关链接

赛题
数据集介绍及下载
NoteBook学习代码

数据探索和准备步骤

数据探索和准备主要分为时间序列图,数据分布可视化以及变量间的相关性分析以及独立性分析几个部分。

  • 时间序列图
    时间序列图的特点是非常便于直接观察数据的特点,如是否具有周期性以及震荡幅度等
  • 数据分布可视化
    在数据分布可视化中较常用到的几种图,分别是直方图,密度曲线图,箱型图以及小提琴图。
  1. 直方图:直方图将数据分成若干区间,纵坐标为各个区间的值出现的频次,可以大致看出数据的分布情况。
  2. 密度曲线图:密度曲线图是直方图的一种变种。当样本容量非常大时,其数据的区间就会缩短,逐渐就会变成一条光滑的曲线。相较于直方图可以更精确的反应数据的分布情况,其纵坐标表示数据的密度,可由概率概率密度公式计算得到。
  3. 箱型图:将样本中的数据从小到大一次排列,前25%数截至地方为下四分位数,通常用Q1表示;至50%处为中位数,通常用Q2表示;至75%处为上四分位数,通常用Q3表示;其上限通常设定在>Q 3+1.5IQR,下限通常设定为<Q1-1.5IQR,其中IQR=Q3-Q1,箱型图具体如下图所示:
  4. 小提琴图:小提琴图就是在箱型图的基础上添加了数据密度,可以更直观地看出数据分布情况,具体如下图所示:
  • 变量相关性与独立性分析 相关性分析:变量主要分为定类变量(即名义型变量,如性别),定序变量(不仅分类,还可以按某种特性进行排序,但两者的差值无意义,如教育程度)和定居变量(可以比较大小,且两者的差有意义,如金额)。各类变量间相关性分析主要采用的方法如下表所示:
  • 独立性分析/检验:变量间无线性相关性,还可能存在非线性关联。这里采用的是mvtest方法(论文:H. Cui, W. Zhong. A Distribution-Free Test of Independence and Its Application to
    Variable Selection[J]. arXiv preprint arXiv:1801.10559, 2018) 进行独立性分析。
    它适用于一个变量是连续型变量,一个变量是有若干情况的离散变量的情况,其优势是计算复杂度低,易于实现。
    Github中实现模块,其结果通过Tn以及P_value来表现,若Tn为0,则说明两变量独立;反之,Tn值越大则说明越不独立,同样当P_value区间的取值越小则说明独立的可能性越小。

资金流入流出的数据探索

  • 通过时序图观察数据特点:通过绘制所有样本以及部分数据的时序图,或按月按周分别画图可以明显看出数据的变化波动情况,同时这个例子中将购买量和赎回量放在一起进行比较也可以明显看出这两个量的相同处和不同处,从而大致判断资金的流动情况。
  • 分析一周中购买量与赎回量的差异:在教程中绘制了直方图,密度曲线图,小提琴图,中位数柱状图,箱型图。可以看出不论是购买量还是赎回量,交易量的峰值均在周四出现,周末的交易量明显低于工作日,且周五就呈现出该趋势。
    此外,教程中通过绘制热力图说明了购买量和赎回量的线性相关性较弱,通过mvtest方法说明这两个变量之间不独立。
  • 每月购买量与赎回量的分布特点:先绘制所有数据的每个月的购买量和赎回量分布情况,然后再将有特点的月份单独画出比较,然后得出结论。
  • 按天分析购买量与赎回量:教程中对14年8月的数据和13年9月的数据按天画出直方图和密度曲线,进行分析并得出相关结论。重要: 然后通过对曲线的拐点进行分析,结合热力图找出奇异值,然后对挖掘了其产生原因,有节假日,购物节和舆论的影响。
  • 分析节假日和特殊日期:首先对各个节假日的购买量和赎回量进行了均值的比较,然后又将节假日与平常的时间进行比较,然后通过时序图表现了节假日购买量和赎回量的数据波动过程,从而得出了结论。
  • 分析大额交易:统计大额交易发现的频次;将大额交易和总交易的交易量放在一起比较;将大额交易和小额交易的交易量进行比较,比较的思路和前面按月和按周比较的类似。
  • 对交易变量中的变量放在一起进行了相关性分析
  • 银行利率对交易量的影响的分析:分别通过热力图分析了前一天和前一周与支付宝利率之间的相关性;画出银行利率时序图,然后将利率时序图分别与购买量与赎回量放在一起比较(注:银行的利率不止一个);分别将支付宝利率和银行利率的变量放在一起进行相关性分析,然后将支付宝利率分别与购买量与赎回量放在一起进行比较,然后结合了大额交易的因素进行分析
  • 分析大小额用户:统计大小额用户交易量占比;将大小额用户的购买量和赎回量放在一起进行比较
  • 分析用户交易的频次:常交易用户,不常交易用户,思路和基本上面一样
  • 分析用户其他属性:地区,性别,星座等
  • 其他分析:教程中主要对购买方式进行了分析
    总结与思路: 教程中对数据的探索非常深入,全面,应该反复梳理。大致思路是首先确定了对数据的流入流出来说最主要的两个变量是购买量和赎回量,然后对数据的分析思路是从大到小,从浅到深的。首先是全部,然后部分,然后每个月,然后每周,然后每天,然后特殊值,然后影响变量的主要因素,然后其他。从数据发现数据特点,然后再细分,分析其产生原因,最后得出结论。

编程中的小问题

  • 教程代码中
    total_balance['date']
    datetime.date(2014.4.1)
    遇到数据类型不同,不能比较的问题
    解决方案:
      可以将2014.4.1强制转成字符串,如
      ‘2014.4.1’
      或者
      str(2014.4.1)
    1. 也可以通过datetime.datetime来转换数据类型,即:
    import datetime
    total_balance['date'] > datetime.datetime(2014.4.1)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐