分类与回归
分类预测离散类别或类别概率,回归预测连续数值。
学习前需要掌握
背景与问题
“预测一个数字”并不必然是回归。邮政编码、商品编号和疾病类别即使用数字表示,仍可能是类别标识;明天温度或预计等待时间才具有可解释的数值差距。
任务类型首先由实际输出含义决定,再影响模型、损失、指标和展示方式。先选算法,再把目标硬改成算法喜欢的形式,会使评价与业务需求脱节。
概念定义
分类预测一个离散类别,模型也可以输出各类别的概率或分数。回归预测连续量,预测误差的大小与单位通常具有意义。
二分类、多分类与多标签也要区分:多分类通常每条样本只选一个类别,多标签允许同一条样本同时具有多个标签。
直观理解
温度预测偏高 1℃ 与偏高 20℃不是同一种错误;把猫识别成狗,则通常不能通过“类别编号相差多少”来衡量错得多远。类别与数值的评价逻辑因此不同。
同一个配送场景的两种问题
问题 A:“这单是否会超过 30 分钟?”是二分类,可以检查召回率与误报代价。问题 B:“还需要多少分钟送达?”是回归,可以按分钟计算 MAE。
预测 29 分钟而实际 31 分钟,回归误差是 2 分钟,但按 30 分钟切分的分类结果已经跨过边界。不能用分类是否正确来代替时间误差,也不能只看小时间误差就忽略关键阈值。
核心原理
分类需要明确类别集合、正类定义和概率列顺序。最终标签还可能依赖阈值,因此同一组概率可以在不同误报/漏报代价下产生不同决策。
回归要检查目标单位、异常值和允许误差。MSE 会放大大误差,MAE 更直接反映平均绝对偏差;没有一个指标适合所有目标。
输出转换会改变问题。把房价按区间分组后是区间分类,丢掉了区间内部的差异;把有序风险等级当成无序类别,也可能忽略相邻等级关系。
两类任务都需要可靠划分与基线。分类准确率高可能只是多数类占比高,回归误差小也可能只是目标本身波动很小,必须与合适的简单方案比较。
数学表达
核心表达
先根据业务输出定义任务,再选择损失与指标。分类关注混淆和概率,回归关注误差大小与单位。
变量含义
变量定义与本页概念定义一致,代码中的同名变量保持相同语义。
计算步骤
- 1明确预测对象
- 2判断标签是否离散
- 3确定错误代价
- 4选择模型与指标
代码对应位置
示例 1分类与回归:最小可验证示例:把正文原理映射为可检查的代码行为。
计算与实现步骤
- 明确预测对象
- 判断标签是否离散
- 确定错误代价
- 选择模型与指标
- 检查输出形状
代码实现
示例 1
分类与回归:最小可验证示例
example_01.py用途:把正文原理映射为可检查的代码行为。
from sklearn.linear_model import LogisticRegression, LinearRegression
classifier = LogisticRegression()
regressor = LinearRegression()代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
把正文原理映射为可检查的代码行为。
Step 1 · 1–3 行
导入当前步骤需要的数值计算、预处理、模型或评价工具。依赖集中写在代码开头,便于复现。
from sklearn.linear_model import LogisticRegression, LinearRegression
classifier = LogisticRegression()
regressor = LinearRegression()预期输出或运行结果
本段只创建估计器对象,未执行 fit / predict,也不打印标准输出。
常见错误 · 2 条
- 把类别编码当连续目标
- 只按模型名字判断任务
实际应用
- 垃圾邮件分类
- 房价回归
常见错误
- 把类别编码当连续目标
- 只按模型名字判断任务
推荐学习资料
Google Machine Learning Crash Course
以短视频、可视化和练习讲解回归、分类、数据、过拟合与神经网络基础。
Google · Google for Developers
资料笔记
UCI Machine Learning Repository
提供分类、回归、聚类等任务常用的公开数据集和字段说明。
UC Irvine · UCI