🗄️ Stage 02 · 数据工程

数据是AI的燃料

数据工程 = 收集 → 质检与初筛 → 数据标注。数据质量决定模型上限,上游每省1小时,下游省10倍时间。

🔄 数据工程完整流水线(3 步)

从原始数据到可标注数据集——"及格线检查",深度清洗和标准化在下游预处理完成

1
📥
STEP 1
数据收集
爬虫/开源/设备/合成
2
🔍
STEP 2
质检与初筛
去重/补缺/剔坏样本
3
🏷️
STEP 3
数据标注
分类/检测/分割/NLP

📥 Step 1:数据收集全方案

数据收集是整个流水线的起点——没有好数据,再好的模型也白搭。核心问题:从哪来?够不够?合不合法?

🕷️

网络爬虫采集

适用场景:公开网页数据、电商评论、新闻文本、社交媒体
技术栈:Requests + BeautifulSoup / Selenium / Scrapy / Playwright
关键注意:遵守 robots.txt、控制请求频率、处理反爬机制
# 最简爬虫示例
import requests
from bs4 import BeautifulSoup

resp = requests.get("https://example.com")
soup = BeautifulSoup(resp.text, "html.parser")
items = soup.select(".product")  # CSS 选择器
📚

开源数据集

适用场景:计算机视觉、NLP、语音、推荐系统等通用任务
热门仓库:HuggingFace 🤗、Kaggle、UCI ML、Open Images、Common Voice
关键注意:检查数据许可证(CC / MIT / 商业限制)、评估数据偏差
ImageNet COCO MNIST IMDB Reviews CIFAR-10
📡

传感器/设备采集

适用场景:物联网、医疗监测、工业质检、自动驾驶
数据类型:温度/湿度/振动时序、摄像头图像、LiDAR 点云、ECG 信号
关键注意:时间同步、设备校准、噪声过滤、隐私合规
📷
摄像头
📏
LiDAR
💓
生物信号
🎛️

人工合成数据

适用场景:真实数据稀缺、极端场景模拟、数据隐私敏感
方法:GAN 生成图像、3D 引擎渲染、SMOTE 过采样、规则生成文本
关键注意:合成数据分布偏差、需要真实数据做验证
# SMOTE 合成少数类样本
from imblearn.over_sampling import SMOTE
smote = SMOTE(random_state=42)
X_new, y_new = smote.fit_resample(X, y)

🧭 数据源选择决策树

1. 有现成数据?
优先查开源数据集,省时间省成本
2. 需要特定场景?
自己爬/采,但注意合规
3. 数据量不够?
合成 + 数据增强补充
4. 有隐私顾虑?
合成数据优先 / 脱敏处理

🔍 Step 2:数据质检与初筛

数据工程环节的质检与初筛:去重、补缺、剔除坏样本、格式核验——深度标准化、特征工程、数据集划分等在下游数据预处理阶段完成

🎯 交互式演练:质检一份脏数据

下面是一份带有问题的客户数据,请点击每个"问题行"查看清洗逻辑:

ID 姓名 年龄 手机号 注册日期 操作
001张三28138001380012024-01-15✓ 正常
002李四32139123456782024-02-20⚠️ 问题行
003王五-137987654322024-03-10⚠️ 问题行
004赵六-45136000011112024-04-05⚠️ 问题行
005钱七24123452024-05-12⚠️ 问题行
006孙八30135555566662024-06-18✓ 正常

📝 Pandas 清洗代码示例

import pandas as pd

df = pd.read_csv("raw_data.csv")

# 1. 去重
df = df.drop_duplicates(subset=["手机号"])

# 2. 缺失值处理(年龄用中位数填充)
df["年龄"] = pd.to_numeric(df["年龄"], errors="coerce")
df["年龄"] = df["年龄"].fillna(df["年龄"].median())

# 3. 异常值剔除(年龄0-120才合理)
df = df[(df["年龄"] > 0) & (df["年龄"] < 120)]

# 4. 手机号格式校验
df = df[df["手机号"].str.match(r"^1[3-9]\d{9}$")]

# 5. 保存清洗后数据
df.to_csv("cleaned_data.csv", index=False)

🏷️ Step 3:数据标注

标注是让数据"有意义"的关键步骤

📊

分类标注

给样本打类别标签(如:正面/负面/中性)

工具:Label Studio, Doccano
🎯

检测标注

在图像上画框(bbox)标注物体位置

工具:LabelImg, CVAT, Roboflow
🗺️

分割标注

像素级精确标注目标轮廓

工具:LabelMe, CVAT, Supervisely
📝

NLP标注

实体识别、关系抽取、意图标注

工具:Doccano, Label Studio, Prodigy

💰 标注成本估算器(交互式)

预估时间
-- 天
预估成本
-- 元
推荐方案
--
← 返回需求定义