探索性数据分析(Exploratory Data Analysis,简称EDA)
EDA就是拿到数据后对数据进行探索,发现数据有何特征或问题,它可以:
1.更好地理解数据
2.建立对数据的直觉
3.形成假设
4.洞察数据
EDA的一个主要方式就是数据可视化,这让你可以直观地看到数据的分布,模式等。
三个步骤:
1.获取领域相关知识
每份数据可能都是关于不同行业的,数据探索前,先熟悉相关领域的知识,处理数据时更能游刃有余
2.检查数据是否符合直觉
假如数据有一个特征年龄,出现了264这种数字,显然是错误的
3.理解数据是如何收集的
有没有用过过采样,欠采样等等,这样才能更好地设计验证机制
如果训练集和测试集是由不同的方式收集,那我们就不能在训练集中选取部分作为验证集
匿名数据
在数据竞赛中,竞赛举办方为了不暴露公司重要信息,会有数据匿名的情况,比如编码文本,去除特征名称,
如图,特征名被x1,x2…代替
Visualizations
histogram直方图
有时直方图是具有迷惑性的
光看这个图我们会认为大部分值都是0,然而我们取log再画直方图就变了
以row index为x轴,画出某个特征的分布图,从水平方向看,看到特征有很多重复值,垂直方向上看不出什么模式
还可以用颜色标记出每个点所述的y值,边界分明,这个特征是一个很好地预测y的指标,而且从垂直方向能很明显看到分界线,这个数据是按照y值排序的,没有洗牌
数据清洗和检查
检查特征值是否为常数,如果是一般都是有问题的(训练集和测试集一同检查)
或者检查特征值在训练集中是常数,而测试集中的值和训练集不同
两个特征值完全一样
还是两个类别特征值一样,只是类别对应的code不一样
确保数据集是打乱的(shuffled),下面这种情况可能就不是,最末端明显变小了