拿到数据集之后,一般第一件就是做EDA,请问大家一般自己做EDA都包括哪些步骤?
大家都用了什么样的方法?
3个回答
我一般是这样
第一步
看数据整体信息:有多少行,有多少特征,其中有多少特征是数值的,多少是分类的
对于监督式学习
第二步
看y的分布:如果是回归,看看均值、方差,画画直方图;如果是分类,看看各类的比例,是否平衡
第三步
看特征(x):看看各个特征的含义是什么,每个特征的分布情况如何,有没有missing,有没有outlier,看看有没有信息冗余(两个特征几乎一样)
第四步
看y与x的关系:y和每一个特征的相关系数;如果分类,可以做一元逻辑回归;对于分类变量,可以看看每个分类下y的均值
对于聚类问题,就忽略第二步和第四步
SofaSofa数据科学社区DS面试题库 DS面经接着 @木子周 的步骤写一些我自己的经验和方法:
第三步,还可以看一下有没有单一变量或者接近单一变量的特征,然后删掉这种特征;
第四步,如果是分类模型的话,还可以看一看数据集中每个特征对应不同y值的分布是否相似,如果非常相似的话,根据这种特征可能无法很好的区分y值,也可以考虑删掉;
然后还可以看一下每个特征在训练集和测试集中的分布,如果分布差异很大,很有可能导致在训练集上得到的模型无法很好的预测测试集中的样例,这样的干扰特征应该也要删掉;
最后可以用一些基于树的不同模型,初步跑一些baseline,然后得到特征重要性,对一些重要性高的特征再做一些特征工程。
数据探索:数据对象和属性类型
基本统计数据描述的典型度量:数据可视化方法,各种数据相似性,相异性的方法。
认识数据:
标称属性:标称属性的值是一些符号或事物的名称。每个值代表某种类别、编码、或状态。
二元属性:是一种标称属性;0或1
序列属性:其可能的值之间具有有意义的序或秩评定,但相继值之间的差是未知的。
数值属性:可度量的定量。区间标度,比率标度。
数据的统计描述
中心趋势度量:均值、中位数、众数、中列数(最大最小值的均值)
数据的散布:极差、四分位数等
图形化显示:分位数图、直方图、散点图—–>数据可视化
度量数据的相似性和相异性
数据矩阵:对象-属性结构 用 ( n * p )形式的矩阵来表示n个对象,每个对象p个属性。
相异性矩阵:对象-对象结构 存放两两对象的邻近度 n * n
欧几里得距离、曼哈顿距离:满足非负性、同一性、对称性、三角不等式
闵可夫斯基距离:h–>∞时的上确界距离
余弦相似性:相当于向量的cos
数据质量分析
脏数据:缺失值、异常值、不一致的值、重复数据及含有特殊符号(如#¥*)的值。
缺失值分析
因为无法获取或遗漏等原因造成某属性值不存在,会导致在建模时丢失有用信息,空值数据也会使建模过程造成不可靠的输出。
通过使用简单的统计分析,可以得到含有缺失值的属性的个数,以及每个属性的未缺失数、缺失数与缺失率。缺失值处理分为删除、对可能的值插补和不处理
异常值分析
重视异常值,分析其产生的原因,常常会成为发现问题进而改进决策的契机。
1. 简单统计量分析:最大值最小值判断,是否超出合理范围。
2. 3σ原则:异常值被定义为一组测定值中与平均值的偏差超过3倍标准差的值。距离平均值3σ之外的值概率为P(|x-u|>3σ)<=0.003 时属于极个别的小概率事件。
3. 箱形图分析:此时异常值被定义为不在此范围 [Ql-1.5IQR ~ Qu+1.5IQR]的值。
1. Ql为下四分位数:表示全部观察值中有四分之一的数据取值比它小;
2. Qu为上四分位数,表示全部观察值中有四分之一的数据取值比它大;
3. IQR称为四分位数间距,是上四分位数Qu和下四分卫数Ql之差,之间包含了全部观察值的一半。
4. 四分位数具有一定的鲁棒性:25%的数据可以变得任意远而不会很大的扰动四分位数,所以异常值不能对这个标准施加影响。箱形图识别异常值的结果比较客观。识别异常值有优越性
4. 一致性分析:不一致数据的产生主要发生在数据集成过程中,这可能由于被挖掘数据是来自于从不同的数据源、对于重复存放的数据未能进行一致性更新造成的。
数据特征分析
分布分析
分布分析揭示数据分布特征和分布类型。绘制频率分布表、绘制频率分布直方图、绘制茎叶图进行直观分析;对于定性分类数据,可用饼图和条形图直观的显示分布情况。
统计量分析
集中趋势度量:均值、中位数、众数
离中趋势度量:极差、标准差、变异系数、四分位数间距
相关性分析
散点图、散点图矩阵、计算相关系数
其他分析
周期性分析