通俗易懂解釋一類和二類錯誤(Type I Error Type II Error)
通俗易懂解釋一類和二類錯誤(Type I Error Type II Error)
翻譯自False Positive (Type I Error) and False Negative (Type II Error)
本文涵蓋以下與“誤報False Positive和漏報False Negative”及其在機器學習領域中的意義有關的主題:
- 解釋
- 3個案例
- Python程式碼(Scikit-Learn)
- 我們如何衡量分類問題中的錯誤?
- 還想獲得更多相關內容?:有關醫學檢驗假陽性和假陰性的新聞
解釋
▲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)]
第二個案例:男人懷孕
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
▲與混淆矩陣相關的結果
▲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%。
還想獲得更多相關內容?:有關醫學檢驗假陽性和假陰性的新聞
請點選檢視 醫學測試當中的預測價值
非常感謝您的閱讀!
相關文章
- 實體類註解錯誤:Could not determine type for:
- ndk編譯錯誤:error: 'override' does not name a type編譯ErrorIDE
- error :does not name a typeError
- error: 'cout' does not name a type|Error
- Error-Expected resource of typeError
- QT中error: xxx does not name a type xxx錯誤QTError
- Android之NDK開發錯誤 error: unknown type name 'JNIEXPORT'AndroidErrorExport
- error: '[class name]' does not name a typeError
- Qt 報錯 “類名”does not name a typeQT
- error: ‘xxx’ does not name a typeError
- error: ‘變數名‘ does not name a type|Error變數
- error:dereferencing pointer to incomplete typeError
- 【ERROR】Oracle列印錯誤程式碼解釋ErrorOracle
- PSQLexception: ERROR : type "signed" does not existSQLExceptionError
- 編譯錯誤 --- does not name a type和field `XX' has incomplete type編譯
- sloaris 出現“mount: I/O error”錯誤Error
- 編譯錯誤--------:XX does not name a type和field `XX' has incomplete type編譯
- 執行SQL發生錯誤!錯誤:disk I/O errorSQLError
- _error-type_cout_不明確的符號Error符號
- Js錯誤Error物件詳解JSError物件
- Datastore error in 'dirbdb'錯誤解決ASTError
- MYSQL中 TYPE=MyISAM 錯誤的解決方法MySql
- `QtValidLicenseForCoreModule' does not name a type 錯誤的解決QTREM
- error: invalid type argument of unary ‘*‘ (have ‘int‘) *__first = __tmp;Error
- Error page: / Error infos: DedeCms錯誤警告Error
- PHP curl error 60 錯誤解決PHPError
- 解決 "Script Error" 的另類思路Error
- SAP MRKO Error - For document type RE, an entry is required in field Reference -ErrorUI
- MySQL error 錯 誤 碼MySqlError
- PostgreSQL error 錯誤碼SQLError
- Oracle9i RAC 報 /nsr/res/nsrdb save: RAP error: system error錯誤分析及解決過程(OracleError
- 兩個C++編譯錯誤及解決辦法--does not name a type和field `XX' has incomplete typeC++編譯
- struts:實現圖片的上傳 argument type mismatch errorError
- FatalThrowableError in index.php line 554:Type error: Argument 1 passedErrorIndexPHP
- SO API-- Receiving Error: VALIDATION FAILED FOR THE FIELD - ORDER TYPE?APIErrorAI
- JAVA類的頂層Type抽象和繼承關係Java抽象繼承
- 網站部署後Parser Error Message: Could not load type 的解決方案網站Error
- Error Curves——錯誤曲線Error