当前位置: 首页 > 编程笔记 >

浅谈ROC曲线的最佳阈值如何选取

韩宜春
2023-03-14
本文向大家介绍浅谈ROC曲线的最佳阈值如何选取,包括了浅谈ROC曲线的最佳阈值如何选取的使用技巧和注意事项,需要的朋友参考一下

为了获取ROC曲线的最佳阈值,需要使用一个指标--约登指数,也称正确指数。

借助于matlab的roc函数可以得出计算。

% 1-specificity = fpr
% Sensitivity = tpr;
[tpr,fpr,thresholds] =roc(Tar',Val');
RightIndex=(tpr+(1-fpr)-1);
[~,index]=max(RightIndex);
%
RightIndexVal=RightIndex(index(1));
tpr_val=tpr(index(1));
fpr_val=fpr(index(1));
thresholds_val=thresholds(index(1));
disp(['平均准确率: ',num2str((RightIndexVal+1)*0.5)]);
disp(['最佳正确率: ',num2str(tpr_val)])
disp(['最佳错误率: ',num2str(fpr_val)])

至此计算结束了。

补充拓展:利用阈值分割目标图像

一.全局阈值

方法一:OTSU方法

otsu法(最大类间方差法,有时也称之为大津算法)使用的是聚类的思想,把图像的灰度数按灰度级分成2个部分,使得两个部分之间的灰度值差异最大,每个部分之间的灰度差异最小,通过方差的计算来寻找一个合适的灰度级别来划分。 所以可以在二值化的时候采用otsu算法来自动选取阈值进行二值化。otsu算法被认为是图像分割中阈值选取的最佳算法,计算简单,不受图像亮度和对比度的影响。因此,使类间方差最大的分割意味着错分概率最小。

选择阈值k,把像素分为两类:

T=graythresh(f)即可实现用方法一计算归一化的阈值。

二.局域阈值

当背景照度不均匀时,全局阈值方法可能失效,此时,用局域变化的阈值函数T(x,y)分割图像f(x,y):

matlab实现程序:

clear all;close all;clc;
I=imread('C:\Users\ASUS\Desktop\图像处理学习文件\大二下\使用阈值分割目标_15\Fig0926(a)(rice).tif');
figure
imshow(I)
title('original image')
k=graythresh(I);
I1=im2bw(I,k);
figure
imshow(I1)
se=strel('disk',10); %产生半径为10的圆盘形结构元素
fo=imopen(I1,se);  %用结构元素对灰度图像进行开运算
figure
imshow(fo)
title('Opened image')
f2=imtophat(I,se); %用原图像减去开运算图像,即对图像进行顶帽运算
figure
imshow(f2,[])  %显示顶帽运算结果
title('Top-hat transformation')
f2=im2double(f2);
T=graythresh(f2);
bw2=im2bw(f2,T); %对顶帽处理后的图像进行阈值处理
figure
imshow(bw2,[])
title('Thresholded top-hat image') %显示阈值处理后的顶帽图像

以上这篇浅谈ROC曲线的最佳阈值如何选取就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 我训练了一名CNN,将图像分为5类。但是,当我试图绘制每个类别相对于其他类别的曲线时,所有5个类别几乎都有一条对角线曲线,其约为0.5。我不知道出了什么问题。 该模型的准确率应该在86%左右。 代码如下: "prediction_prob"变量包含: 而“正确”变量包含每个测试图像的正确标签: 我想我遵循了网站上提到的内容。 生成的tpr[i]和fpr[i]变量变为线性相关,因此AUC变为0.5

  • 我的主要问题 1。带超时的get是解决此问题的最佳方法吗? 2。是否有可能我正在等待一个任务的get调用,该任务尚未被放置在线程池中(是否是一个活动的工作者)。在这种情况下,我可能正在终止一个线程,当它启动时,它实际上可能在所需的时间限制内完成? 如有任何建议,将不胜感激。

  • 本文向大家介绍浅谈Python3 numpy.ptp()最大值与最小值的差,包括了浅谈Python3 numpy.ptp()最大值与最小值的差的使用技巧和注意事项,需要的朋友参考一下 numpy.ptp() 是计算最大值与最小值差的函数,用法如下: 运行结果: 以上这篇浅谈Python3 numpy.ptp()最大值与最小值的差就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支

  • 本文向大家介绍浅谈Spring Boot 开发REST接口最佳实践,包括了浅谈Spring Boot 开发REST接口最佳实践的使用技巧和注意事项,需要的朋友参考一下 本文介绍了Spring Boot 开发REST接口最佳实践,分享给大家,具体如下: HTTP动词与SQL命令对应 GET POST PUT DELETE PATCH URL中的约定 URL中名词使用复数形式 URL中的名称是使用单数

  • 实际的y值是y=[0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 1. 0. 1. 0. 1. 0. 0. 1. 1. 0. 0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.

  • 本文向大家介绍浅谈谈Android 图片选择器,包括了浅谈谈Android 图片选择器的使用技巧和注意事项,需要的朋友参考一下 ImageSelector 简介 Android自定义相册,实现了拍照、图片选择(单选/多选)、ImageLoader无绑定 任由开发者选择 https://github.com/YancyYe/ImageSelector Demo Download Apk 更新内容 U