浅谈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 正则式 概述及常用字符
May 07 Python
Python实现数通设备端口使用情况监控实例
Jul 15 Python
浅析Python 中整型对象存储的位置
May 16 Python
Python学习笔记之if语句的使用示例
Oct 23 Python
Python+tkinter使用40行代码实现计算器功能
Jan 30 Python
Django中更改默认数据库为mysql的方法示例
Dec 05 Python
python如何以表格形式打印输出的方法示例
Jun 21 Python
python绘制评估优化算法性能的测试函数
Jun 25 Python
扩展Django admin的list_filter()可使用范围方法
Aug 21 Python
浅谈python已知元素,获取元素索引(numpy,pandas)
Nov 26 Python
python 视频逐帧保存为图片的完整实例
Dec 10 Python
Python如何在DataFrame增加数值
Feb 14 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 正则表达式小结
2009/08/31 PHP
php学习之数据类型之间的转换代码
2011/05/29 PHP
php中jQuery插件autocomplate的简单使用笔记
2012/06/14 PHP
浅谈thinkphp的实例化模型
2015/01/04 PHP
Yii框架创建cronjob定时任务的方法分析
2017/05/23 PHP
php如何获取Http请求
2020/04/30 PHP
JavaScript类和继承 constructor属性
2010/03/04 Javascript
禁用JavaScript控制台调试的方法
2014/03/07 Javascript
node.js中的fs.lstatSync方法使用说明
2014/12/16 Javascript
基于Jquery插件Uploadify实现实时显示进度条上传图片
2020/03/26 Javascript
基于BootStrap环境写jQuery tabs插件
2016/07/12 Javascript
jQuery 判断是否包含在数组中Array[]的方法
2016/08/03 Javascript
微信小程序 火车票查询实例讲解
2016/10/17 Javascript
Vue服务端渲染和Vue浏览器端渲染的性能对比(实例PK )
2017/03/31 Javascript
详解Js中的模块化是如何实现的
2017/10/18 Javascript
JavaScript变量提升和严格模式实例分析
2019/01/27 Javascript
使用Angular material主题定义自己的组件库的配色体系
2019/09/04 Javascript
[03:48]大碗DOTA
2019/07/25 DOTA
[49:11]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.20
2020/12/23 DOTA
Python读写unicode文件的方法
2015/07/10 Python
Linux下Python安装完成后使用pip命令的详细教程
2018/11/22 Python
在python shell中运行python文件的实现
2019/12/21 Python
Pycharm debug调试时带参数过程解析
2020/02/03 Python
详解pycharm的python包opencv(cv2)无代码提示问题的解决
2021/01/29 Python
一款基于css3和jquery实现的动画显示弹出层按钮教程
2015/01/04 HTML / CSS
详解CSS3 Media Queries中媒体属性的使用
2016/02/29 HTML / CSS
phonegap常用事件总结(必看篇)
2017/03/31 HTML / CSS
Algenist奥杰尼官网:微藻抗衰老护肤品牌
2017/07/15 全球购物
几道Web/Ajax的面试题
2016/11/05 面试题
跳蚤市场口号
2014/06/13 职场文书
材料化学专业求职信
2014/07/15 职场文书
学校端午节活动方案
2014/08/23 职场文书
升国旗演讲稿
2014/09/05 职场文书
井冈山红色之旅感想
2014/10/07 职场文书
大学生社区义工服务心得体会
2016/01/22 职场文书
如何计划开一家便利店?
2019/07/31 职场文书