了解机器学习回归的3种最常见的损失函数
机器学习中的损失函数是衡量你的ML模型的预测结果准确性的一个指标。
损失函数将以两项作为输入:模型的输出值和标准答案的期望值。损失函数的输出称为损失,它是衡量我们的模型在预测结果方面做得有多好。
损失的高值意味着我们的模型性能很差。较低的损耗值意味着我们的模型表现非常好。
选择适当的损失函数对于训练精确模型至关重要。某些损失函数将具有某些特定的属性,并帮助您的模型以特定方式学习。有些人可能会更多地关注异常值,其他人则更多。
在本文中,我们将介绍机器学习回归的3种最常见的损失函数。我将解释它们的工作原理、它们的优点和缺点,以及在训练回归模型时如何最有效地应用它们。
均方误差(MSE)
均方误差(MSE)可能是最简单和最常见的损失函数,通常在入门机器学习课程中讲授。要计算MSE,您可以获取模型预测与标准答案之间的差异,对其求平方,并在整个数据集中对其进行平均。
MSE永远不会是负面的,因为我们总是把误差进行平方。 MSE由以下等式正式定义:
其中N是我们测试的样本数。代码很简单,我们可以用简单的numpy来编写它,并使用matplotlib绘制它:
MSE损失函数
优点:MSE非常适合确保我们训练有素的模型没有具有巨大错误的离群值预测,因为MSE会因为函数的平方部分而对这些错误施加更大的权重。
缺点:如果我们的模型做出一个非常糟糕的预测,函数的平方部分会放大误差。然而在许多实际情况中,我们并不关心这些异常值,而是针对更多全面的模型,这些模型在大多数情况下都表现得足够好。
平均绝对误差(MAE)
平均绝对误差(MAE)在定义上与MSE略有不同,但有趣地提供了几乎完全相反的属性!要计算MAE,您可以获取模型预测与基础事实之间的差异,将绝对值应用于该差异,然后在整个数据集中对其进行平均。
与MSE一样,MAE永远不会消极,因为在这种情况下,我们总是采用误差的绝对值。 MAE由以下等式正式定义:
再一次,我们的代码在Python中非常简单!我们可以用简单的numpy编写它并使用matplotlib绘制它。这次我们将在MSE顶部用红色绘制它,看看它们之间的比较。
MAE(红色)和MSE(蓝色)损失函数
优势:MAE的优点在于其优势直接涵盖了MSE的劣势。由于我们采用绝对值,所有误差将将在相同的线性尺度上加权。因此,与MSE不同,我们不会过分强调我们的异常值,我们的损失函数提供了一个通用的,甚至是衡量我们模型执行情况的方法。
缺点:如果我们确实关心模型的异常预测,那么MAE将不会那么有效。来自异常值的大误差最终将与较低误差的权重完全相同。这可能会导致我们的模型在大多数情况下变得很好,但偶尔也会做一些非常糟糕的预测。
Huber损失
现在我们知道MSE非常适合学习异常值,而MAE非常适合忽略它们。但是中间的呢?
考虑一个示例,其中我们有一个包含100个值的数据集,我们希望我们的模型能够被训练来预测。在所有数据中,25%的预期值为5,而其他75%的期望值为10。
MSE的损失并不能解决问题,因为我们并没有真正的“异常值”; 25%绝不是一个小比例。另一方面,我们不一定要用MAE将25%的权重定得太低。那些5的值不接近中位数(10 - 因为75%的点的值为10),但它们也不是真正的异常值。
我们的解决方案?
Huber损失函数。
通过平衡MSE和MAE,Huber 损失提供了两全其美的优势。我们可以使用以下分段函数来定义它:
这个等式基本上说的是:对于小于delta的损失值,使用MSE;如果损失值大于delta,请使用MAE。这有效地结合了两个损失函数的两个方面的优点!
使用MAE获得更大的损失值可以减轻我们对异常值上增加的权重,这样我们仍然可以得到一个全面的模型。同时,我们利用最小二乘熵对较小的损耗值保持二次函数在中心附近。
只要损失值大于1,就会产生放大损耗值的效果。一旦这些数据点的损失低于1,则二次函数就会对对它们进行加权,以将训练集中在较高误差的数据点上。
查看下面的Huber 损失函数代码。我们还绘制了MSE和MAE旁边的Huber Loss,以比较差异。
MAE(红色),MSE(蓝色)和Huber(绿色)损失函数
请注意我们如何能够在MSE和MAE之间获得Huber损失。
两全其美!
当你觉得你需要在给予异常值一些权重之间取得平衡时,你会想要使用Huber损失,但不要太多。对于异常值对您非常重要的情况,请使用MSE!对于您根本不关心异常值的情况,请使用MAE!
https://www.toutiao.com/a6693370773899313677/
了解机器学习回归的3种最常见的损失函数相关推荐
- 机器学习中常见的损失函数_机器学习中最常见的损失函数
机器学习中常见的损失函数 现实世界中的DS (DS IN THE REAL WORLD) In mathematical optimization and decision theory, a los ...
- 【干货】机器学习中的五种回归模型及其优缺点
http://blog.itpub.net/31542119/viewspace-2199810/ 线性和逻辑斯蒂(Logistic)回归通常是是机器学习学习者的入门算法,因为它们易于使用和可解释性. ...
- 机器学习入门之7种经典回归模型
介绍 线性和逻辑回归通常是学习数据科学时接触的第一个算法,由于它们非常流行,许多分析师甚至认为它们是唯一的回归技术. 事实上,存在多种不同形式的回归模型,每种形式都有自身的特点和特定的应用场景.在本文 ...
- python的分类算法有哪些_Python8种最常见火爆的机器学习算法
原标题:Python8种最常见火爆的机器学习算法 毋庸置疑,近来机器学习人气日益高涨,逐渐在流行词榜单上占据一席之地.机器学习算法繁多,到底该选择哪一种处理相关数据是困扰很多学习者的问题.本文将以一种 ...
- 机器学习-常见的损失函数比较
在机器学习每一个算法中都会有一个目标函数,算法的求解过程是通过对这个目标函数优化的过程.在分类或者回归问题中,通常使用损失函数(代价函数)作为其目标函数.损失函数用来评价模型的预测值和真实值不一样的程 ...
- 机器学习之常见的损失函数(loss function)
解决一个机器学习问题主要有两部分:数据和算法.而算法又有三个部分组成:假设函数.损失函数.算法优化.我们一般在看算法书或者视频教学时,更多的是去推算或者说参数估计出其假设函数,而往往不太注重损失函数, ...
- 机器学习回归模型精度_机器学习模型实施精度召回和概率截止。
机器学习回归模型精度 Congratulations on completing your Machine Learning (ML) pipeline! In the second part of ...
- 大数据 机器学习 分类算法_13种用于数据科学的机器学习分类算法及其代码
大数据 机器学习 分类算法 The roundup of most common classification algorithms along with their python and r cod ...
- 机器学习/深度学习几种典型学习范式|主动学习
机器学习/深度学习几种典型学习范式|主动学习 主动学习(Active Learning,AL): Introduction 主动学习的例子 应用场景 成员查询合成 流式选择抽样 基于池的主动学习 查询 ...
最新文章
- 深入Android 【一】 —— 序及开篇
- MySQL模拟:线上误update的恢复
- [YTU]_2476(E3 继承了,成员函数却不可访问)
- using可以用于释放操作,相当于Dispose()
- CentOS7启用SELinux和Firewall修改ssh端口号
- FCKeditor在ASP.NET环境中配置使用
- java编程思想视频教程 零基础如何学Java
- 几种常用的电机控制法
- [研究笔记] Travis CI 使用介绍
- masm汇编器以及汇编流程
- python爬取下厨房本周受欢迎菜谱
- 一文了解公有云、私有云、混合云、边缘云、专有云、分布式云
- 七夕快到了,用python给女朋友画张素描吧
- 创业之前你需要了解的九个真相
- ffmpeg硬件解码器的使用
- 物联网发展真正的瓶颈是什么?
- python爬虫破解百度文库_用Python爬取百度文库0下载券的免费文档详细步骤,附可执行软件...
- 忙里偷闲 - 应该较真吗
- python指纹识别_python安全编程之指纹识别
- 算法竞赛入门经典的java实现之QWERTYU-Demo23.java