4. 数据采集与预处理:回放数据、评审记录、用户反馈的收集与清洗
效果评估的可靠性,首先取决于原始数据的质量。本章聚焦于三类核心数据源——回放数据、评审记录与用户反馈——的采集策略与预处理流程。只有经过系统化清洗与对齐的数据,才能支撑后续的量化分析与对比评审。
4.1 三类数据源的定义与采集方式
| 数据源 | 定义 | 典型采集方式 | 采集频率 |
|---|---|---|---|
| 回放数据 | 用户操作会话的完整录屏、事件日志、性能指标 | SDK 埋点、录屏工具、APM 平台导出 | 每次评审会话结束后自动触发 |
| 评审记录 | 评审专家在对比评审过程中产生的评分、标注、评语 | 评审系统表单提交、结构化评分表、语音转文字 | 每轮评审节点完成后 |
| 用户反馈 | 终端用户对产品/功能的主观评价、满意度、问题描述 | 问卷、NPS 推送、客服工单、应用商店评论 | 版本发布后固定周期(如 T+7) |
采集原则:三类数据必须携带统一的时间戳、用户标识(匿名化处理)与版本号,这是后续跨源关联的基础。
4.2 数据预处理的核心流程
原始数据通常包含噪声、缺失值、格式不一致等问题。预处理分为四个阶段:
- 格式标准化:将时间戳统一为 ISO 8601 格式;将评分字段统一为 0–100 或 1–5 分制;将文本字段统一为 UTF-8 编码。
- 缺失值处理:对关键字段(如评审得分、操作时长)缺失的记录,优先回溯补采;无法补采的,按字段类型采用均值填充或删除该记录。
- 异常值检测:使用 IQR 或 Z-score 方法识别回放数据中的异常时长、评审记录中的极端评分,标记后人工复核。
- 跨源对齐:以“评审会话 ID”为主键,将回放数据、评审记录、用户反馈进行左连接合并,生成宽表。
关键指标:预处理阶段的数据留存率应 ≥ 95%;若低于此阈值,需回溯采集链路是否存在系统性问题。
4.3 数据清洗规则与示例
以下为三类数据源常见的脏数据模式及清洗规则:
| 数据源 | 脏数据模式 | 清洗规则 |
|---|---|---|
| 回放数据 | 录屏文件损坏、事件时间戳跳跃 > 30s | 标记为无效会话,不参与分析 |
| 评审记录 | 评分超出量程(如 1–5 分制出现 6 分) | 截断至边界值,并记录异常标记 |
| 用户反馈 | 纯表情、无意义重复文本、非目标语言 | 正则匹配过滤,保留有效文本 |
# 示例:回放数据时间戳清洗(Python 伪代码)
import pandas as pd
df = pd.read_csv('replay_logs.csv')
# 统一时间戳格式
df['timestamp'] = pd.to_datetime(df['timestamp'], utc=True)
# 过滤跳跃超过 30 秒的会话
df = df[df.groupby('session_id')['timestamp'].diff().abs() <= pd.Timedelta(seconds=30)]
4.4 数据采集与预处理架构
下图展示了从原始数据采集到清洗后宽表的完整链路:
4.5 数据质量校验清单
预处理完成后,建议按以下清单逐项校验:
- 完整性:三类数据源是否均覆盖所有目标评审会话?
- 一致性:跨源数据的时间戳、用户 ID、版本号是否可精确匹配?
- 准确性:评分字段是否在预期量程内?文本字段是否无乱码?
- 时效性:数据采集延迟是否在 SLA 范围内(如回放数据 < 5 分钟)?
常见陷阱:回放数据与评审记录的时间戳若来自不同时区,直接拼接会导致会话错位。务必在预处理阶段统一转换为 UTC 时间。