Keras 如何计算准确率?

2025-04-15 09:21:00
admin
原创
28
摘要:问题描述:如果存在二元分类问题,标签为 0 和 1。我知道预测是一个浮点数,因为 p 是属于该类的概率。以下是交叉熵损失函数。然而,p 不一定是 0 或 1,那么 Keras 如何计算准确率呢?Keras 会自动将我们的预测四舍五入为 0 或 1 吗?例如,在下面的代码中,准确率为 0.749,但目标是 0 ...

问题描述:

如果存在二元分类问题,标签为 0 和 1。我知道预测是一个浮点数,因为 p 是属于该类的概率。

以下是交叉熵损失函数。

在此处输入图片描述

然而,p 不一定是 0 或 1,那么 Keras 如何计算准确率呢?Keras 会自动将我们的预测四舍五入为 0 或 1 吗?

例如,在下面的代码中,准确率为 0.749,但目标是 0 和 1,预测值是浮点数,不一定是 0.0 或 1.0。

>>> scores = model.evaluate(x=test_Features, 
                    y=test_Label)
>>> scores[1]
0.74909090952439739

解决方案 1:

您在这里有点困惑;您谈论的是准确性,同时展示了损失的公式。

您展示的等式确实是二元分类的交叉熵损失公式(或简称为逻辑损失)。

y[i]是标签,实际上要么是 0,要么是 1。

p[i]是预测,通常解释为概率,它们是 [0,1] 中的实数(不进行任何四舍五入)。

现在对于每一个i,总和中只有一个项会保留下来 - 当 时第一项消失y[i] = 0,同样当 时第二项消失y[i] = 1

让我们看一些例子:

假设y[0] = 1,而我们预测的结果是p[0] = 0.99(即相当不错的预测)。和式的第二项消失(因为1 - y[0] = 0),而第一项变为;因此,该样本预测 ( ) 对整体损失log(0.99) = -0.01的贡献为 0.01(由于和式前面的符号)。i=0`-`

现在假设下一个样本的真实标签再次为 1,即y[1] = 1,但这里我们对 做出了一个相当差的预测p[1] = 0.1;同样,第二项消失了,这个预测对整体损失的贡献现在是-log(0.1) = 2.3,这确实大于我们的第一个好的预测,正如我们直观地预料的那样。

作为最后一个例子,假设y[2] = 0,并且我们在这里对做出了完美的预测p[2] = 0;因此,第一项消失,第二项变成

(1 - y[2]) * log(1 - p[2]) = 1 * log(1) = log(1) = 0

也就是说,我们没有造成任何损失,这正如我们直觉所料,因为我们在这里对做出了非常好的预测i=2

逻辑损失公式只是计算各个预测的所有误差,将它们相加,然后除以它们的数量n

尽管如此,这是损失(即scores[0]在您的代码片段中),而不是准确性。

损失和准确率是两码事;粗略地说,准确率才是我们从业务角度真正感兴趣的,而损失则是学习算法(优化器)从数学角度试图最小化的目标函数。更粗略地说,你可以把损失看作是业务目标(准确率)到数学领域的“翻译”,这种翻译在分类问题中是必要的(在回归问题中,损失通常和业务目标相同,或者至少在原理上相同,例如 RMSE)……

Keras 会自动将我们的预测四舍五入为 0 或 1 吗?

确实如此:为了计算准确率,我们在预测概率中隐式地设置了一个阈值model.evaluate(在二分类中通常为 0.5,但在数据高度不平衡的情况下可能会有所不同);因此,在 中,Keras 实际上将我们的预测转换为 1,否则p[i] > 0.5转换为 0。然后,准确率的计算方法是简单地计算(正确预测)的案例数,y_true==y_pred并除以样本总数,得到一个介于 [0,1] 之间的数字。

总结一下:

  • 损失计算不进行四舍五入

  • 有一个隐式阈值操作用于计算准确度

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   2482  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1533  
  PLM(产品生命周期管理)项目对于企业优化产品研发流程、提升产品质量以及增强市场竞争力具有至关重要的意义。然而,在项目推进过程中,范围蔓延是一个常见且棘手的问题,它可能导致项目进度延迟、成本超支以及质量下降等一系列不良后果。因此,有效避免PLM项目范围蔓延成为项目成功的关键因素之一。以下将详细阐述三大管控策略,助力企业...
plm系统   0  
  PLM(产品生命周期管理)项目管理在企业产品研发与管理过程中扮演着至关重要的角色。随着市场竞争的加剧和产品复杂度的提升,PLM项目面临着诸多风险。准确量化风险优先级并采取有效措施应对,是确保项目成功的关键。五维评估矩阵作为一种有效的风险评估工具,能帮助项目管理者全面、系统地评估风险,为决策提供有力支持。五维评估矩阵概述...
免费plm软件   0  
  引言PLM(产品生命周期管理)开发流程对于企业产品的全生命周期管控至关重要。它涵盖了从产品概念设计到退役的各个阶段,直接影响着产品质量、开发周期以及企业的市场竞争力。在当今快速发展的科技环境下,客户对产品质量的要求日益提高,市场竞争也愈发激烈,这就使得优化PLM开发流程成为企业的必然选择。缺陷管理工具和六西格玛方法作为...
plm产品全生命周期管理   0  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用