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


Posted in Python onFebruary 28, 2020

为了获取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)])

至此计算结束了。

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

一.全局阈值

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

方法一:OTSU方法

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

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

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

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

二.局域阈值

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

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

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曲线的最佳阈值如何选取就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python生成验证码实例
Aug 21 Python
Python bsddb模块操作Berkeley DB数据库介绍
Apr 08 Python
python查询mysql,返回json的实例
Mar 26 Python
python多维数组切片方法
Apr 13 Python
在Mac上删除自己安装的Python方法
Oct 29 Python
Python文件循环写入行时防止覆盖的解决方法
Nov 09 Python
python设置环境变量的作用和实例
Jul 09 Python
使用python os模块复制文件到指定文件夹的方法
Aug 22 Python
Python 3.8正式发布重要新功能一览
Oct 17 Python
Python类的绑定方法和非绑定方法实例解析
Mar 04 Python
Python关于拓扑排序知识点讲解
Jan 04 Python
golang中的空接口使用详解
Mar 30 Python
python GUI库图形界面开发之PyQt5多行文本框控件QTextEdit详细使用方法实例
Feb 28 #Python
python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例
Feb 28 #Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
Feb 28 #Python
Python post请求实现代码实例
Feb 28 #Python
python GUI库图形界面开发之PyQt5滑块条控件QSlider详细使用方法与实例
Feb 28 #Python
Python接口测试get请求过程详解
Feb 28 #Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
Feb 28 #Python
You might like
phpmyadmin操作流程
2006/10/09 PHP
PHP实现MySQL更新记录的代码
2008/06/07 PHP
PHP的autoload机制的实现解析
2012/09/15 PHP
PHP上传文件时自动分配路径的方法
2015/01/09 PHP
php求一个网段开始与结束IP地址的方法
2015/07/09 PHP
PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)
2017/05/26 PHP
PHP单例模式简单用法示例
2017/06/23 PHP
Javascript调用C#代码
2011/01/17 Javascript
15款优秀的jQuery导航菜单插件分享
2011/07/19 Javascript
JavaScript高级程序设计(第3版)学习笔记4 js运算符和操作符
2012/10/11 Javascript
防止xss和sql注入:JS特殊字符过滤正则
2013/04/18 Javascript
jQuery快速上手:写jQuery与直接写JS的区别详细解析
2013/08/26 Javascript
JavaScript数组的栈方法与队列方法详解
2016/05/26 Javascript
微信小程序 跳转传递数据的实例
2017/07/06 Javascript
vue移动端实现红包雨效果
2020/06/23 Javascript
在layui中对table中的数据进行判断(0、1)转换为提示信息的方法
2019/09/28 Javascript
vc6编写python扩展的方法分享
2014/01/17 Python
python对url格式解析的方法
2015/05/13 Python
Python字符串切片操作知识详解
2016/03/28 Python
Python3.6.0+opencv3.3.0人脸检测示例
2018/05/25 Python
python 自定义异常和异常捕捉的方法
2018/10/18 Python
Python合并同一个文件夹下所有PDF文件的方法
2019/03/11 Python
Python 实现大整数乘法算法的示例代码
2019/09/17 Python
Django异步任务线程池实现原理
2019/12/17 Python
对Pytorch中Tensor的各种池化操作解析
2020/01/03 Python
Python对wav文件的重采样实例
2020/02/25 Python
通过代码实例了解Python3编程技巧
2020/10/13 Python
html5定制表单_动力节点Java学院整理
2017/07/11 HTML / CSS
Omio法国:全欧洲低价大巴、火车和航班搜索和比价
2017/11/13 全球购物
英国最大的网上药品商店:Chemist Direct
2017/12/16 全球购物
几个Shell Script面试题
2012/08/31 面试题
开业主持词
2014/03/21 职场文书
综治工作心得体会
2014/09/11 职场文书
会计岗位工作总结
2015/08/12 职场文书
祝福语集锦:送给毕业同学祝福语
2019/11/21 职场文书
JavaScript小技巧带你提升你的代码技能
2021/09/15 Javascript