跳到主要内容

参考答案

核对日期:2026-05-13。

1. 阶段练习参考方向

1.1 数学练习

向量点积、范数和余弦相似度:

import numpy as np

a = np.array([1, 2, 3])
b = np.array([2, 0, 4])

dot = np.dot(a, b)
norm_a = np.linalg.norm(a)
norm_b = np.linalg.norm(b)
cosine = dot / (norm_a * norm_b)

分类指标:

  • Accuracy:所有样本里预测正确的比例。
  • Precision:预测为正的样本里真正为正的比例。
  • Recall:真实为正的样本里被找出来的比例。

学习率:

  • 过大:loss 震荡、发散,参数跨过最优区域。
  • 过小:收敛很慢,有限训练时间内效果差。

损失函数和业务指标:

  • 损失函数用于训练优化,必须可计算、通常可微。
  • 业务指标用于判断业务收益,例如转化率、召回成本、人工节省。
  • 两者相关但不等价,训练 loss 下降不保证业务目标改善。

1.2 Python / NumPy 练习

列均值和标准差:

import numpy as np

x = np.array([[1, 2, 3], [4, 5, 6]])
col_mean = x.mean(axis=0)
col_std = x.std(axis=0)

余弦相似度函数:

def cosine_similarity(a: np.ndarray, b: np.ndarray) -> float:
denominator = np.linalg.norm(a) * np.linalg.norm(b)
if denominator == 0:
return 0.0
return float(np.dot(a, b) / denominator)

梯度下降模拟的关键检查:

  • 初始化参数。
  • 计算预测和 loss。
  • 手动计算梯度。
  • 按学习率更新参数。
  • 每步记录参数和 loss。

1.3 pandas / SQL 练习

数据概览应至少包含:

  • 字段类型。
  • 缺失率。
  • 唯一值数量。
  • 数值分布。
  • 重复行数量。

SQL 最近 30 天活跃用户示例:

SELECT DISTINCT user_id
FROM events
WHERE event_time >= CURRENT_DATE - INTERVAL '30 days';

注意:真实项目要明确 event_time 的时区、是否包含当天、数据延迟和去重规则。

2. 项目评分样例

高分 notebook 应具备:

  • 从原始数据读取开始,可从头运行。
  • 每个字段有含义、类型、缺失率和异常检查。
  • 可视化服务于问题,不是堆图。
  • 结论区分事实、推断和假设。
  • 记录环境、随机种子、数据版本和运行顺序。

不合格表现:

  • notebook 单元格乱序运行才有结果。
  • 只画图,不解释业务含义。
  • 缺失值直接填均值但没有说明原因。
  • 没有任何数据风险和后续任务设想。

3. 验收题参考答案

  1. 为什么 embedding 可以用向量表示?

Embedding 的目标是把对象映射到连续向量空间,使语义、行为或上下文相似的对象在空间中距离更近。模型通过训练把离散符号转成可计算表示,方便做检索、分类和聚类。

  1. 余弦相似度高是否一定代表事实相关?为什么?

不一定。余弦相似度表示向量方向接近,常代表语义相近,但不证明事实一致、因果相关或答案正确。例如“退款政策 2024”和“退款政策 2025”可能相似,但内容可能相反。

  1. 为什么训练模型需要损失函数?

损失函数把模型预测和目标之间的差异转成可优化数值,训练过程通过最小化损失更新参数。没有损失函数,模型不知道如何调整。

  1. 学习率太大或太小会怎样?

学习率太大容易震荡或发散;太小会收敛慢,训练成本高,也可能在有限步数内停留在较差区域。

  1. 缺失值处理有哪些策略?什么时候不能直接填均值?

策略包括删除、均值/中位数填充、类别填充、模型填充、增加缺失指示列、按业务规则处理。不能直接填均值的场景包括:缺失本身有业务含义、数据非随机缺失、分组差异大、时间序列会引入未来信息。

  1. 什么是采样偏差?它会如何影响 AI 系统?

采样偏差是训练或分析样本不能代表真实目标人群或线上分布。它会导致模型在被低估群体、长尾场景或未来数据上表现差。

  1. 为什么训练集和测试集不能混用?

测试集用于模拟未见数据,评估泛化能力。如果参与训练或调参,指标会虚高,无法代表线上效果。

  1. 相关性和因果性有什么区别?

相关性说明两个变量一起变化,因果性说明一个变量变化会导致另一个变量变化。相关可能来自共同原因、选择偏差或巧合,不能直接用于干预决策。

  1. 为什么 notebook 也需要可复现?

Notebook 经常用于实验和分析决策。如果不可复现,就无法审查数据处理、验证结论、比较模型或排查错误。可复现需要固定数据、顺序、参数、环境和随机种子。

  1. SQL 构造特征时最容易出现哪些时间范围错误?

常见错误包括使用标签时间之后的数据、窗口边界不一致、时区错误、数据延迟未处理、训练和线上特征计算逻辑不一致。这些会造成时间穿越和线上退化。