
EDA
探索性数据分析(Exploratory Data Analysis,EDA)是数据分析的“望闻问切”,它通过可视化和统计方法揭示数据真实面貌,而非先验假设。与传统统计分析“假设驱动”不同,EDA强调“数据驱动”,让数据自身规律引导分析方向,是从原始数据到建模预测的必经桥梁。
EDA的终极目的是建立对数据的直觉,具体可拆解为四个任务:
总结关键特征:通过均值、中位数、分布图等提炼数据核心统计属性,例如发现“汽车价格均值(4万美元)远高于中位数(2.9万美元)”,提示数据存在右偏分布。
比较群体差异:借助分组箱线图、堆叠条形图等工具,揭示“女生写作分数普遍高于男生”这类细分规律。
挖掘变量关联:通过热力图发现“发动机功率与汽车价格呈0.82强相关”,为特征选择提供依据。
识别潜在问题:检测缺失值(如“发动机马力”字段3%数据缺失)、异常值(如“年龄=100岁”的离群点)及数据不均衡问题。
用df.info()查看数据类型(如“价格”是整数型,“驱动方式”是分类变量),df.describe()获取数值列统计摘要,df.shape确认样本量(如11914行×16列)。此阶段需特别注意:
数据类型匹配:若“年份”被识别为字符串而非整数,需提前转换避免分析错误。
缺失值初检:通过df.isnull().sum()发现“归一化损失”列存在20%缺失值,后续需决定删除或插补。
针对不同类型变量选择适配方法:
连续变量(如年龄、销售额):用直方图观察分布形态(正态/偏态),箱线图定位异常值。例如“学生数学成绩呈近似正态分布,均值65分”。
分类变量(如性别、地区):用条形图展示频数,如“C组种族学生占比达35%”。
有序变量(如学历等级):通过堆积图比较大小关系,如“本科以上学历用户付费率是高中以下的2.3倍”。
连续×连续:散点图+皮尔逊相关系数(线性关系),或互信息(非线性关系)。例如“广告支出与销售额相关系数0.78”。
分类×连续:分组箱线图,如“豪华车油耗显著低于经济型车”。
多变量联动:热力图展现相关矩阵(如“阅读与写作分数相关性0.95”),或用平行坐标图观察高维数据模式。
根据探索结果处理问题数据:
缺失值:少量缺失(<5%)可删除行,大量缺失可用中位数填充(如“发动机马力”用150匹填充)。
异常值:对“价格=100万美元”这类极端值,可截断或对数转换(log_transformed_value = log10(value))削弱影响。
特征工程:基于领域知识生成新变量,如从“年份”派生出“车龄”。
Python库:Pandas(数据操作)、Matplotlib/Seaborn(静态可视化)、Plotly(交互式图表)。
自动化工具:pandas_profiling一键生成报告,D-Tale支持交互式异常值检测,大幅提升效率。
PYTHON