本学习笔记为阿里云天池龙珠计划数据挖掘训练营的学习内容,学习链接为:https://tianchi.aliyun.com/specials/activity/promotion/aicampdmyy
一.学习知识点概要
1.EDA数据探索性分析
2.EDA目标
3 代码展示
二.学习内容
1.EDA目标
EDA的价值主要在于熟悉数据集,了解数据集,对数据集进行验证来确定所获得数据集可以用于接下来的机器学习或者深度学习使用。
2.内容介绍
(1)载入各种数据科学以及可视化库:
- 数据科学库 pandas、numpy、scipy;
- 可视化库 matplotlib、seabon;
- 其他;
(2)载入数据:
- 载入训练集和测试集;
- 简略观察数据(head()+shape);
(3)数据总览:
- 通过describe()来熟悉数据的相关统计量
- 通过info()来熟悉数据类型
(4)判断数据缺失和异常
- 查看每列的存在nan情况
- 异常值检测
(5)了解预测值的分布
- 总体分布概况(无界约翰逊分布等)
- 查看skewness and kurtosis
- 查看预测值的具体频数
(6)特征分为类别特征和数字特征,并对类别特征查看unique分布
(7)数字特征分析
- 相关性分析
- 查看几个特征得 偏度和峰值
- 每个数字特征得分布可视化
- 数字特征相互之间的关系可视化
- 多变量互相回归关系可视化
(8)类型特征分析
- unique分布
- 类别特征箱形图可视化
- 类别特征的小提琴图可视化
- 类别特征的柱形图可视化类别
- 特征的每个类别频数可视化(count_plot)
(9)用pandas_profiling生成数据报告
3.代码展示
(1)载入各种数据科学以及可视化库
(2)载入数据
所有特征值均脱敏处理
(3)总览数据概况
(4)判断数据缺失和异常
(5)了解预测值的分布
(6)特征分为类别特征和数字特征,并对类别特征查看unique分布
(7)数字分析特征
可以看出匿名特征相对分布均匀
多变量之间的关系可视化
(8)类别特征分析
(9)用pandas_profiling生成数据报告
三.学习问题与解答
此次的学习内容围绕着数据分析展开,代码量非常大,代码的编写过程难免遇到报错的情况,因为本学期刚好正在学此门课,因此找同学求助直接解决了代码错误的问题
四.学习思考与总结
数据探索在机器学习中我们一般称为EDA(Exploratory Data Analysis):
数据探索有利于我们发现数据的一些特性,数据之间的关联性,对于后续的特征构建是很有帮助的。
- 对于数据的初步分析(直接查看数据,或.sum(), .mean(),.descirbe()等统计函数)可以从:样本数量,训练集数量,是否有时间特征,是否是时许问题,特征所表示的含义(非匿名特征),特征类型(字符类似,int,float,time),特征的缺失情况(注意缺失的在数据中的表现形式,有些是空的有些是”NAN”符号等),特征的均值方差情况。
- 分析记录某些特征值缺失占比30%以上样本的缺失处理,有助于后续的模型验证和调节,分析特征应该是填充(填充方式是什么,均值填充,0填充,众数填充等),还是舍去,还是先做样本分类用不同的特征模型去预测。
- 对于异常值做专门的分析,分析特征异常的label是否为异常值(或者偏离均值较远或者事特殊符号),异常值是否应该剔除,还是用正常值填充,是记录异常,还是机器本身异常等。
- 对于Label做专门的分析,分析标签的分布情况等。
- 进步分析可以通过对特征作图,特征和label联合做图(统计图,离散图),直观了解特征的分布情况,通过这一步也可以发现数据之中的一些异常值等,通过箱型图分析一些特征值的偏离情况,对于特征和特征联合作图,对于特征和label联合作图,分析其中的一些关联性。
文章部分来源:
--- By: AI蜗牛车
PS:东南大学研究生,研究方向主要是时空序列预测和时间序列数据挖掘
公众号: AI蜗牛车
知乎: https://www.zhihu.com/people/seu-aigua-niu-che
github: https://github.com/chehongshu