如何区分真阳性和真阴性?

2024-03-10

本质上,我有一个代表真实情况的二值图像,并且有一个取自算法结果的二值图像 - 现在的任务是找到重叠区域来评估算法的性能,即找到真正的阳性( TP)、真阴性(TN)、假阳性(FP)和假阴性(FN)。

我已经正确找到了 FP 和 FN 的值,但是我无法理解如何分离 TN 和 TP。

我计算重叠的方法是首先计算出地面真实图像和算法图像之间的差异:

% Gdilate=ground truth image, img=result of algorithm
ImageComparison = (Gdilate>0)-(img>0); 

然后,通过减法,我可以将所有 0、1 和 -1 的像素相加,以获得 TP_TN、FN 和 FP。

TP_TN = sum(sum(ImageComparison==0))/rows/columns;
FN = sum(sum(ImageComparison==-1))/rows/columns;
FP = sum(sum(ImageComparison==1))/rows/columns;

以下是结果imagesc() on the ImageComparison多变的:

现在我只需要找到一种方法将 TP 与 TN 分开,因为它们在ImageComparison matrix.


您这样做的方式无法区分真正的积极因素和真正的消极因素,因为(0 - 0 and 1 - 1) are both等于零。相反,如果您有两个二进制结果(ground_truth and test_data),您不需要将两者相减,您可以仅使用逻辑比较来计算您需要的一切。

ground_truth = Gdilate > 0;
test_data = img > 0;

误报

基本事实为阴性,但测试为阳性。

false_positives = ~ground_truth & test_data;
false_positive_rate = sum(false_positives(:)) / numel(false_positives);

假阴性

真实数据为阳性,但测试为阴性

false_negatives = ground_truth & ~test_data;
false_negative_rate = sum(false_negatives(:)) / numel(false_negatives);

真正的积极因素

两者都积极

true_positives = ground_truth & test_data;
true_positive_rate = sum(true_positives(:)) / numel(true_positives);

真阴性

两者均为负数

true_negatives = ~ground_truth & ~test_data;
true_negative_rate = sum(true_negatives(:)) / numel(true_negatives);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何区分真阳性和真阴性? 的相关文章

  • 垂直子图的单一颜色条

    我想让下面的 MATLAB 图有一个沿着两个子图延伸的颜色条 像这样的事情 使用图形编辑器手动完成 Note 这与提出的问题不同here https stackoverflow com questions 39950229 matlab t
  • 如何从一组重叠的圆计算多边形集?

    这个问题是一些计算细节的扩展这个问题 https stackoverflow com questions 1667310 combined area of overlapping circles 假设有一组 可能重叠的 圆 并且希望计算这组
  • 删除队列中的最后一个元素

    我需要删除队列的最后一个元素 我唯一可以使用的操作是 Peek 获取第一个元素而不删除它 Enqueue element 向队列末尾插入一个元素 Dequeue 删除第一个元素 IsEmpty true 或 false 队列是否为空 而且我
  • 如何使用 PySpark 预处理图像?

    我有一个项目 需要为 1 设置大数据架构 AWS S3 SageMaker 的概念验证使用 PySpark 预处理图像 2 执行 PCA and 3 训练一些机器或深度学习模型 我的问题是了解如何使用 PySpark 操作图像数据 但无法在
  • MATLAB 可执行文件太慢

    我使用以下命令将 MATLAB 程序转换为基于控制台的应用程序deploytool在 MATLAB 中 MATLAB m文件执行大约需要 2 秒 但在我将其转换为可执行文件并调用 exe 执行需要45秒 太长了 我想将 MATLAB 程序与
  • 高维最近邻搜索的最佳数据结构

    我实际上正在处理高维数据 50 000 100 000 个特征 并且必须对其执行最近邻搜索 我知道随着维度的增长 KD 树的性能很差 而且我还了解到 一般来说 所有空间分区数据结构都倾向于对高维数据执行详尽的搜索 此外 还有两个重要事实需要
  • 快速搜索压缩文本文件

    我需要能够在大量压缩文件 txt 中搜索文本 压缩可能会改变为其他东西 甚至成为专有的 我想避免解压所有文件并压缩 编码 搜索字符串并在压缩文件中搜索 这应该可以通过对所有文件使用相同的码本使用霍夫曼压缩来实现 我不想重新发明轮子 所以 任
  • 如何确定算法函数的复杂度?

    您如何知道算法函数对于特定操作是否需要线性 常数 对数时间 它取决于CPU周期吗 您可以通过三种方式 至少 做到这一点 在网上查找算法 看看它是如何描述其时间复杂度的 根据输入大小 自己检查算法 查看嵌套循环和递归条件等内容 以及每个循环运
  • 最慢的计算复杂度(Big-O)

    在这些算法中 我知道 Alg1 是最快的 因为它是 n 平方的 接下来是 Alg4 因为它是 n 的立方 然后 Alg2 可能是最慢的 因为它是 2 n 这应该具有非常差的性能 然而Alg3和Alg5在我的阅读速度方面还没有遇到过 这两种算
  • 解释一下从 N 个给定集合中的每一个中给出第 K 个最大数字的示例?

    今天我尝试解决一个Facebook 编程挑战赛 https facebook interviewstreet com recruit challenges 我遇到的挑战是 酒吧问题 可以找到here https github com alo
  • 有人可以解释以下异或属性

    我的一个论坛提到给定的数组n数字 arr 0 n 1 以下条件成立 is the xor运算符 f l r f 0 r f 0 l 1 where f l r arr l arr l 1 arr r 我检查了上面的数组数量和不同的值l an
  • 在 Matlab 的命令窗口中获取旧式帮助

    问题的简短版本 在最新版本的 Matlab 中 我在 Windows 上的 R2014b 和 R2015a 中看到过 当您键入help foo你得到一个简要描述 简介函数及其签名 例如 输入help bsxfun产生类似这样的东西 只有更好
  • 在Matlab中对字符进行分组并形成矩阵

    我有 26 个字符 A 到 Z 我将 4 个字符组合在一起 并用空格分隔以下 4 个字符 如下所示 abcd efgh ijkl mnop qrst uvwx yz 我的Matlab编码如下 str abcdefghijklmnopqrst
  • 由周期表元素形成的最大单词的算法

    我想为以下问题场景编写一个算法 根据元素周期表元素的名称 找到可以组成的最大单词 符号如Na Ne等应被视为单个元素 这是在一家知名公司的求职面试中被问到的 有人可以帮我解决这个问题吗 我认为更好的方法是检查字典中的每个单词 看看是否可以从
  • Karasuba算法递归过多

    我正在尝试用 c 实现 Karasuba 乘法算法 但现在我只是想让它在 python 中工作 这是我的代码 def mult x y b m if max x y lt b return x y bm pow b m x0 x bm x1
  • setImageCompressionQuality 与 setCompressionQuality 之间有什么区别 - Imagick

    我在Imagick中找到了两种设置图像压缩质量的方法 A 设置图像压缩质量 B 设置压缩质量 所以我想知道哪一个是最好的以及为什么在以下条件下 我读到了setCompressionQuality方法仅适用于新图像 我正在尝试压缩文件 jpe
  • 预测测试图像时出现错误 - 无法重塑大小数组

    我正在尝试使用 TensorFlow 和 Keras 在 Python 中进行图像识别 并且我已经关注了下面的博客 https stackabuse com image recognition in python with tensorfl
  • 将字符串中的“奇怪”字符转换为罗马字符

    我需要能够将用户输入仅转换为 a z 罗马字符 不区分大小写 所以 我感兴趣的角色只有26个 然而 用户可以输入他们想要的任何 形式 的字符 西班牙语 n 法语 e 和德语 u 都可以包含用户输入中的重音符号 这些重音符号会被程序删除 我已
  • OpenCV 2.4.3 中的阴影去除

    我正在使用 OpenCV 2 4 3 最新版本 使用内置的视频流检测前景GMG http docs opencv org modules gpu doc video html highlight gmg gpu 3a 3aGMG GPU算法
  • numpy:大量线段/点的快速规则间隔平均值

    我沿着一维线有许多 约 100 万个 不规则间隔的点 P 这些标记线段 这样 如果点是 0 x a x b x c x d 则线段从 0 gt x a x a gt x b x b gt x c x c gt x d 等 我还有每个段的 y

随机推荐

  • 错误:无法在此小部件上方找到正确的提供者< >

    我看不出我在下面做错了什么 但它抛出了一些提供程序错误和构建上下文 发生这种情况是因为您使用了BuildContext不包括提供者 你的选择 有以下几种常见场景 您在您的目录中添加了一个新的提供商main dart并执行热重载 要修复 请执
  • 如何清除 Eclipse Indigo 的缓存

    我想知道清除 Eclipse Indigo 缓存的标准方法是什么 您可以在启动 eclipse 时使用 clean 参数 例如 C eclipse eclipse exe vm C Program Files Java jdk1 6 0 2
  • 如何使用 Moles 通过 LINQ 从表中重定向选择?

    我有一个名为 订阅 的表 我想将该表中的任何 LINQ 选择重定向到 Moles lambda 以便从该表中只返回 3 行 基本上我想绕过对数据库的调用 到目前为止 我的代码如下所示 lazy loader is here to handl
  • 将现有的 C++(.h 和 .cpp)文件转换为 Android 的 java [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在 Eclipse 下为 Android 进行开发 我有一些 C h 和 cpp 文件希望在我的 A
  • Visual Studio 2015 发布 Web 仅具有自定义选项

    我正在使用 Visual Studio 2015 进行网络项目的网络发布 但似乎网络发布配置文件中的几个选项丢失了 此链接中应该包含选项使用 Visual Studio 2015 通过 Web 部署发布到 IIS http docs asp
  • 如何防止更改数组或对象的值

    我是 Java 初学者 在开发程序时 我使用构造函数创建了一个对象 并以变量作为参数 但是 当我在创建对象后更改变量的值时 我的对象具有第二个值而不是第一个值 我不希望我的对象改变值 我该怎么办 public class Person pu
  • Twitter Bootstrap - 全宽背景(图片)

    我目前正在进行一个项目 正在尝试很棒的 Twitter Bootstrap 包括响应式网格 除了一个问题之外 一切都运行良好 你如何给予 container 包含网格 背景颜色 例子 div class container green di
  • 每个请求上的 51Degrees 重新加载会减慢 ASP.NET MVC 的速度

    添加 51Degrees 移动检测库后 我的 ASP NET MVC 3 项目速度慢得像爬行一样 51Degrees 日志文件定义为
  • @Value 在单元测试中返回 null

    我有一个带有端点测试配置类和单元测试的 Spring Boot 应用程序来测试我的 http 客户端 我试图从位于我的 src test 中的 application properties 获取我的服务器地址和端口 所有类都在我的 src
  • 如何在action方法中获取匹配的token参数值?

    如果我的语法中有这样的内容 grammar G token tab indent Int level Using just level would require to have the same effect so use a code
  • Jquery 5秒后显示按钮[重复]

    这个问题在这里已经有答案了 所以我得到了这个按钮 我需要在 5 秒后显示它 我没有 jquery 或 javascript 经验 HTML 代码 p You need to wait 0 before you can proceed p
  • 有没有像 Reflector 这样的 COM 库工具?

    有没有像 Reflector 这样的 COM 库工具 我想打开一个 COM 库并浏览类和接口 就像在 Reflector 中一样 如果可能的话 我宁愿不安装 Visual Basic 6 0 来执行此操作 但方式不同 有许多工具可以让您检查
  • 在 Sqlalchemy 中导入 create_engine 时出现循环导入错误

    我正在尝试使用 Python 进行 CS50 Web 开发课程 在 sql 部分中 在从 sqlalchemy 导入 create engine 时出现此错误 ImportError 无法从部分初始化的模块 sqlalchemy 导入名称
  • PHP 事件监听器最佳实践实现

    我正在尝试用 PHP 创建一个类似 CMS 的系统 使其尽可能模块化和可扩展 有人可以为我提供在 PHP 中创建事件侦听器系统 例如 Drupal 系统的非常简化版本 的最佳实践方案 创建挂钩并在一个简短的示例中实现它们也很好 嗯 从实现的
  • Laravel Eloquent Join 与 Inner Join?

    所以我在弄清楚如何进行 feed 风格的 mysql 调用时遇到了一些麻烦 我不知道这是一个雄辩的问题还是 mysql 的问题 我确信两者都是可能的 我只是需要一些帮助 所以我有一个用户 他们进入他们的提要页面 在此页面上显示来自他们朋友的
  • 选择所有 li,但不选择子项

    我有这个代码 li li this 这是选择所有的li在我的代码中 这很好用 但我想要 li排除li位于子菜单中 ul li a href blah 1 a li ul li a href sub 1 a li li a href sub
  • Ant复制过程中如何删除一个文件夹

    我有一个文件 其文件路径类似于 LibraryX A Stuff FileY txt 我在 Ant 构建中将其用作包含文件 但是 我需要在复制过程中删除路径的 LibraryX A 部分 文件从 LibraryX A Stuff FileY
  • Knex/SQL:将一对多联接合并到一个对象中

    我有两个表 page 和 page css 我想要page和page css之间是一对多的关系 一个页面包含多个page css 参见表结构 Page table structure Page css table structure 这是我
  • 如何将 csv 文件的内容读入类中,并将每个 csv 行作为类实例

    我是一名 Python 新手 几天来我一直在为课堂作业而苦苦挣扎 我有一个 csv 文件 其中包含这样的数据 id latitude longitude city label yr1970 yr1975 yr1980 yr1985 yr19
  • 如何区分真阳性和真阴性?

    本质上 我有一个代表真实情况的二值图像 并且有一个取自算法结果的二值图像 现在的任务是找到重叠区域来评估算法的性能 即找到真正的阳性 TP 真阴性 TN 假阳性 FP 和假阴性 FN 我已经正确找到了 FP 和 FN 的值 但是我无法理解如