EDA

探索性数据分析(Exploratory Data Analysis,EDA)是数据分析的“望闻问切”,它通过可视化和统计方法揭示数据真实面貌,而非先验假设。与传统统计分析“假设驱动”不同,EDA强调“数据驱动”,让数据自身规律引导分析方向,是从原始数据到建模预测的必经桥梁。

一、核心目标:让数据“开口说话”

EDA的终极目的是建立对数据的直觉,具体可拆解为四个任务:

总结关键特征:通过均值、中位数、分布图等提炼数据核心统计属性,例如发现“汽车价格均值(4万美元)远高于中位数(2.9万美元)”,提示数据存在右偏分布。

比较群体差异:借助分组箱线图、堆叠条形图等工具,揭示“女生写作分数普遍高于男生”这类细分规律。

挖掘变量关联:通过热力图发现“发动机功率与汽车价格呈0.82强相关”,为特征选择提供依据。

识别潜在问题:检测缺失值(如“发动机马力”字段3%数据缺失)、异常值(如“年龄=100岁”的离群点)及数据不均衡问题。

二、实施流程:从“体检”到“诊断”

1. 数据概览:快速摸清家底

用df.info()查看数据类型(如“价格”是整数型,“驱动方式”是分类变量),df.describe()获取数值列统计摘要,df.shape确认样本量(如11914行×16列)。此阶段需特别注意:

数据类型匹配:若“年份”被识别为字符串而非整数,需提前转换避免分析错误。

缺失值初检:通过df.isnull().sum()发现“归一化损失”列存在20%缺失值,后续需决定删除或插补。

2. 单变量分析:聚焦个体特征

针对不同类型变量选择适配方法:

连续变量(如年龄、销售额):用直方图观察分布形态(正态/偏态),箱线图定位异常值。例如“学生数学成绩呈近似正态分布,均值65分”。

分类变量(如性别、地区):用条形图展示频数,如“C组种族学生占比达35%”。

有序变量(如学历等级):通过堆积图比较大小关系,如“本科以上学历用户付费率是高中以下的2.3倍”。

3. 双变量与多变量分析:探索关系网络

连续×连续:散点图+皮尔逊相关系数(线性关系),或互信息(非线性关系)。例如“广告支出与销售额相关系数0.78”。

分类×连续:分组箱线图,如“豪华车油耗显著低于经济型车”。

多变量联动:热力图展现相关矩阵(如“阅读与写作分数相关性0.95”),或用平行坐标图观察高维数据模式。

4. 数据清洗与转换:为建模铺路

根据探索结果处理问题数据:

缺失值:少量缺失(<5%)可删除行,大量缺失可用中位数填充(如“发动机马力”用150匹填充)。

异常值:对“价格=100万美元”这类极端值,可截断或对数转换(log_transformed_value = log10(value))削弱影响。

特征工程:基于领域知识生成新变量,如从“年份”派生出“车龄”。

三、工具与代码实践

1. 基础工具链

Python库:Pandas(数据操作)、Matplotlib/Seaborn(静态可视化)、Plotly(交互式图表)。

自动化工具:pandas_profiling一键生成报告,D-Tale支持交互式异常值检测,大幅提升效率。

2. 核心代码示例

PYTHON

 

 

相关成语


成语首拼