Python機器學習-分類模型的5個評估指標

Irene Chen
5 min readMay 6, 2023

--

機器學習專案從一開始的定義問題、資料清理到模型建置,該如何評估模型的好壞與預測結果,就需要有評估指標,所以這篇文章會整理常見的分類模型評估指標,並瞭解各個指標的評估重點!

Python機器學習-分類模型的5個評估指標

評估指標的目的,就是來確認預測值(Prediction)與實際值(Ground truth)的正確程度,並透過評估指標的高低,來優化資料清理流程或調整模型參數,以提高預測準確度。

一、準確率(Accuracy)

準確率就是正確分類的樣本數占所有樣本數的比例,其公式為

Accuracy = 正確預測的樣本數 / 總樣本數

如果是多元分類的問題,可以使用Top-K Accuracy,K代表模型預測前K個可能的類別(機率排名前K名的類別),而這K個類別有包含到正確類別的比例就是Top-K Accuracy。

二、混淆矩陣(Confusion Matrix)

這裡先用二元分類來說明混淆矩陣,混淆矩陣就是由實際是正樣本(Positive)和負樣本(Negative),與預測正確(True)和錯誤(False)四種情況所形成的矩陣,四種情況分別為:

1. True Positive(TP):實際是正樣本且預測為正樣本
2. False Positive(FP):實際是負樣本但誤判為正樣本
3. False Negative(FN):實際是正樣本但誤判為負樣本
4. True Negative(TN):實際是負樣本且預測為負樣本

混淆矩陣(Confusion Matrix)
混淆矩陣(Confusion Matrix)

其中TP和TN代表預測正確,所以前面提到的準確率(Accuracy)又可表示為

Accuracy = (TP+TN) / (TP+FP+FN+TN)

若是用在多元分類模型,Confusion Matrix的橫軸一樣可以是實際值,縱軸是預測值,可以瞭解每個類別的預測準確率,下圖為多元分類的混淆矩陣。

Confusion Matrix (Source from Internet)

三、F1 Score

計算F1 Score之前,需要先知道兩個指標:

1. Precision:Positive Predictive Value,所有被預測為正樣本中,實際預測正確的比例,用來判斷預測為正樣本的可信度。

Precision = TP /( TP+FP)

2. Recall:Sensitivity,True Positive Rate,所有正樣本中,被預測正確的比率,用來判斷有多少正樣本被偵測出來。

Recall = TP / (TP+FN)

3. F1 Score:The harmonic mean of Precision and Recall,同時考量Precision和Recall的一個綜合指標。

F1-score = 2 * Precision * Recall / (Precision + Recall)

四、ROC curve and AUC

ROC curve (Receiver Operating Characteristic Curve)是由FPR與TPR在不同閥值(Threshold)下所畫出的曲線。

1. FPR(False Positive Rate):1 - Specificity,其中Specificity為正確判斷出負樣本的比率,FPR越低,代表越能夠正確判斷負樣本,表現越好。

FPR = 1 - Specificity = 1 - TN / (TN+FP) = FP / (TN+FP)

2. TPR(True Positive Rate):Sensitivity = Recall,也就是正確判斷出正樣本的比率,TPR越高,代表越能夠判斷出正樣本,表現越好。

3. 閥值(Threshold):當預測出某類別的概率時,若此概率大於Threshold值就會判斷為正樣本,反之則為負樣本。ROC curve就是在不同Threshold下所畫出來的曲線,Threshold越接近於0,TPR和FPR越接近於1,而Threshold越接近於1,TPR和FPR越接近於0。

4. AUC(Area Under Curve):ROC curve下的面積,AUC越大,正確率越高。AUC的值會落在0~1之間:
0.5 < AUC < 1:優於隨機預測,有預測能力
AUC = 0.5:跟隨機猜測差不多,代表模型沒有預測能力
AUC < 0.5:比隨機猜測還差,若使用反預測,就會優於隨機猜測

ROC curve and AUC (Source from Internet)

五、NDCG(Normalized Discounted Cumulative Gain)

前面有提到Top-K Accuracy,只要前K個排名有預測正確就計算準確率,但這項並沒有考慮到排序問題,NDCG就是個可以用來衡量排序準確性的指標,NDCG考慮的部分有兩項:

1. 較高相關的物件(類別)被排名在越前面,NDCG的分數越高
2. 加入正規化(Normalized),因為不同模型產生的排序清單長度可能不一致,所以需要有個統一的標準,也就是在最理想情況下的物品排序,來做正規化,就可以計算出NDCG。詳細說明可參考這篇文章

以上是5個分類模型的評估指標,在不同的專案,可以根據不同情況來尋找適合的指標,以作為模型調整的方向。

--

--

Irene Chen

哈囉,我是Irene,這裡會記錄我的學習筆記,一起學習吧!|GitHub https://github.com/imirenechen|Learning instagram.com/imirene.co/