誤報率、故障檢測率、漏報率、虛警率、誤警率等指標異同及計算公式

誤報率、故障檢測率、漏報率、虛警率、誤警率等指標異同及計算公式

1. 一些標準指標的計算

參考論文:Fawcett T. An introduction to ROC analysis[J]. Pattern Recognition Letters, 2006, 27(8): 861–874.

谷歌學術顯示這篇文章引用量有一萬四千多,應該是比較權威經典的。

下面這部分相關指標的定義是從該論文中摘抄出來的

中括號【】內的【中文】,是自己根據相應英文含義加的

True class 【真實類別】 True class 【真實類別】
p 【陽性】 n 【陰性】
Hypothesized class 【預測類別】 Y 【陽性】 TP(True Positives) 【真陽性】 FP(False Positives) 【假陽性】
Hypothesized class 【預測類別】 N 【陰性】 FN(False Negatives) 【假陰性】 TN(True Negatives) 【真陰性】

注:Hypothesized class直接翻譯好像是“被假定的類別”,不太清楚是什麼意思,個人認爲應該是指“預測類別”。

true positive rate (tp rate)【真陽性率】, or hit rate 【命中率】, or recall 【召回率】:

tp rate=TPTP+FNPositives correctly classified 【被正確分類的陽性數目】 Total positives 【總陽性數目】  \textrm{tp rate}=\frac{TP}{TP+FN}\approx\frac{\textrm{Positives correctly classified 【被正確分類的陽性數目】 }}{\textrm{Total positives 【總陽性數目】 }}

注:關於上面是約等號的問題,首先,原文說的是用後面這部分的公式去估計tp rate,個人想法是,前面的計算公式是理論公式,後面公式是用實驗的結果來估計的意思吧。

false positive rate (fp rate) 【假陽性率】, or false alarm rate:

fp rate=FPFP+TNNegatives incorrectly classified【被錯誤分類的陰性數目】Total negatives【總陰性數目】 \textrm{fp rate}=\frac{FP}{FP+TN}\approx\frac{\textrm{Negatives incorrectly classified【被錯誤分類的陰性數目】}}{\textrm{Total negatives【總陰性數目】}}

sensitivity【靈敏度】:

sensitivity=recall \textrm{sensitivity=recall}

specificity【特異度】:

specificity=True negatives【真陰性】 False positives【假陽性】+True negatives【真陰性】=1fp rate \textrm{specificity}=\frac{\textrm{True negatives【真陰性】 }}{\textrm{False positives【假陽性】+True negatives【真陰性】}}=1-\textrm{fp rate}

precision【精確度】:

precision=TPTP+FP \textrm{precision}=\frac{TP}{TP+FP}

accuracy【準確度】:

 accuracy=TP+TNTP+FN+TN+FP \textrm{ accuracy}=\frac{TP+TN}{TP+FN+TN+FP}

F measure【F值】:

 F measure=21precision+1recall \textrm{ F measure}=\frac{2}{\frac{1}{\textrm{precision}}+\frac{1}{\textrm{recall}}}

2. 在化工等領域的故障檢測中相關指標計算

以下是個人的理解,沒有特意參照某篇論文,如有不同意見或錯誤,歡迎指出。

在故障檢測裏,因爲只是故障檢測,並不會區分故障1或者故障2,而是統統當成故障這一類別。

所以,將故障定義爲陽性P,正常定義爲陰性N,例如,故障1是陽性P,故障2也是陽性P。

那麼故障檢測中,常用的相關指標定義如下:

故障檢測率(fault detection rate,FDR):

FDR=被正確檢測的故障(即故障被成功預測成故障)數目 故障總數目=TPTP+FN=tp rate \textrm{FDR}=\frac{\textrm{被正確檢測的故障(即故障被成功預測成故障)數目 }}{\textrm{故障總數目}}=\frac{TP}{TP+FN}=\textrm{tp rate}

因此,故障檢測率與召回率、真陽性率是同一個計算公式,同一個含義。

故障L的故障檢測率

故障L故障檢測率 =被正確檢測的故障L(即故障L被成功預測成故障)總數 故障L總數目 \textrm{故障L故障檢測率 }=\frac{\textrm{被正確檢測的故障L(即故障L被成功預測成故障)總數 }}{\textrm{故障L總數目}}

其中,L是具體某類故障的標籤。因此論文中,談到“不同故障檢測率”,用的是故障L的故障檢測率公式。而“平均故障檢測率”就是在不區分故障幾的情況下計算的結果,即用的FDR或tp rate計算。

所以,如果在“fault detection rate”的討論環境中,存在着不同故障,那用的是故障L的故障檢測率公式。如果沒有區分故障,那麼指的就是原來的含義,不過,爲了說明的更清楚,一般採用“average fault detection rate”,即平均故障檢測率,所以,這樣也算是作了相應的區分了。

論文示例 1:

來源:Lv F, Wen C, Bao Z, et al. Fault diagnosis based on deep learning[C]. 2016 American Control Conference (ACC). Boston, MA, USA: IEEE, 2016: 6851–6856.

這個討論的是平均故障檢測率:
在這裏插入圖片描述

論文示例 2:

來源:Zhang X, Kano M, Li Y. Principal Polynomial Analysis for Fault Detection and Diagnosis of Industrial Processes[J]. IEEE Access, 2018, 6: 52298–52307.

這個討論的是各故障的檢測率,用的是故障L的故障檢測率公式,左邊第一列是21種故障:
在這裏插入圖片描述

誤報率(false alarm rate,FAR)、虛警率、誤檢率:

FAR=誤報成故障的正常樣本數目正常總數目=FPFP+TN=fp rate \textrm{FAR}=\frac{\textrm{誤報成故障的正常樣本數目}}{\textrm{正常總數目}}=\frac{FP}{FP+TN}=\textrm{fp rate}

誤報的含義肯定是指正常被誤報成故障(真實類別爲正常,預測類別爲故障),顯然不會有故障誤報成正常這一說法,只有故障漏報成正常的說法。

因此,誤報率是與假陽性率同一個計算公式,同一個含義

關於虛警率這個指標的問題,個人認爲,完全是翻譯的問題。

畢竟,false alarm rate 這個詞,字面意思,假的警報比率,翻譯成“誤報率”、“虛警率”都是合理的翻譯,甚至翻譯成“誤警率”,“虛報率”字面意思好像也完全說的通的,只是可能沒有人這麼說。

在百度翻譯中,“虛警率”甚至被翻譯成了“false positive rate”,即“假陽性率”了(而上面公式表明誤報率和假陽性率確實是一樣的)。

而在谷歌翻譯中,“虛警率”被翻譯成“false alarm rate”,而“false alarm rate”再翻譯回中文時又成“誤報率”了。

個人猜測,會不會是不同領域的故障檢測的研究人員,由於側重點不同或者什麼原因,在翻譯“false alarm rate”時,分別翻譯成了“誤報率”、“虛警率”、“誤檢率”之類的名稱了,所以導致存在不同的翻譯名稱,但計算公式和含義是完全一樣的。

漏報率(missing alarm rate,MAR)、漏檢率、漏警率:

MAR=漏報爲正常的故障數目故障總數目=FNTP+FN \textrm{MAR}=\frac{\textrm{漏報爲正常的故障數目}}{\textrm{故障總數目}}=\frac{FN}{TP+FN}

個人認爲,漏報率、漏檢率、漏警率等也是不同領域的翻譯問題,它們其實是一樣的。

故障L的漏報率:

故障L漏報率=漏報爲正常的故障L數目故障L總數目 \textrm{故障L漏報率}=\frac{\textrm{漏報爲正常的故障L數目}}{\textrm{故障L總數目}}

因此漏報率也可以分成“平均故障漏報率”和“故障L漏報率”。不過好像沒見過用“平均故障漏報率”這一說法的。

漏報率這一指標,在使用時,存在和檢測率一樣的使用規則。

論文示例 3:

來源:Shi L, Tong C, Lan T, 等. Statistical process monitoring based on ensemble structure analysis[J]. IEEE/CAA Journal of Automatica Sinica, 2018: 1–8.

這個漏報率實際是各故障的漏報率,用的故障L的漏報率計算公式
在這裏插入圖片描述

顯然,這個漏報率+故障檢測率=1,或者說平均漏報率+平均故障檢測率=1,再或者說故障L漏報率+故障L故障檢測率=1

因爲和爲1,所以,用故障檢測率,一般就不用漏報率,反之亦然。

而“精確度”、“準確率”、“錯誤率”這類指標,在故障檢測上一般沒見使用,可能是這類指標會受到不同類別數目的影響,所以,在該領域討論意義不大。

3. 在化工等領域的故障檢測中哪個指標說法更專業?

誤報率、故障檢測率、false alarm rate、fault detection rate

閱讀了一些該領域中的中英文論文,包括國內的碩博論文。

中文論文中,大家基本都是用的誤報率、故障檢測率這兩個指標。用漏報率的比較少。用“虛警率”這類說法的幾乎沒有看到過。

個別人用了故障準確率等類似的說法,但是個人認爲這一說法並不好,不知道什麼意思,容易有歧義,也沒看到它的計算公式,通過文章上下文,個人猜測,大概是故障檢測率的意思吧。

英文論文中,一般都是用false alarm rate、fault detection rate,用missing alarm rate也有,但比較少見。

所以,個人認爲,在化工過程的故障檢測中,用誤報率、故障檢測率比用“虛警率、漏警率”更專業些。如有需要,不用故障檢測率,用漏報率也是可以的。

4. 上述論述得到的結論

在 故障定義爲陽性,正常定義爲陰性 的前提下。

結論① 故障檢測率=真陽性率=召回率

結論② 誤報率=假陽性率

結論③ false alarm rate=誤報率=虛警率=誤檢率等名稱(純粹是翻譯不同)

結論④ missing alarm rate=漏報率=漏警率=漏檢率等名稱

結論⑤ 漏報率+故障檢測率=1

結論⑥ 在化工等領域的故障檢測中,用“誤報率(false alarm rate)、故障檢測率(fault detection rate)”是比較通用、比較專業的說法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章