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

python的roc曲线与阈值_浅谈ROC曲线的最佳阈值如何选取相关推荐

  1. roc图 r语言_浅谈ROC曲线-R语言

    原文链接:https://www.r-bloggers.com/lang/chinese/1205​www.r-bloggers.com 机器学习中很常见的一个大类就是二元分类器.很多二元分类器会产生 ...

  2. python的re2和re区别_浅谈Python中re.match()和re.search()的使用及区别

    1.re.match()fvk免费资源网 re.match()的概念是从头匹配一个符合规则的字符串,从起始位置开始匹配,匹配成功返回一个对象,未匹配成功返回None.fvk免费资源网 包含的参数如下: ...

  3. python老是报参数未定义_浅谈Python程序的错误:变量未定义

    Python程序的错误种类 Python程序的错误分两种.一种是语法错误(syntax error).这种错误是语句的书写不符合Python语言的语法规定.第二种是逻辑错误(logic error). ...

  4. python数学库的使用方法_浅谈numpy库的常用基本操作方法

    NumPy数组的维数称为秩(rank),一维数组的秩为1,二维数组的秩为2,以此类推.在NumPy中,每一个线性的数组称为是一个轴(axes),秩其实是描述轴的数量.比如说,二维数组相当于是一个一维数 ...

  5. python 读excel字符型 数值_浅谈python 读excel数值为浮点型的问题

    浅谈python 读excel数值为浮点型的问题 如下所示: #读入no data = xlrd.open_workbook("no.xlsx") #打开excel table = ...

  6. 为什么python打包的应用那么大_浅谈python3打包与拆包在函数的应用详解

    1.序列(拆包) *用作序列拆包:*可对字符串.列表.集合.元组.字典.数字元素等序列进行拆包 print(*(1,2,3,4,5,6)) #1 2 3 4 5 6 print(*[1,2,3,4,5 ...

  7. python理解浮点数运算的误差_浅谈浮点数运算的误差

    测试程序 我们知道,浮点数运算存在舍入误差.在某些特殊的情况下,舍入误差还可以累计到非常大的地步.让我们来看一下测试程序吧: 1 usingSystem;2 3 static classDecimal ...

  8. python中的date的含义_浅谈python中的dateime

    原文链接:http://www.cnblogs.com/lhj588/archive/2012/04/23/2466653.html Python提供了多个内置模块用于操作日期时间,像calendar ...

  9. python中异或怎么算_浅谈Python逻辑运算符 异或xor

    我又来水文章了 这篇讲讲令人百思不得骑姐的异或运算 让我们先来看两段,不,是10(b)段对话:技术员:这个水坝系统的设计思路为按下紧急按钮或者水位高于危险水位时,系统发出警报 提问者:这个" ...

最新文章

  1. java 方法里面定义接口_java – 当接口A在其方法签名中定义接口B时
  2. R语言计算回归模型每个样本(观察、observation、sample)的DFFITS度量实战:忽略单个观察(样本)时,回归模型所做的预测会发生多大的变化
  3. leetcode算法题--构建乘积数组
  4. linux 挂载网络文件系统,[arm-linux-FL2440挂载网络文件系统共享文件]
  5. leetcode617. 合并二叉树
  6. 使用Architecture Explorer分析应用程序及使用层次图
  7. 第一个帖子吧,我也博客了!
  8. 智数合一,智慧工厂的四大典型应用场景
  9. sublime text 2 学习(一):快捷键
  10. 施工工期计算器在线_办公室装修工期要多久时间,办公室快速装修怎么做?
  11. [Android] Android 锁屏实现与总结 (一)
  12. Jupyter Notebook 代码补全功能配置
  13. 【渝粤题库】陕西师范大学800003 中国地理
  14. 如何使用Guitar Pro在乐谱播放时切换效果器音色?
  15. Mac如何设置文本中的单双引号样式?
  16. python微信语音转发方法_最简单的微信语音转发方法,保证看一遍就会
  17. 【SPPS学习一】 SPSS-26软件下载与安装步骤详解
  18. 信使广告终结者 绿色
  19. 百度OCR图像识别(包含自定义模板)
  20. 深度解析工业机器人主流离线编程软件

热门文章

  1. python pandas中读取excel并修改数据类型
  2. 在Windows中应用图标变成白色,恢复办法
  3. oracle 删除主键
  4. 神经网络炒股出现的问题,炒股容易得神经病吗
  5. angularJS中service、provice、factor区别
  6. 蜻蜓设备+支付宝会员的开发笔记
  7. Chrom Debugger
  8. 杭州10家企业跻身中国软件收入百强
  9. 金山毒霸专业版速度翻3倍
  10. photoshop输出html网页方法