1. 数据格式与字段类型分析
必要性
- 避免技术错误:错误的数据类型(如字符串误作数值)会导致模型训练失败或结果偏差。
- 特征工程基础:字段类型决定特征处理方式(如分类变量需编码,数值变量需归一化)。
- 数据关联性:明确字段间关系(如用户ID与物品ID的外键约束)保证数据一致性。
分析方法
-
结构化检查:
- 使用
df.info()(Pandas)或数据库Schema查看字段类型(int, float, string, timestamp等)。 - 检查缺失值占比(如
df.isnull().sum())。
- 使用
-
字段语义验证:
- 例如:
user_age字段应为正整数,若出现负数或文本需清洗。
- 例如:
-
关系验证:
- 确保用户-物品交互表中的ID均存在于用户/物品元数据表中(避免“悬挂引用”)。
2. 数据规模评估
必要性
-
资源规划:数据量级(GB/TB?)决定计算资源(内存、GPU)和存储方案(HDFS?数据库?)。
-
算法选型:
- 小规模数据适合复杂模型(如深度学习),大规模数据需分布式算法(如Spark ALS)。
-
冷启动问题预判:用户/物品数量少时需设计冷启动策略(如基于内容的推荐)。
分析方法
-
基础统计:
- 行数(用户数、物品数、交互记录数)、存储大小(
df.shape,df.memory_usage())。
- 行数(用户数、物品数、交互记录数)、存储大小(
-
稀疏性计算:
- 交互矩阵稀疏度 =
非零值数 / (用户数 × 物品数)。若低于1e-5,需考虑矩阵补全技术。
- 交互矩阵稀疏度 =
-
时间跨度:
- 记录时间范围(如“2020-2023年”),判断是否需要时间序列分割(训练/测试集划分)。
3. 数据分布分析
必要性
- 偏差检测:分布不均(如90%用户来自某一地区)会导致模型偏见。
- 特征归一化需求:数值特征(如用户活跃度)的尺度差异大时需标准化。
- 长尾问题识别:物品曝光/点击的长尾分布影响多样性策略。
分析方法
-
统计描述:
- 均值、分位数(
df.describe())、偏度(Skewness)和峰度(Kurtosis)。
- 均值、分位数(
-
可视化工具:
- 直方图:查看数值分布(如用户年龄是否呈正态分布)。
- 箱线图:识别异常值(如用户每日点击量超过1万次)。
- 长尾分析:绘制物品曝光量的Log-Log图,验证是否符合幂律分布。
-
交叉分析:
- 例如:高消费用户是否集中在特定年龄段(群体偏差)。
4. 验证猜想(Hypothesis Testing)
必要性
- 避免主观臆断:数据驱动的猜想验证(如“用户夜间更喜欢短视频”)可减少策略失误。
- 支持AB测试设计:初步验证猜想后再投入线上实验,降低成本。
分析方法
-
统计检验:
- T检验/ANOVA:比较两组用户的平均点击时长是否有显著差异。
- 卡方检验:验证分类变量关联性(如性别与物品类别的偏好关系)。
-
相关性分析:
- 计算Pearson/Spearman相关系数(如用户活跃度与留存率的关系)。
-
分组实验:
- 例如:将用户按兴趣标签分组,对比每组对某类物品的CTR差异。
5. 获取关键值(Key Metrics)
必要性
- 量化评估:关键值是模型优化的目标(如提升CTR或多样性)。
- 业务对齐:明确核心指标(如电商关注GMV,内容平台关注停留时长)。
分析方法
-
基础指标:
- 用户维度:DAU/MAU、平均停留时长、留存率。
- 物品维度:曝光量、点击率(CTR)、转化率。
-
推荐系统特有指标:
- 准确性:Precision@K、Recall@K、NDCG@K。
- 多样性:推荐结果中品类/标签的熵值(Entropy)。
- 新颖性:冷启动物品占比。
-
监控看板:
- 通过Dashboards(如Tableau、Grafana)实时跟踪关键值波动。