回归问题中的损失函数(Loss Function) [复制链接]

管理员组

回归问题中的损失函数(Loss Function)

损失函数是回归模型训练的核心,它量化预测值与真实值的差距,指导模型优化方向。


🎯 核心作用

  1. 评估模型性能:衡量预测好坏的"标尺"

  2. 指导参数更新:通过梯度下降最小化损失

  3. 决定收敛标准:判断训练何时停止


📊 常用损失函数详解

1️⃣ 均方误差 (MSE) / L2 Loss

$L = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2$

特点

说明

✅ 优点

数学性质好、可导、计算高效

⚠️ 缺点

对异常值敏感(平方放大误差)

📌 适用场景

数据质量高、无明显异常值


2️⃣ 平均绝对误差 (MAE) / L1 Loss

$L = \frac{1}{n}\sum_{i=1}^{n}|y_i - \hat{y}_i|$

特点

说明

✅ 优点

对异常值鲁棒、解释性强

⚠️ 缺点

在零点不可导、收敛较慢

📌 适用场景

数据含噪声或异常值


3️⃣ Huber Loss (MSE + MAE 的结合)

$L = \begin{cases} \frac{1}{2}(y - \hat{y})^2 & \text{if } |y - \hat{y}| \leq \delta \\ \delta \cdot (|y - \hat{y}| - \frac{1}{2}\delta) & \text{otherwise} \end{cases}$

特点

说明

✅ 优点

兼顾精度与鲁棒性

⚠️ 缺点

需调参 δ(阈值)

📌 适用场景

数据有少量异常值时


4️⃣ 对数-余弦损失 (Log-Cosh Loss)

$L = \sum_{i=1}^{n}\log(\cosh(y_i - \hat{y}_i))$

特点

说明

✅ 优点

平滑、对异常值不敏感

⚠️ 缺点

计算稍复杂

📌 适用场景

需要平滑梯度的场景


5️⃣ 分位数损失 (Quantile Loss)

$L_\tau = \sum_{i: y_i \geq \hat{y}_i} \tau|y_i - \hat{y}_i| + \sum_{i: y_i < \hat{y}_i} (1-\tau)|y_i - \hat{y}_i|$

特点

说明

✅ 优点

可预测条件分位数(如中位数、90%分位)

⚠️ 缺点

需指定分位点 τ

📌 适用场景

风险预测、不确定性建模


🔍 选择指南

数据特征                    → 推荐损失函数
─────────────────────────────────────────
高质量、无异常值            → MSE
含噪声、有异常值            → MAE 或 Huber
需要预测区间/风险边界       → Quantile Loss
需要平滑梯度                → Log-Cosh
分类任务(二分类)          → 交叉熵

🧪 对比示例

假设真实值 y=10,不同预测下的损失:

预测值

MSE 损失

MAE 损失

Huber(δ=1) 损失

9

1

1

0.5

10

0

0

0

12

4

2

1.5

20

100

10

5.5

→ 可以看到 MSE 对大误差(20)惩罚最重!


💡 实践建议

  1. 默认先用 MSE:大多数情况下表现良好

  2. 检查残差分布:若有长尾/异常值,换 MAE 或 Huber

  3. 业务导向

    • 房价预测:MSE(大误差代价高)

    • 销量预测:MAE(更关注平均偏差)

    • 风险预测:Quantile Loss(关注尾部风险)

最新回复

请先登录后再回复 登录

uid:1 管理员组
关注
发帖 8
评论 0
粉丝 0
关注 0
发新帖
目录
回归问题中的损失函数(Loss Function)