数据探索大致流程
目录
1.什么是EDA
- 在拿到数据后,首先要进行的是数据探索分析(
Exploratory Data Analysis
),它可以有效的帮助我们熟悉数据集,了解数据集。初步分析变量间的相互关系以及变量与预测值之间的关系,并且对数据进行初步处理,如:数据的异常和缺失处理等,以便使数据集的结构和特征让接下来的预测问题更加可靠 - 数据探索分析还可以
- 获得有关数据清理的宝贵灵感(缺失值处理,特征降维…)
- 获得特征工程的启发
- 获得对数据集的感性认识
- 意义
- 数据决定了问题能够被解决的最大上限,而模型只决定如何逼近这个上限
EDA流程
1.载入数据并简略观察数据
2.总览数据概况
- 在
describe
中每一列的统计量,均值,标准差,最小值,中位数25%,50%,75%
以及最大值,可以帮助我们快速掌握数据的大概范围和数据的异常判断 info
可以了解每列的type
和是否存在缺失数据- 通过
isnull().sum()
查看每列缺失情况
3.通过describe
和matplotlib
可视化查看数据的相关统计量(柱状图)
- 重点查看方差为0或者极低的特征
4.缺失值处理
- 删除
- 中位数填充
- 均值填充
- …
5.查看目标数据的分布
-
重点查看是否有
-
分类:类别分布不均衡
- 可以考虑使用过抽样处理
-
回归:离群点数据
- 可以考虑将离群点数据去除
-
-
离群点数据
- 存在着一些特别大或者特别小的值,这些可能是离散点或记录错误的点,对我们的结果有一些影响,需要将离散点数据进行过滤
- 离散点:指的是一个数据序列中,远离序列的一般水平的极端大致和极端小值,且这些会对整个数据的分析产生异常的影响
-
离散点过滤方式
q1-3*iq
:q1
为序列中25%
的中位数,iq
为q3-q1
q3+3*iq
:q3
为序列中75%的中位数,iq
为q3-q1
-
离散点判定:
- 极小的离散点数据
x<(q1-3*iq)
- 极大的离散点数据
x>(q3+3*iq)
q1=data['Site EUI (kBtu/ft²)'].describe()['25%'] q3=data['Site EUI (kBtu/ft²)'].describe()['75%'] iq=q3-q1 #过滤极大离散点和极小离散点数据 data_copy=data[(data['Site EUI (kBtu/ft²)']>(q1-3*iq)) & (data['Site EUI (kBtu/ft²)']<(q3+3*iq))]
- 极小的离散点数据
6.特征分布
-
绘制数字特征分布(直方图)
- 可以观察特征为连续性还是离散型特征
- 可以观测特征数据的分布
- 是否有离群点
-
绘制类别特征的分布(柱状图)
- 查看该特征中是否有稀疏类,在构建模型时,稀疏泪往往会出现问题,但不是绝对的,如果当前特征比较重要则可以将特征的稀疏类数据删除
7.查看特征与特征之间的相关性(热力图)
- 相关性强的特征就是冗余特征,可以考虑删除,通常认为相关系数大于0.5为强相关