回归任务损失函数对比曲线

回归任务损失函数曲线可视化对比

本节将可视化对比均方误差(MSE)、平均绝对误差(MAE)、Huber损失函数三种常见回归任务损失函数的曲线,帮助理解它们在不同误差区间的表现差异。

1. 导入所需库

我们需要用到 numpy 进行数值计算,matplotlib 进行绘图。

python 复制代码
import numpy as np
import matplotlib.pyplot as plt

2. 定义损失函数(MSE、MAE、Huber)

分别实现均方误差(MSE)、平均绝对误差(MAE)和Huber损失的Python函数。

python 复制代码
def mse_loss(x):
    """均方误差"""
    return x ** 2

def mae_loss(x):
    """平均绝对误差"""
    return np.abs(x)

def huber_loss(x, delta=1.0): #delta阈值,控制损失函数从二次到线性切换的位置,常用1.0
    """Huber损失"""
    return np.where(np.abs(x) <= delta,
                    0.5 * x ** 2,
                    delta * (np.abs(x) - 0.5 * delta))

3. 生成误差数据

生成一组对称分布的误差(如-5到5),用于损失函数的输入。

python 复制代码
# 生成误差区间
errors = np.linspace(-5, 5, 200)

4. 计算各损失函数的取值

对每个误差值,分别计算MSE、MAE和Huber损失的结果。

python 复制代码
mse_values = mse_loss(errors)
mae_values = mae_loss(errors)
huber_values = huber_loss(errors, delta=1.0) #delta设置为1.0是为了与其他损失函数对比

5. 绘制损失函数对比曲线

使用matplotlib将三种损失函数的曲线绘制在同一张图上,便于直观对比。

python 复制代码
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei', 'Arial Unicode MS', 'Microsoft YaHei', 'PingFang SC']  # 支持中文
plt.rcParams['axes.unicode_minus'] = False  # 正常显示负号
python 复制代码
plt.figure(figsize=(8, 5))
plt.plot(errors, mse_values, label='MSE (L2)', color='blue')
plt.plot(errors, mae_values, label='MAE (L1)', color='green')
plt.plot(errors, huber_values, label='Huber (δ=1.0)', color='red')
plt.xlabel('误差 (error)')
plt.ylabel('损失值 (loss)')
plt.title('MSE、MAE、Huber损失函数曲线对比')
plt.legend()
plt.grid(True)
plt.show()

总结

  • MSE 对大误差更敏感,曲线在远离0时增长更快。
  • MAE 对所有误差线性增长,对异常值不敏感,但在0点不可导。
  • Huber损失 在误差较小时与MSE一致,误差较大时与MAE一致,兼具二者优点,常用于鲁棒回归任务。
相关推荐
易连EDI—EasyLink2 分钟前
易连EDI–EasyLink实现OCR智能数据采集
网络·人工智能·安全·汽车·ocr·edi
冬奇Lab14 分钟前
RAG 系列(二):用 LangChain 搭建你的第一个 RAG Pipeline
人工智能·langchain·llm
学习论之费曼学习法28 分钟前
多模态大模型实战:用 GPT-4o API 打造 AI 助手,能看、能听、能说!
人工智能
昨夜见军贴061637 分钟前
IACheck与AI报告审核,开启供应商资质核验报告审核新篇章
人工智能
Beginner x_u1 小时前
链表专题:JS 实现原理与高频算法题总结
javascript·算法·链表
m0_726365831 小时前
Ai漫剧系统 几分钟,让AI 把一篇小说变成了一部漫剧成片:从剧本到视频的全流程系统实现
人工智能·语言模型·ai作画·音视频
AIwenIPgeolocation1 小时前
出海应用合规与风控平衡术:可信ID的全球安全实践
人工智能·安全
WordPress学习笔记1 小时前
镌刻中式美学的高端WordPress主题
大数据·人工智能·wordpress
AI技术增长1 小时前
Pytorch图像去噪实战(六):CBDNet真实噪声去噪实战,解决合成噪声模型落地效果差的问题
pytorch·深度学习·机器学习
直奔標竿1 小时前
Java开发者AI转型第二十七课!Spring AI 个人知识库实战(六)——全栈闭环收官,解锁前端流式渲染终极技巧
java·开发语言·前端·人工智能·后端·spring