在這篇文章中,我們將學習10個最重要的模型性能度量,這些度量可用於評估分類模型的模型性能。
以下是我們將通過示例以相互關聯的方式研究的10個指標:
Confusion MatrixType I ErrorType II ErrorAccuracyRecall or True Positive Rate or SensitivityPrecisionSpecificityF1 ScoreROC Curve- AUC ScorePR Curve一旦我們了解了適當的用法以及如何根據問題陳述來解釋這些度量,那麼衡量分類模型的強度就不是問題了。
我們將使用一個數據集的例子,它有yes和no標籤,用於訓練邏輯回歸模型。這個用例可以是任何分類問題-垃圾郵件檢測、癌症預測、損耗率預測、活動目標預測等。我們將在本文需要時參考特殊用例。目前,我們將考慮一個簡單的邏輯模型,它必須預測是或否。
首先,邏輯模型可以給出兩種輸出:
1.它以輸出值的形式給出類標籤(是/否、1/0、惡性/良性、吸引/保留、垃圾郵件/非垃圾郵件等)
2.它給出了介於0到1之間的概率值作為輸出值,以表示某個特定觀察事件的可能性或可能性。
類標籤場景可以進一步細分為平衡或不平衡數據集,這兩種情況都不能/不應該基於類似的度量進行判斷。有些指標更適合但不是另一個,反之亦然。類似地,概率場景有不同於類標籤的模型性能度量。
下面是流程圖,這是一個完美的總結,也是這篇文章的一個完美的前言,我們將在最後再次回顧這個流程圖,以確保我們了解所有的指標。
Confusion Matrix
我們從一個開發數據集開始,同時構建任何統計或ML模型。把數據集分成兩部分:訓練和測試。保留測試數據集,並使用訓練數據集訓練模型。一旦模型準備好預測,我們就嘗試在測試數據集上進行預測。一旦我們將結果分割成一個類似於上圖所示的矩陣,我們就可以看到我們的模型有多少能夠正確預測,有多少預測是錯誤的。
我們用測試數據集中的數字填充以下4個單元格(例如,有1000個觀察值)。
TP(真陽性):該列的實際標籤在測試數據集中為「是」,我們的logistic回歸模型也預測為「是」。(500次觀察)
TN(真陰性):在測試數據集中,該列的實際標籤為「否」,而我們的logistic回歸模型也預測為「否」。(200次觀察)
FP(假陽性):該列的實際標籤在測試數據集中為「否」,但我們的logistic回歸模型預測為「是」。(100次觀察)
FN(假陰性):在測試數據集中,該列的實際標籤為「是」,但我們的邏輯回歸模型預測為「否」。(200次觀察)
這4個單元構成了「混淆矩陣」,就像在矩陣中一樣,它可以通過清晰地描繪模型的預測能力來緩解對模型優度的所有混淆。
混淆矩陣是一個表,通常用於描述一個分類模型(或「分類器」)在一組已知真實值的測試數據上的性能
Type I Error
第1類錯誤也稱為假陽性,當分類模型錯誤地預測最初錯誤觀察的真實結果時發生。
例如:假設我們的邏輯模型正在處理一個垃圾郵件而不是垃圾郵件的用例。如果我們的模型將一封其他重要的電子郵件標記為垃圾郵件,那麼這是我們的模型的類型I錯誤的一個例子。在這個特別的問題陳述中,我們對儘可能減少類型I錯誤非常敏感,因為進入垃圾郵件的重要電子郵件可能會產生嚴重的影響。
Type II Error
第2類錯誤也被稱為假陰性,當分類模型錯誤地預測了最初真實觀察結果的假結果時就會發生。
例如:假設我們的邏輯模型正在處理一個用例,它必須預測一個人是否患有癌症。如果我們的模型將患有癌症的人標記為健康人並對其進行了錯誤分類,那麼這就是我們的模型的第二類錯誤的一個例子。在這個特別的問題陳述中,我們對儘可能減少II型錯誤非常敏感,因為如果疾病繼續在患者中未被診斷,這種情況下的假陰性可能導致死亡。
Accuracy
現在,上面討論的三個度量是通用度量,與有的培訓和測試數據類型以及為問題陳述部署的分類算法類型無關。
我們現在正在討論非常適合特定類型數據的度量。
讓我們從這裡開始討論準確性,這是一個最適合用於平衡數據集的度量。
一個平衡的數據集是1和0,是和否,正和負都由訓練數據平均表示的數據集。另一方面,如果兩個類標籤的比率有偏差,那麼我們的模型將偏向一個類別。
假設我們有一個平衡的數據集,讓我們學習什麼是準確性。
準確度是指測量結果接近真實值。它告訴我們,我們的分類模型能夠多準確地預測問題陳述中給出的類標籤。
例如:假設我們的分類模型試圖預測客戶流失情況。在上圖中,在實際吸引的700個客戶中(TP+FN),該模型能夠正確地對500個吸引的客戶進行分類(TP)。同樣,在總共300個保留客戶(FP+TN)中,該模型能夠正確地對200個保留客戶(TN)進行分類。
Accuracy= (TP+TN)/Total customers
在上面的場景中,我們看到模型在1000個客戶的測試數據集上的準確率是70%。
現在,我們了解到準確性是一個度量標準,應該只用於平衡的數據集。為什麼會這樣?讓我們看一個例子來理解這一點。
在這個例子中,這個模型是在一個不平衡的數據集上訓練的,甚至測試數據集也是不平衡的。準確度指標的得分為72%,這可能給我們的印象是,我們的模型在分類方面做得很好。但是,仔細看,這個模型在預測負面的類標籤方面做得很糟糕。在100個總的陰性標記觀察中,它只預測了20個正確的結果。這就是為什麼如果您有一個不平衡的數據集,就不應該使用精度度量。
下一個問題是,如果您有一個不平衡的數據集,將使用什麼?答案是Recall和Precision。讓我們進一步了解這些。
Recall/ Sensitivity/ TPR
Recall/ Sensitivity/ TPR(真陽性率)試圖回答以下問題:
哪些實際陽性被正確識別?
上面的圖像告訴我們召回分數是78%。召回通常用於真相檢測最為重要的用例中。例如:癌症預測、股市分類等。在這裡,問題陳述要求最小化假陰性,這意味著最大化召回/敏感度。
Precision
精確性嘗試回答以下問題:
什麼比例的陽性鑑定是正確的?
上圖所示的示例表明,精度得分為75%。精度通常用於最重要的情況,即不存在大量誤報。例如:在垃圾郵件檢測案例中,正如我們前面所討論的,假陽性將是一個觀察結果,它不是垃圾郵件,但根據我們的分類模型被歸類為垃圾郵件。過多的誤報可能會破壞垃圾郵件分類模型的目的。因此,在這種情況下,判斷模型性能的精確性非常方便。
Specificity
特異性(也被稱為真陰性率)測量實際陰性的比例被正確地識別為這樣。
垃圾郵件檢測分類器的例子,我們了解精度。繼續使用那個例子,特異性告訴我們我們的模型能夠準確分類多少個陰性。在這個例子中,我們看到專一性=33%,這對於垃圾郵件檢測模型來說不是一個好的分數,因為這意味著大多數非垃圾郵件被錯誤地歸類為垃圾郵件。我們可以通過觀察特異性度量得出結論,這個模型需要改進。
F1 Score
我們分別討論了第6點和第7點中的回憶和精確性。我們知道,有些問題陳述中,較高的查全率優先於較高的查準率,反之亦然。
但是有一些用例,其中的區別不是很清楚,作為開發人員,我們希望同時重視召回和精確性。在這種情況下,還可以使用另一個度量標準-F1分數。它依賴於精確性和召回率。
在二元分類的統計分析中,F1分數(也可以是F分數或F測度)是測試準確性的度量。它同時考慮了測試的精確性p和召回率r來計算分數
在討論最後兩個指標之前,下面是Wikipedia上提供的一個很好的摘要表,它涵蓋了我們在本文中討論過的所有指標。放大看看圖像是否不清晰。
現在,我們已經到了最後一站了。到目前為止,我們已經討論了預測類標籤的分類模型的模型性能度量。現在,讓我們研究基於概率的模型的度量。
ROC Curve- AUC Score
曲線下面積(AUC)、受試者工作特性曲線(ROC)
這是衡量模型性能的最重要指標之一,在數據科學家中廣受歡迎。
讓我們從一個例子開始理解這一點。我們有一個分類模型,它給出了0-1之間的概率值來預測一個人是否肥胖的概率。接近0的概率分數表示考慮中的人肥胖的概率非常低,而接近1的概率值表示人肥胖的概率非常高。現在,默認情況下,如果我們將閾值設為0.5,那麼所有分配概率小於0.5的人將被歸類為「不肥胖」,分配概率大於0.5的人將被歸類為「肥胖」。但是,我們可以改變這個門檻。如果我把它定為0.3或0.9呢。讓我們看看會發生什麼。
為了便於理解,我們在樣本中抽取了10個人。
要繪製ROC曲線,我們必須繪製(1-特異性),即x軸上的假陽性率和y軸上的敏感性,即真陽性率。
ROC曲線告訴我們,該模型能夠很好地區分兩種情況(例如,患者是否肥胖)。更好的模型可以準確地區分兩者。然而,一個糟糕的模型將很難區分兩者。
我們將看到4種不同的場景,其中我們將選擇不同的閾值,並將計算ROC曲線對應的x軸和y軸值。
現在,我們有4個數據點,藉助這些數據點,我們將繪製ROC曲線,如下所示。
因此,這就是如何為分類模型繪製ROC曲線的方法,通過分配不同的閾值來創建不同的數據點來生成ROC曲線。ROC曲線下的面積稱為AUC。AUC越高,你的模型就越好。ROC曲線離中線越遠,模型就越好。這就是ROC-AUC如何幫助我們判斷分類模型的性能,並為我們提供從多個分類模型中選擇一個模型的方法。
PR Curve
在數據主要位於負標籤的情況下,ROC-AUC將給我們一個不能很好地代表現實的結果,因為我們主要關注正速率方法,y軸上的TPR和x軸上的FPR。
在這裡,您可以看到大多數數據都在負標籤下,ROC-AUC不會捕獲該信息。在這些場景中,我們轉向PR曲線,這只是精確召回曲線。
在PR曲線中,我們將計算並繪製Y軸上的精度和X軸上的調用,實際情況PR曲線正好與ROC曲線相反,所以這裡就不再展示了。
作者:Juhi