数据探索性分析
数据探索性分析主要可以按照以下步骤执行:
1. 载入各种数据科学以及可视化库:
- 数据科学库pandas、numpy、scipy;
- 可视化库matplotlib、seabon;
- 其他;
2. 载入数据:
- 载入训练集和测试集;
- 简略观察数据(head()+shape);
通过观察shape可以知道加载的数据大小与你想的是否一致,防止出错。
3. 数据总览:
- 通过describe()来熟悉数据的相关统计量
describe种有每列的统计量,个数count、平均值mean、方差std、最小值min、中位数25% 50% 75% 、以及最大值看这个信息主要是瞬间掌握数据的大概的范围以及每个值的异常值的判断,比如有的时候会发现999 9999 -1 等值这些其实都是nan的另外一种表达方式,有的时候需要注意下 - 通过info()来熟悉数据类型
info 通过info来了解数据每列的type,有助于了解是否存在除了nan以外的特殊符号异常
对于object类型的数据,需要单独处理
4. 判断数据缺失和异常
- 查看每列的存在nan情况
主要的目的在于 nan存在的个数是 否真的很大,如果很小一般选择填充,如果使用lgb等树模型可以直接空缺,让树自己去优化,但如果nan存在的过多、可以考虑删掉。
通过msno这个包可以可视化样本的缺失值 - 异常值检测
存在数据脏乱的情况,所以需要查看数据中的异常数据
5. 了解预测值的分布
- 查看预测值的具体频数
观察预测值的频率分布 - 总体分布概况(无界约翰逊分布等)
如果不服从正态分布需要进行转换 - 查看skewness and kurtosis
峰度Kurt代表数据分布顶的尖锐程度。偏度skew简单来说就是数据的不对称程度
6. 特征分为类别特征和数字特征,并对类别特征查看unique分布
这里要强调的就是字段类别的分类,我们有时候需要自己去设定,这就通过观测每一个字段的含义,和具体数据的字段类型信息去均衡了。
类别字段可以做类似于LabelEncoder的处理,将其转换为数值。
7. 数字特征分析
- 相关性分析
分析特征与预测值的相关性 - 查看几个特征得偏度和峰值
查看类别特征有没有严重偏斜的情况 - 每个数字特征得分布可视化
箱线图,小提琴图 - 数字特征相互之间的关系可视化
相关系数 - 多变量互相回归关系可视化
8. 类型特征分析
- unique分布
- 类别特征箱形图可视化
- 类别特征的小提琴图可视化
- 类别特征的柱形图可视化类别
- 特征的每个类别频数可视化(count_plot)