淺談ROC曲線的最佳閾值如何選取
為了獲取ROC曲線的最佳閾值,需要使用一個(gè)指標(biāo)--約登指數(shù),也稱(chēng)正確指數(shù)。
借助于matlab的roc函數(shù)可以得出計(jì)算。
% 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(['平均準(zhǔn)確率: ',num2str((RightIndexVal+1)*0.5)]); disp(['最佳正確率: ',num2str(tpr_val)]) disp(['最佳錯(cuò)誤率: ',num2str(fpr_val)])
至此計(jì)算結(jié)束了。
補(bǔ)充拓展:利用閾值分割目標(biāo)圖像
一.全局閾值
方法一:OTSU方法
otsu法(最大類(lèi)間方差法,有時(shí)也稱(chēng)之為大津算法)使用的是聚類(lèi)的思想,把圖像的灰度數(shù)按灰度級(jí)分成2個(gè)部分,使得兩個(gè)部分之間的灰度值差異最大,每個(gè)部分之間的灰度差異最小,通過(guò)方差的計(jì)算來(lái)尋找一個(gè)合適的灰度級(jí)別來(lái)劃分。 所以可以在二值化的時(shí)候采用otsu算法來(lái)自動(dòng)選取閾值進(jìn)行二值化。otsu算法被認(rèn)為是圖像分割中閾值選取的最佳算法,計(jì)算簡(jiǎn)單,不受圖像亮度和對(duì)比度的影響。因此,使類(lèi)間方差最大的分割意味著錯(cuò)分概率最小。
選擇閾值k,把像素分為兩類(lèi):
T=graythresh(f)即可實(shí)現(xiàn)用方法一計(jì)算歸一化的閾值。
二.局域閾值
當(dāng)背景照度不均勻時(shí),全局閾值方法可能失效,此時(shí),用局域變化的閾值函數(shù)T(x,y)分割圖像f(x,y):
matlab實(shí)現(xiàn)程序:
clear all;close all;clc; I=imread('C:\Users\ASUS\Desktop\圖像處理學(xué)習(xí)文件\大二下\使用閾值分割目標(biāo)_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); %產(chǎn)生半徑為10的圓盤(pán)形結(jié)構(gòu)元素 fo=imopen(I1,se); %用結(jié)構(gòu)元素對(duì)灰度圖像進(jìn)行開(kāi)運(yùn)算 figure imshow(fo) title('Opened image') f2=imtophat(I,se); %用原圖像減去開(kāi)運(yùn)算圖像,即對(duì)圖像進(jìn)行頂帽運(yùn)算 figure imshow(f2,[]) %顯示頂帽運(yùn)算結(jié)果 title('Top-hat transformation') f2=im2double(f2); T=graythresh(f2); bw2=im2bw(f2,T); %對(duì)頂帽處理后的圖像進(jìn)行閾值處理 figure imshow(bw2,[]) title('Thresholded top-hat image') %顯示閾值處理后的頂帽圖像
以上這篇淺談ROC曲線的最佳閾值如何選取就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python中對(duì)列表的相關(guān)操作你知道嗎
這篇文章主要為大家詳細(xì)介紹了python中對(duì)列表的相關(guān)操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-03-03Django文件存儲(chǔ) 默認(rèn)存儲(chǔ)系統(tǒng)解析
這篇文章主要介紹了Django文件存儲(chǔ) 默認(rèn)存儲(chǔ)系統(tǒng)解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08pytorch從csv加載自定義數(shù)據(jù)模板的操作
這篇文章主要介紹了pytorch從csv加載自定義數(shù)據(jù)模板的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03Python報(bào)錯(cuò)ImportError:?IProgress?not?found.?Please?update
在使用Jupyter Notebook或JupyterLab進(jìn)行交互式編程時(shí),我們可能會(huì)遇到各種導(dǎo)入錯(cuò)誤,本文就來(lái)介紹一下Python報(bào)錯(cuò)ImportError:?IProgress?not?found.?Please?update?jupyter?and?ipywidgets解決,感興趣的可以了解一下2024-06-06對(duì)Python 2.7 pandas 中的read_excel詳解
今天小編就為大家分享一篇對(duì)Python 2.7 pandas 中的read_excel詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05