回归损失函数

目录

1 MAE

2 MSE

3 MAPE

4 Quantile Loss分位数损失


        回归损失函数也可以做为评价指标使用,但是有没有想过数据分布与损失函数之间的关系呢!

        使用特定损失函数的前提是我们对标签的分布进行了某种假设,在这种假设的前提下通过极大似然法推出所有样本构成的极大似然公式,然后再使用凸优化的方法比如常见的梯度下降法进行求解

我曾经遇到两个问题,类似正太分布与非正太分布损失函数。

     比如下面: 0的值异常多。可以采用非正太损失函数,使用tweedie loss、possion loss等损失函数替代mse。这些lgb、xgb都可调参数。

1 MAE

       平均绝对误差(L1 loss):Mean Absolute Error, MAE。指预测值 和真实值 之间距离的平均值,其公式如下:

         

        MAE是目标值和预测值之差的绝对值之和,可以用来衡量预测值和真实值的距离。但是它不能给出,模型的预测值是比真实值小还是大。        

综合来看,MAE适合对异常值敏感的数据集,或者在对模型的预测误差大小更为关注的情况下使用。但在优化过程和梯度信息方面存在一些不足,需要根据具体情况选择合适的损失函数。

2 MSE

 均方根误差(L2 loss)Mean Square Error,MSE是模型预测值 与真实样本之间差值的平方,其公式如下:

  1. 直观性好: MAE直接衡量了预测值与真实值之间的平均绝对差异,易于理解和解释。
  2. 不受量纲影响: 由于是绝对值求和,MAE不受量纲的影响,因此可以直接比较不同尺度下的模型性能。
  3. 不可微性: MAE在零点处不可微,这使得优化过程变得困难。梯度下降等需要可微的优化算法无法直接应用于MAE。
  4. 梯度信息不明显: 由于MAE的梯度在大部分区域都是常数,因此相对于MSE(均方误差)等损失函数,梯度信息不够明显,可能导致训练过程收敛速度较慢。
  5. 对离群值的处理不足: 尽管MAE对离群值不敏感,但它也没有专门考虑到离群值的影响,可能导致对离群值的处理不足。

        MSE函数曲线光滑、连续,处处可导,随着误差的减小,梯度也在减小,有利于收敛,当真实值和预测值的差值大于1时会放大误差,即给予较大的惩罚,而当差值小于1时会缩小误差,即给予较小的惩罚,对离群点比较敏感,受其影响较大。

       MSE计算简便,但MAE对异常点有更好的鲁棒性:当数据中存在异常点时,用MSE/RMSE计算损失的模型会以牺牲了其他样本的误差为代价,朝着减小异常点误差的方向更新。然而这就会降低模型的整体性能。

3 MAPE

缺点:

综上所述,MAPE 损失函数具有直观性和对异常值的鲁棒性等优点,但也存在一些缺点,如对离散值敏感和不可导性等问题。在选择损失函数时,需要根据具体问题的特点和需求来进行权衡和选择。

  1. 分母为0的问题: 当实际值 ( A_t ) 为0时,MAPE 的分母为0,可能导致无法计算或者出现无穷大的情况。
  2. 对离散值敏感: MAPE 对于实际值接近或等于0的情况下,可能会导致误差放大,不太适用于这种情况。
  3. 不可导性: MAPE 是一个非光滑的损失函数,不易于在优化算法中使用,特别是对于梯度下降等基于梯度的优化方法。
  4. 分母为0的问题: 当实际值 ( A_t ) 为0时,MAPE 的分母为0,可能导致无法计算或者出现无穷大的情况。
  5. 对离散值敏感: MAPE 对于实际值接近或等于0的情况下,可能会导致误差放大,不太适用于这种情况。
  6. 不可导性: MAPE 是一个非光滑的损失函数,不易于在优化算法中使用,特别是对于梯度下降等基于梯度的优化方法。

不可倒部分:

4 Quantile Loss分位数损失

分位数值的选择基于在实际中需要误差如何发挥作用 即在过程中误差为正时发挥更多作用还是在误差为负时发挥更大作用。

当我们需要对区间预测而不单是点预测时 分位数损失函数可以发挥很大作用。

ref:https://blog.csdn.net/Next_SummerAgain/article/details/135371892

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/625293.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Eclipse中 Maven安装与配置步骤,2024年最新面试总结

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7 深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞…

vscode如何方便地添加todo和管理todo

如果想在vscode中更加方便的添加和管理TODO标签,比如添加高亮提醒和查看哪里有TODO标签等,就可以通过安装插件快速实现。 安装插件 VSCode关于TODO使用人数最多的插件是TODO Height和Todo Tree 按住 CtrlShiftX按键进入应用扩展商店,输入to…

基于stm32_h5的freertos编程示例

目录 基于stm32_h5的freertos编程示例实验目的添加FreeRTOS配置FreeRTOS测试工程本文中使用的测试工程 基于stm32_h5的freertos编程示例 本文目标:基于stm32_h5的freertos编程示例 按照本文的描述,应该可以在对应的硬件上通实验并举一反三。 先决条件…

十大远程控制软件排名

远程控制软件在现代计算环境中扮演着至关重要的角色,它们使得用户能够轻松地访问和管理远程计算机或设备。随着技术的不断进步,市场上涌现出许多优秀的远程控制工具。以下是对当前市场上十大远程控制软件的简要排名和介绍,以帮助您选择最适合…

上位机图像处理和嵌入式模块部署(树莓派4b实现xmlrpc通信)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面,我们也用纯API实现过上位机和开发板之间的通信。当时使用的方法,就是用windows自带的网络sdk和linux自带的api函数来完…

微软提供用于测试框架的SDK

微软发布了 MSTest SDK。 MSTest SDK基于 MSBuild Project SDK 系统构建并基于MSTest 运行程序,旨在为开发人员提供更好的使用 Microsoft 单元测试框架 MSTest 进行测试的体验。 微软表示, 4 月 11 日发布的MSTest SDK通过合理的默认设置和灵活的选项使…

Git回滚操作,工作区和暂存区恢复修改删除的文件

在利用git协作过程中,经常需要进行代码的撤销操作,这个行为可能发生在工作区,暂存区或者仓库区(或版本库)。 我们先讨论在工作区与暂存区发生的撤销行为,这里会有两个命令提供帮助,git restore…

uni-app学习

目录 一、安装HBuilderX 二、创第一个uni-app 三、项目目录和文件作用 四、全局配置文件(pages.json) 4.1 globalStyle(全局样式) 导航栏:背景颜色、标题颜色、标题文本 导航栏:开启下拉刷新、下拉背…

【GDAL-Python】10-在Python中可视化多波段卫星影像

文章目录 1-介绍1.1 主要内容1.2 线性拉伸介绍 2-代码实现2.1 数据介绍2.2 代码实现2.3 效果显示 4-参考资料 1-介绍 1.1 主要内容 (1)在本教程中,主要介绍如何使用 Python 和 matplotlib 可视化多波段 Landsat 8 卫星影像组成的真彩色影像…

Python也可以合并和拆分PDF,批量高效!

PDF是最方便的文档格式,可以在任何设备原样且无损的打开,但因为PDF不可编辑,所以很难去拆分合并。 知乎上也有人问,如何对PDF进行合并和拆分? 看很多回答推荐了各种PDF编辑器或者网站,确实方法比较多。 …

DRF APIView源码分析

【三】APIView源码分析 【1】Response和JsonResponse的区别 (1)Django REST framework的Response DRF的Response类是专门为构建RESTful API设计的。 它不仅仅是一个简单的JSON响应,而是包含了一系列与RESTful API交互有关的功能。 内容类型…

RK3568 学习笔记 : 更改 u-boot spl 中的 emmc 的启动次序

环境 开发板: 【正点原子】 的 RK3568 开发板 ATK-DLRK3568 u-boot 版本:来自 【正点原子】 的 RK3568 开发板 Linux SDK,单独复制出来一份,手动编译 编译环境:VMware 虚拟机 ubuntu 20.04 问题描述 RK3568 默认 …