浅谈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中的代码编码格式转换问题
Jun 10 Python
使用python检测主机存活端口及检查存活主机
Oct 12 Python
Python安装第三方库及常见问题处理方法汇总
Sep 13 Python
Python矩阵常见运算操作实例总结
Sep 29 Python
解决python3 安装完Pycurl在import pycurl时报错的问题
Oct 15 Python
python字典一键多值实例代码分享
Jun 14 Python
python3实现高效的端口扫描
Aug 31 Python
pytest中文文档之编写断言
Sep 12 Python
Django框架表单操作实例分析
Nov 04 Python
Python生成个性签名图片获取GUI过程解析
Dec 16 Python
Python Tornado实现WEB服务器Socket服务器共存并实现交互的方法
May 26 Python
Python生成并下载文件后端代码实例
Aug 31 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
PHP获取指定月份第一天和最后一天的方法
2015/07/18 PHP
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
2016/02/03 PHP
orm获取关联表里的属性值
2016/04/17 PHP
laravel 实现划分admin和home 模块分组
2019/10/15 PHP
php的instanceof和判断闭包Closure操作示例
2020/01/26 PHP
javascript获取url上某个参数的方法
2013/11/08 Javascript
JS实现的仿QQ空间图片弹出效果代码
2016/02/23 Javascript
基于javascript实现tab切换特效
2016/03/29 Javascript
JSON生成Form表单的方法示例
2018/11/21 Javascript
jquery实现购物车基本功能
2019/10/25 jQuery
vue点击按钮动态创建与删除组件功能
2019/12/29 Javascript
小程序实现列表展开收起效果
2020/07/29 Javascript
[00:31]DOTA2荣耀之路7:Miracle-空血无敌斩
2018/05/31 DOTA
[01:15:16]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第一场 1月26日
2021/03/11 DOTA
Python 连连看连接算法
2008/11/22 Python
Django 项目通过加载不同env文件来区分不同环境
2020/02/17 Python
Django项目uwsgi+Nginx保姆级部署教程实现
2020/04/19 Python
django 解决model中类写不到数据库中,数据库无此字段的问题
2020/05/20 Python
让Django的BooleanField支持字符串形式的输入方式
2020/05/20 Python
使用HTML5加载音频和视频的实现代码
2020/11/30 HTML / CSS
全球领先的鞋类零售商:The Walking Company
2016/07/21 全球购物
美国最大网上鞋店:Zappos
2016/07/25 全球购物
美国美发品牌:Bumble and Bumble
2016/10/08 全球购物
电子商务专业在校生实习自我鉴定
2013/09/29 职场文书
酒店保安员岗位职责
2014/01/31 职场文书
2014年公司迎新年活动方案
2014/02/24 职场文书
大学生自我鉴定书
2014/03/24 职场文书
食品科学与工程专业毕业生求职信范文
2014/07/21 职场文书
大学生党校培训心得体会
2014/09/11 职场文书
2014年有孩子的离婚协议书范本
2014/10/08 职场文书
商务考察邀请函模板
2015/02/02 职场文书
力克胡哲观后感
2015/06/10 职场文书
在 Golang 中实现 Cache::remember 方法详解
2021/03/30 Python
Nginx工作原理和优化总结。
2021/04/02 Servers
Java数组详细介绍及相关工具类
2022/04/14 Java/Android
LeetCode189轮转数组python示例
2022/08/05 Python