监督学习
从带标签样本中学习输入到目标的映射。
前置知识
通俗直觉
现实任务中常能得到输入与答案的配对记录:邮件及其类别、房屋特征及成交价、图像及标注对象。监督学习用这些样本约束模型,而不是让模型自己决定什么算正确。
“监督”来自标签提供的训练信号,不要求训练时有人逐条旁观。标签可能由人工、测量设备或后续业务结果产生;来源不同,噪声、延迟和可用性也不同。
监督学习从带标签样本学习输入到目标的映射。分类目标通常是离散类别,回归目标通常是连续数值;标签的含义和采集规则本身属于任务定义。
目标不是把训练答案背下来,而是在输入范围和数据条件明确的情况下,对新样本产生可评价的预测。
像用带答案的练习题学习解题规则,但模型能利用的只是特征和标签之间的统计结构。如果训练题中藏有答案编号,模型可能学到的是编号捷径,而不是希望它掌握的规律。
四个带标签样本怎样支持一个新预测
把输入 0、1 标为类别 0,输入 2、3 标为类别 1。逻辑回归拟合后可对 2.5 给出类别 1 的预测;它使用的是输入位置与已知标签之间的关系。
这不是“四个样本足以证明分类器可靠”。2.5 的预测只是演示 fit 与 predict 的区别;要评价新用户或其他输入范围,仍需要没有参与拟合的带标签数据。
核心原理
先定义预测时点与标签。例如“是否会违约”必须说明未来多长时间内发生何种事件,不能把不同时间窗口的记录混成同一类。
训练损失把预测与标签的差异变成优化信号。损失的选择影响模型关注哪些错误,但训练损失与最终业务代价未必相同,需要在独立验证上检查。
划分、预处理与模型共同构成训练过程。标签不应进入预测特征,填补和标准化参数也不应由测试数据学习;否则监督信号会沿不合理路径泄漏。
标签质量限制可学习结论。少数群体漏标、历史决策偏差或标注口径变化,都可能被模型重复。遇到错误时,需要区分标签问题、输入信息不足与模型本身的限制。
数学公式
寻找使平均训练损失最小的模型参数 θ。
工作流程
- 准备带标签数据
- 拆分训练与验证集
- 训练模型降低损失
- 在未见数据上评估
代码示例
Python
example.pyfrom sklearn.linear_model import LogisticRegression
X = [[0], [1], [2], [3]]
y = [0, 0, 1, 1]
model = LogisticRegression().fit(X, y)
print(model.predict([[2.5]]))- fit 使用带标签样本学习
- predict 对新输入进行分类
逻辑回归从四个带标签样本中学习分类边界,并判断新样本 2.5 更接近哪一类。
本机核对输出
example.py[1]应用场景
- 垃圾邮件识别
- 图像分类
- 销量预测
常见误区
- 训练集准确不代表泛化好
- 标签质量会限制模型上限