一文带你了解混淆矩阵!
來源 |?數據科學CLUB
封圖 | CSDN 下載自視覺中國
混淆矩陣是一個表,經常用來描述分類模型(或“分類器”)在已知真實值的一組測試數據上的性能。混淆矩陣本身比較容易理解,但是相關術語可能會令人混淆。
讓我們從一個二進制分類器的混淆矩陣示例開始(盡管它可以很容易地擴展到兩個以上的類):
我們能從這個矩陣中了解到什么?
有兩種可能的預測類:“yes”和“no”。例如,如果我們預測一種疾病的存在,“yes”意味著他們有這種疾病,“no”意味著他們沒有這種疾病。
分類器總共做出165個預測(例如,165名患者正在接受該疾病存在的測試)。
在這165個病例中,分類器預測“yes”110次,“no”55次。
事實上,樣本中有105名患者患有此病,60名患者沒有患病。
現在讓我們定義最基本的術語:
true positives (TP): 在這些情況下,我們預測“yes”(他們有這種病),并且他們確實有這種病。
true negatives (TN): 我們預測“no”,事實上他們確實沒有患病。
false positives (FP): 我們預測“yes”,但是他們實際上并沒有患病。(也稱為“第一類錯誤”。)
false negatives (FN): 我們預測“no”,但他們確實有這種疾病。(也稱為“第二類錯誤”。)
我已經將這些項添加到混淆矩陣中,并且添加了行和列總數:
這是一個比率的列表,通常是從一個混淆矩陣的二元分類器里得出:
準確率(Accuracy):總的來說,分類器的準確率是多少?
(TP+TN)/total = (100+50)/165 = 0.91
誤分類率(Misclassification Rate):總的來說,錯分類的頻率是多少?
(FP+FN)/total = (10+5)/165 = 0.09
等于1減去準確率
也被稱為“錯誤率(Error Rate)”
真陽性率(True Positive Rate):當它實際上是“yes”時,它預測為“yes”的頻率是多少?
TP/actual yes = 100/105 = 0.95
也被稱為"Sensitivity"或"Recall"
假陽性率(False Positive Rate):當它實際上是“no”的時候,它預測為“yes”的頻率是多少?
FP/actual no = 10/60 = 0.17
真陰性率(True Negative Rate):當它實際上是“no”時,它預測“no”的頻率是多少?
TN/actual no = 50/60 = 0.83
等于1減去假陽性率
也被稱為"特異性(Specificity)"
精度(Precision):當它預測“yes”類時,正確預測的概率是多少?
TP/predicted yes = 100/110 = 0.91
Prevalence:在我們的樣本中,“yes”條件實際發生的頻率是多少?
actual yes/total = 105/165 = 0.64
還有幾個術語也值得一提:
零錯誤率(Null Error Rate): 這是如果你總是預測大多數類,你就會錯的頻率。(在我們的例子中,零錯誤率將是60/165=0.36,因為如果你總是預測yes,那么您只會在60個“no”的情況下出錯。)這可以作為比較分類器的基準度量。然而,對于一個特定的應用程序,最好的分類器有時會有比零錯誤率更高的錯誤率,正如 “Accuracy Paradox(精確度悖論)”所證明的那樣。
Cohen's Kappa: 這本質上是對分類器的性能的一種度量,與它僅僅是偶然的性能進行比較。換句話說,如果模型的準確率和零錯誤率之間有很大的差異,那么模型的Kappa分數就會很高。
F Score:這是真實陽性率(召回率)和正確率的加權平均值。
ROC曲線:這是一個常用的圖表,它總結了分類器在所有可能閾值上的性能。當你改變將觀察值分配給給定類的閾值時,通過繪制真陽性率(y軸)與假陽性率(x軸)來生成它。
如何成為一名黑客?
一篇與眾不同的 String、StringBuilder 和 StringBuffer 詳解
干貨 | 大白話徹底搞懂 HBase RowKey 詳細設計
發送0.55 ETH花費近260萬美元!這筆神秘交易引發大猜想
Python 爬取周杰倫《Mojito》MV 彈幕,這個評論亮了!
谷歌 Chrome 將棄用“黑名單”,“Master/Slave”主從模式也要換名?
京東姚霆:推理能力,正是多模態技術未來亟需突破的瓶頸!
真香,朕在看了!
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的一文带你了解混淆矩阵!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从浪漫走向坚韧:开源数据库的演变
- 下一篇: 学 Python 最大的 1 个误区,看