数据理解是机器学习项目生命周期里非常关键的一环,位于业务理解之后、数据准备之前。
它的目标不是立刻清洗和改造数据,而是看懂数据:数据里面有什么、质量怎么样、变量之间有什么关系、存在哪些潜在问题,为后续的数据处理和建模提供依据。
一、数据理解主要工作内容
收集数据
拿到原始数据集,确认数据来源、采集方式、更新频率,确认字段含义、单位、业务定义,避免字段理解错误。查看数据集基本信息
查看样本总量、特征数量、字段类型(数值、分类、文本等),区分自变量(特征)和因变量(标签)。
常用查看方式:前几行数据、数据集行列数、字段类型、统计摘要。描述性统计分析
对数值型特征计算统计指标:平均值、中位数、最大值、最小值、标准差、四分位数。
对分类型特征统计各类别的数量、占比,观察类别是否均衡。检查数据质量
重点排查三类问题:
- 缺失值:哪些字段有空值、缺失比例多少;
- 异常值:数值明显偏离正常范围的数据;
- 重复数据:完全重复或者关键主键重复的样本。
- 探索变量关系
通过可视化和相关性分析,观察:
- 特征和标签是否存在相关趋势;
- 特征之间是否高度相关(多重共线性);
- 不同类别分组下,特征分布有没有明显差异。
二、常用工具与代码示例
使用 pandas + matplotlib 完成基础的数据理解:
import pandas as pd
import matplotlib.pyplot as plt
# 读取数据
df = pd.read_csv("data.csv")
# 1. 查看前5行
print(df.head())
# 2. 数据集形状:样本数,特征数
print("数据集形状:", df.shape)
# 3. 字段类型、缺失情况
print("\n数据信息:")
print(df.info())
# 4. 描述性统计(数值字段)
print("\n统计摘要:")
print(df.describe())
# 5. 缺失值统计
print("\n缺失值统计:")
print(df.isnull().sum())
# 6. 相关性热力图(简单查看相关)
print("\n相关系数:")
print(df.corr())
# 7. 单变量分布可视化
df.hist(figsize=(10,8))
plt.show()
三、数据理解输出成果
完成数据理解之后,一般产出一份数据洞察报告,包含:
- 数据集概况说明;
- 各字段含义、数据类型;
- 缺失、异常、重复问题清单;
- 特征分布与相关性结论;
- 初步建议:哪些特征可用、哪些需要处理。
四、常见误区
- 跳过数据理解,直接开始建模。很容易因为数据隐藏问题,导致模型效果差、结果不可信;
- 只看统计数字,不做可视化。很多分布异常、分组差异,表格很难发现;
- 把所有特征直接丢进模型,不判断特征和业务目标是否相关。
小结
数据理解的核心一句话:先看懂数据,再动手建模。
这一步的价值,是提前识别风险,决定后续数据清洗、特征工程的方案。
思考题:如果一个标签字段 95% 都是同一个类别,在数据理解阶段我们应该重点关注什么?
0 条笔记