回归任务与分类任务的区别
回归任务(Regression)与分类任务(Classification)是机器学习的两大核心任务类型,其根本区别在于输出变量的性质和任务目标。以下是系统性对比:
1. 本质区别:输出变量类型
任务类型 | 输出(Target) | 数学表达 | 示例 |
---|---|---|---|
回归任务 | 连续值(Continuous) | 实数域 | 房价(如325.7万元)、温度(36.5℃) |
分类任务 | 离散值(Discrete) | 有限类别集合 | 图像类别(猫/狗)、邮件类型(垃圾/正常) |
2. 模型输出形式对比
任务类型 | 输出层设计 | 激活函数 | 输出含义 |
---|---|---|---|
回归任务 | 单神经元 | 无 或 Linear | 直接预测连续值 |
分类任务 | - 二分类:1个神经元 - 多分类:K个神经元 | Sigmoid (二分类) Softmax (多分类) | 预测概率分布(各类别概率) |
📌 关键区别:
分类任务输出概率(如 [0.1,0.9] 表示90%概率为“狗”),回归任务输出具体数值(如 25.325.3 表示温度值)。
3. 损失函数(Loss Function)
任务类型 | 常用损失函数 | 数学形式 | 优化目标 |
---|---|---|---|
回归任务 | 均方误差(MSE) | 最小化预测值与真实值的平方距离 | |
平均绝对误差(MAE) | 最小化绝对误差 | ||
分类任务 | 交叉熵(Cross-Entropy) | 最小化预测分布与真实分布的差异 |
为什么不同?
-
回归:需量化预测值与真实值的数值差距(物理意义明确)。
-
分类:需衡量概率分布的相似性(交叉熵源于信息论)。
4. 评估指标(Evaluation Metrics)
任务类型 | 常用评估指标 | 解释 |
---|---|---|
回归任务 | MSE / RMSE | 均方误差 / 均方根误差(越小越好) |
MAE | 平均绝对误差(鲁棒性强) | |
R² (决定系数) | 模型解释方差的比例(0~1,越大越好) | |
分类任务 | 准确率(Accuracy) | 正确预测样本比例 |
精确率(Precision) | 正例预测中真实正例的比例 | |
召回率(Recall) | 真实正例中被预测正确的比例 | |
F1-Score | 精确率和召回率的调和平均 | |
AUC-ROC | 模型区分正负样本的能力(0.5~1) |
💡 注意:分类任务中若类别不平衡(如99%负例),准确率会失效(全预测负例即99%准确),需用F1或AUC。
5. 典型算法对比
任务类型 | 经典算法 |
---|---|
回归任务 | 线性回归、决策树回归、随机森林回归、梯度提升树(GBRT)、支持向量回归(SVR) |
分类任务 | 逻辑回归、决策树分类、随机森林分类、支持向量机(SVM)、朴素贝叶斯 |
神经网络架构差异:
-
回归任务:输出层为线性神经元(如
nn.Linear(hidden_size, 1)
) -
分类任务:输出层为 Softmax/Sigmoid + 交叉熵损失(如
nn.CrossEntropyLoss()
)
6. 决策边界可视化
任务类型 | 决策边界特点 | |
---|---|---|
回归任务 | 拟合连续曲线/曲面 | |
分类任务 | 划分离散区域的边界(线性/非线性) |
7. 特殊案例:二者相互转化
(1) 回归 → 分类(离散化)
-
场景:预测年龄(回归)→ 判断年龄段(分类)
例:
<18岁
→ 类别0,18-35岁
→ 类别1,>35岁
→ 类别2
(2) 分类 → 回归(概率输出)
-
场景:疾病诊断(分类)→ 输出患病概率(连续值,可视为回归)
例:逻辑回归输出概率 𝑃(癌症)=0.73
⚠️ 注意:转化需谨慎,可能损失信息或引入偏差!
总结:核心差异全景图
一句话记忆
回归预测“多少”,分类判断“是否”
—— 连续值是回归的战场,离散类别是分类的舞台!