学习目标
学习本课后,你将能够:
- 解释什么是监督学习,以及为什么训练样本需要已知答案。
- 区分输入特征 X、目标变量 y 和类别标签。
- 区分回归任务与分类任务。
- 描述从训练数据集到已训练模型预测的过程。
- 解释训练集、验证集和测试集的作用。
- 识别标签、数据质量以及模型迁移到新样本时的局限。
1. 什么是“监督学习”
监督学习(Supervised Learning)是一种机器学习范式:每个训练样本都包含输入特征和已知的目标答案。这些样本称为带标签样本(labeled examples),答案称为标签(labels)或目标(targets)。
设想一份建筑运行日志。每天记录室外温度、建筑面积、运行计划、人员数量以及实际能耗。模型接收这些特征,并学习预测能耗。历史答案是模型学习规律的样本,并不是未来每一天都能获得的提示。
这里的“教师”不一定是逐步讲解过程的人。它指的是可以与模型预测进行比较的已知答案。答案可能来自测量、专家标注、文档或事件记录。
2. 特征、目标与标签
对一个样本,用 X 表示输入特征向量,用 y 表示已知答案。监督学习数据集包含许多 (X, y) 样本对。特征描述对象,目标描述我们希望预测的内容。
| 任务 | 输入特征 X | 目标 y | 答案类型 |
|---|---|---|---|
| 能耗预测 | 温度、面积、运行计划、人员数量 | 每日能耗 | 数值 |
| 异常运行识别 | 振动、部件温度、压力 | 故障 / 正常 | 类别 |
| 服务请求分类 | 请求文本、设备类别 | 请求类型 | 类别 |
标签质量非常重要。如果答案错误、不一致或反映标注者的主观判断,模型可能学会重复这些错误。对于罕见事件尤其要检查标签的来源,以及样本是否覆盖了模型实际会遇到的情况。
3. 两种核心任务:回归与分类
回归(Regression)
回归用于预测数值,例如能耗、温度、持续时间、价格或负荷。输出位于数值尺度上,误差通常可以表示为预测值与实际值之间的差。
分类(Classification)
分类用于将样本分配到预先定义的类别,例如“正常”或“故障”、“A 类”或“B 类”、“垃圾邮件”或“非垃圾邮件”。模型可以估计各类别的概率,再通过决策规则得到最终标签。
4. 模型如何训练
- 定义任务。 明确预测对象、决策时点和目标变量。
- 准备数据。 检查特征、标签、缺失值、单位以及字段可用时间。
- 选择模型家族。 例如线性模型、决策树、集成模型或神经网络。
- 拟合模型。 学习算法调整参数,以减少训练样本上的误差。
- 评估。 在未用于拟合参数的数据上衡量表现。
- 预测。 将新样本的特征输入已训练模型。
训练时,模型产生预测 ŷ。损失函数(loss function)衡量预测与已知答案 y 的差异。优化算法利用损失值更新模型参数。具体更新方式取决于模型家族和学习方法。
θ 表示模型参数。参数在训练过程中学习得到;超参数则在训练之前或训练流程外围设定。我们将在后续课程中进一步学习。
5. 为什么要划分数据
如果在模型拟合参数时使用过的样本上评估模型,结果可能过于乐观。常见做法是划分为三部分:
- Train(训练集) — 用于拟合模型参数。
- Validation(验证集) — 用于比较模型方案和调整超参数。
- Test(测试集) — 在方案选定后进行最终独立评估。
划分方式必须符合任务。独立且分布相似的观测可以随机划分。时间预测不能用未来训练、用过去测试。如果同一实体有多条记录,应采用分组划分,避免近似重复记录同时出现在训练集和测试集中。
6. 案例:预测建筑能耗
假设我们需要预测明天的能耗。特征可以包括天气预报、日历日期、计划运行模式,以及预测期开始前已知的人员负荷信息。目标是第二天实际消耗的能源。
先建立一个简单的 baseline(基线),例如使用上一个可比日的能耗或训练集平均值。然后训练模型,并在同一个测试时间段与基线比较。如果复杂模型没有带来改进,就暂时没有理由承担额外复杂度。
无代码练习
选择每日能耗预测或设备故障分类。写出观测单位、三个特征、目标变量以及必须做出预测的时间点。逐一判断每个特征在该时点是否可用。
7. 局限与常见错误
- 标签质量差。 模型得到错误或相互矛盾的答案。
- 样本偏差。 训练样本不能代表真实部署环境。
- 数据泄漏。 特征包含预测时不可获得的信息,或测试数据影响了训练。
- 过拟合。 模型过度适应训练样本,在新样本上表现变差。
- 指标选择不当。 评分指标没有反映错误的真实代价。
当存在足够可靠的带标签样本,且目标定义清楚时,监督学习非常有用。但数据量大并不自动保证质量:数据来源、代表性、独立评估和真实应用场景都很重要。