機器學習分類問題:九個常用的評估指標總結
本站內容均來自興趣收集,如不慎侵害的您的相關權益,請留言告知,我們將盡快刪除.謝謝.
對機器學習的評估度量是機器學習核心部分,本文總結分類問題常用的請估指標。
分類問題評估指標
在這裡,將討論可用於評估分類問題預測的各種效能指標。
1. Confusion Matrix
這是衡量分類問題效能的最簡單方法,其中輸出可以是兩種或更多型別的類。混淆矩陣只不過是一個具有兩個維度的表,即“實際”和“預測”,此外,這兩個維度都有“真陽性(TP)”、“真陰性(TN)”、“假陽性(FP)”和“假陰性(FN)”,如下所示:
與混淆矩陣相關的術語解釋如下:
真陽(TP)− 當資料點的實際類別和預測類別均為1
真實陰(TN)− 當資料點的實際類和預測類都為0
假陽(FP)− 當資料點的實際類別為0,預測的資料點類別為1
假陰(FN)− 當資料點的實際類別為1,預測的資料點類別為0
我們可以使用sklearn的混淆矩陣函式confusion_matrix,用於計算分類模型混淆矩陣的度量。
2. Accuracy
它是分類演算法最常見的效能度量。它可以被定義為正確預測的數量與所有預測的比率。我們可以通過混淆矩陣,藉助以下公式輕鬆計算:
我們可以使用sklearn的accuracy_score函式,計算分類模型準確性的指標
3. Precision
precision定義為ML模型預測結果中:預測正確的正樣本數除以所有的預測正樣本數:
4. Recall
recall定義為ML模型預測結果中:預測正確的正樣本數除以所有的實際正樣本數:
5. Specificity
specificity定義為ML模型預測結果中:預測正確的負樣本數除以所有的實際負樣本數:
6. Support
支援度可定義為每類目標值中相應的樣本數。
7. F1 Score
該分數將為我們提供precision和recall的調和平均值。從數學上講,F1分數是precision和recall的加權平均值。F1的最佳值為1,最差值為0。我們可以使用以下公式計算F1分數:
F1分數對precision和recall的相對貢獻相等。
我們可以使用sklearn的classification_report功能,用於獲取分類模型的分類報告的度量。
8. AUC (Area Under ROC curve)
AUC(曲線下面積)-ROC(接收器工作特性)是基於不同閾值的分類問題效能指標。顧名思義,ROC是一條概率曲線,AUC衡量可分離性。簡單地說,AUC-ROC度量將告訴我們模型區分類的能力,AUC越高,模型越好。
從數學上講,可以通過繪製不同閾值下的TPR(真陽性率),即specificity或recall與FPR(假陽性率),下圖顯示了ROC、AUC,y軸為TPR,x軸為FPR:
我們可以使用sklearn的roc_auc_score函式,計算AUC-ROC的指標。
9. LOGLOSS (Logarithmic Loss)
它也稱為邏輯迴歸損失或交叉熵損失。它基本上定義在概率估計上,並測量分類模型的效能,其中輸入是介於0和1之間的概率值。
通過精確區分,可以更清楚地理解它。正如我們所知,準確度是我們模型中預測的計數(預測值=實際值),而對數損失是我們預測的不確定性量,基於它與實際標籤的差異。藉助對數損失值,我們可以更準確地瞭解模型的效能。我們可以使用sklearn的log_loss函式。
例子
下面是Python中的一個簡單方法,它將讓我們瞭解如何在二進位制分類模型上使用上述效能指標。
from sklearn.metrics import confusion_matrix from sklearn.metrics import accuracy_score from sklearn.metrics import classification_report from sklearn.metrics import roc_auc_score from sklearn.metrics import log_loss X_actual = [1, 1, 0, 1, 0, 0, 1, 0, 0, 0] Y_predic = [1, 0, 1, 1, 1, 0, 1, 1, 0, 0] results = confusion_matrix(X_actual, Y_predic) print ('Confusion Matrix :') print(results) print ('Accuracy Score is',accuracy_score(X_actual, Y_predic)) print ('Classification Report : ') print (classification_report(X_actual, Y_predic)) print('AUC-ROC:',roc_auc_score(X_actual, Y_predic)) print('LOGLOSS Value is',log_loss(X_actual, Y_predic))
輸出:
Confusion Matrix : [ [3 3] [1 3] ] Accuracy Score is 0.6 Classification Report : precision recall f1-score support 0 0.75 0.50 0.60 6 1 0.50 0.75 0.60 4 micro avg 0.60 0.60 0.60 10 macro avg 0.62 0.62 0.60 10 weighted avg 0.65 0.60 0.60 10 AUC-ROC: 0.625 LOGLOSS Value is 13.815750437193334
- 全自動資料建模平臺打造建模新正規化,人人都能成為資料科學家 | 愛分析調研
- 如何用DBSCAN聚類模型做資料分析?
- 精準使用者畫像!商城使用者分群2.0!
- Test time adaptation方法總結
- 超精準!AI 結合郵件內容與附件的意圖理解與分類!
- AI加速器與機器學習演算法:協同設計與進化
- 使用SINet進行偽裝目標檢測
- ECCV 2022 Oral | 理解藝術字:用於場景文字識別的角點引導Transformer
- AI醫療高精尖!基於AI的新葯研發!
- 谷歌&北大擴散模型(Diffusion Model)首篇綜述-Diffusion Models: A Comprehensive Survey of Meth…
- 協同過濾演算法——基於物品(Item)
- MLOps對比DevOps:有什么區別?
- CVPR 2022 | UniDet:通用的多資料集目標檢測
- ECCV 2022 | k-means Mask Transformer
- IS 2022 | 位元組AI Lab聯合南科大提出:利用偽標註資料提升端到端S2ST
- 自定義分詞起始規則實現關鍵詞全詞高亮專案實戰(全語種通吃)
- 電商搜尋全鏈路(PART II)Query理解
- 機器學習分類問題:九個常用的評估指標總結
- 簡單的文字分類任務:不借助Trainer實現
- Macbook Pro M1晶片使用Pytorch進行深度學習小試