通俗易懂解釋一類和二類錯誤(Type I Error Type II Error)

Andrew@csdn發表於2020-12-12

通俗易懂解釋一類和二類錯誤(Type I Error Type II Error)

作者 KULDEEP PATEL

翻譯自False Positive (Type I Error) and False Negative (Type II Error)


本文涵蓋以下與“誤報False Positive和漏報False Negative”及其在機器學習領域中的意義有關的主題:

  • 解釋
  • 3個案例
  • Python程式碼(Scikit-Learn)
  • 我們如何衡量分類問題中的錯誤?
  • 還想獲得更多相關內容?:有關醫學檢驗假陽性和假陰性的新聞

解釋

I型錯誤(誤報)和II型錯誤(漏報)

▲I型錯誤(誤報 False Positive)和II型錯誤(漏報 False Negative)

通過檢視該圖,您對I型和II型錯誤有了解了嗎?讓我們探索一下它。

這張圖表示年齡(在X軸上,自變數)與已婚(在Y軸上,因變數)之間的關係。Y取決於X的值,即某人已婚(Y = 1或Yes)或未婚(Y = NO 獲0)的決定取決於人的年齡。

誤報 (False Postive),也稱Type I Error

藍色十字標記→紅色十字標記(實際→預測)

就是那個25到30之間的一藍一紅的2個點

注意圖中的十字標記符號,其中藍色十字標記表示實際值,紅色十字標記表示預測值。在25至30歲左右的年齡,一個名叫A先生的人實際上並未結婚。但是,預測說A先生已結婚,這是一個錯誤的預測(即False),並且預測值是Yes或1(即Positive)。因此,它被稱為“誤報False Postive”或“ I類錯誤”。

漏報(False Negative),也稱Type II Error

藍色圓圈標記→紅色圓圈標記(實際→預測) 即20-25之間的兩個點

在此方案中,藍色圓圈標記和紅色圓圈標記分別表示實際值和預測值。實際上,一個名為B先生的人已婚,年齡約為20-25歲。但是,預測值表明B先生尚未結婚。因此,在這種情況下,預測也是錯誤的(即False),並且預測值為No或0(即Negative)。這被稱為“漏報False Negative”或II型錯誤。

解釋說明 Interpretation

誤報-當預測錯誤且預測值是真時

漏報-當預測錯誤且預測值為假時

False Positive- when a prediction is wrong & predicted value is positive

False Negative- when a prediction is wrong & predicted value is Negative

混淆矩陣中的I型和II型錯誤表示:

混淆矩陣

▲混淆矩陣 Confusion Matrix

案例

第一個案例:火災報警

一類錯誤

型別I錯誤(誤報):當沒有火警時,火警會響起[Sources:Gifer(火警)]

二型錯誤

型別II錯誤(漏報) :發生火災時,火警警報無法響起 [Sources:Gifer(FireAlarm),tenor(Fire)]

第二個案例:男人懷孕

1_5pZNWXDxY4M9SUJ56QV7yA

I型錯誤(誤報):醫生說男人懷孕了…

II型錯誤(漏報):醫生說孕婦沒有懷孕…

[來源:pinterest(醫生),fotosearch(男人)和deviantart(女士)]

Python Code解釋(用Sklearn)

# Assume we have a dataset which contains the information on pregnancy tests
# 0- Represents Lady is not pregnant 女士沒懷孕
# 1- Represents Lady is pregnant 女士懷孕了
# y- Output/Target/Dependent Variable 因變數
# y_actual - In reality 真實值
# y_predicted - Predicted by Machine Learning algorithm  機器學習預測值
y_actual = [1,0,0,0,0,0,1,1,1,0]
y_predicted = [1,1,1,0,0,0,1,1,0,0]

from sklearn. metrics import confusion_ matrix
print( confusion_matrix(y_actual, y_predicted))

# 輸出
# [[4 2]
#  [1 3]]

▲混淆矩陣Confusion Matrix

# False Positive and False Negative
FP=confusion_ matrix(y. actual,y_predicted)[0][1]
FN=confusion_ matrix(y_ actual,y_predicted)[1][0]
print("False Positive (Type I Error) :",FP)
print("False Negative (Type II Error):",FN)
# Accuracy 準確度 = 1-(漏報的個數+誤報的個數)/總資料個數
accuracy=100-((FP+FN)*100/len(y_predicted))
print( ." Accuracy : " , accuracy,' %')

# 輸出
# False Positive (Type I Error) : 2
# False Negative (Type II Error): 1
# Accuracy : 70.0 %

▲誤報和漏報 False Positive and False Negative

Relate the results with a confusion matrix

▲與混淆矩陣相關的結果

3 Errors (2 False Positive + 1 False Negative)

▲3個錯誤(2個誤報 藍色箭頭+ 1個漏報 紅色箭頭)

如何衡量分類問題中的錯誤

I型錯誤(誤報)和II型錯誤(漏報)可幫助我們確定模型的準確性,可以藉助混淆矩陣來確定模型的準確性。

如果我們將型別I和型別II錯誤的值相加,則總錯誤=誤報+漏報,精準程度=1-總錯誤數/總個數。

如果錯誤較小,則準確度會更高,反之亦然。更好的準確性,更好的效能,這正是我們想要的。。

我們來解釋下在Python程式碼中獲得的結果

誤報數= 2,表示2位女士實際上並未懷孕,但模型預測表明他們已懷孕。

漏報數= 1,表示1位女士實際情況下懷孕,但根據預測她沒有懷孕。

因此,由於孕婦懷孕且模型預測說她沒有懷孕,這種情況更加危險。

因此,這裡的Type II Error比Type I Error更危險。

我們可以得出結論,在10個預測中,我們的模型做出了3個錯誤預測(1個假陰性+ 2個假陽性)和7個正確預測(4個真陽性+3個真陰性)。

因此我們可以說模型的準確性為70%,誤差為30%。

還想獲得更多相關內容?:有關醫學檢驗假陽性和假陰性的新聞

請點選檢視 醫學測試當中的預測價值

非常感謝您的閱讀!

相關文章