模型評估指標:分類

DashuBigtree
數據領航員
Published in
10 min readFeb 11, 2023

在分類的機器學習模型中,當我們訓練完模型之後會得到一組預測值,但是我們卻無法確認這套訓練完的模型是否足以成熟到讓我們使用,所以這時候就需要有一些成效指標來去客觀的評估製作出來的模型。

眾多機器學習當中主要用來分類的模型有KNN/ SVM/ Logistic Regression/ Decision Tree等等,這些模型所預測出的值一定不可能百分之百正確,所以通常都會把預測結果總結出一張「混淆矩陣」來看出預測值和實際值得分布狀況。

在了解分類指標以前需要先了解混淆矩陣重要的四個象限: TP/ FP/ FN/ TN。

TP: 模型預測為正確,且實際狀況也正確

FP: 模型預測為正確,但實際狀況是失敗

FN: 模型預測為失敗,但實際狀況是正確

TN: 模型預測為失敗,且實際狀況也失敗

要畫出一個混淆矩陣,就是透過實際狀況和模型預測值去做資料的分佈視覺化,透過這樣的分佈比較再搭配以下各種指標的計算就可以達到客觀的分析模型好壞。

在分類指標當中最常見的有以下指標:

準確率( Accuracy)

預測結果和實際狀況相同,其佔全部預測狀況的機率。

這項指標主要表示模型判斷正確的能力,不管實際狀況為正確或是失敗都可以被模型正確判斷出來。

圖片來源:https://medium.com/analytics-vidhya/confusion-matrix-accuracy-precision-recall-f1-score-ade299cf63cd

靈敏性(Recall)

「實際」為正確的樣本中,被預測為正確結果的機率。

使用情境假設:比如現在我想知道在所有交易資料中,實際有洗錢行為的交易是哪幾筆。那要去判斷我們的模型好壞時就可以使用Recall來當作指標,當Recall愈高代表著模型可以精準地預測出是洗錢行為的交易,也就是說Recall 愈高,模型幾乎可以把資料集中的目標資料找出來。

(Recall = 實際狀況正確且預測為正確/ 實際狀況正確)

圖片來源:https://medium.com/analytics-vidhya/confusion-matrix-accuracy-precision-recall-f1-score-ade299cf63cd

註:FN代表實際為正確

精確率( Precision)

「所有被預測」為正確的資料,實際為正確結果的機率

此指標主要證明模型可以正確的分出「結果為正確」的資料。換句話說,這項指標主要是專注在模型判斷實際狀況為正確的能力。

(Precision = 實際狀況正確且預測為正確/ 預測為正確結果)

圖片來源:https://medium.com/analytics-vidhya/confusion-matrix-accuracy-precision-recall-f1-score-ade299cf63cd

註:FP代表實際為失敗,但被預測為正確

小結:

Recall 和 Precision非常的相似,兩者只差在分母使用的象限不一樣,但也因為使用的象限不一樣,要使用Recall還是Precision的時候就要看我們想要的使用狀況。第一,若是想要知道模型誤判成正確結果的狀況時,就需要使用Precision來判斷,當Precision值愈高就代表模型誤判程度比較低,相反地Precision值愈低,模型誤判的程度就比較高,因為FP筆數比較多。第二,若是想了解模型抓取目標資料的能力,那就可以使用Recall當作指標,Recall愈高就代表模型可以抓出比較多筆我們想要的目標資料,相反的,Recall愈低就表示模型抓不太出我們想要的目標。

ROC 曲線

X軸:False positive rate (FPR)= FP/ FP+TN

Y軸:True positive rate(TPR)= TP/ TP+FN

ROC曲線通常會畫出好幾條來去做比較,是透過在一種模型之下,不同閾值的設定得到的TPR和FPR所繪製的曲線。所以當我們想要知道哪一種模型比較適合我們的資料時,就要去找誤判率(也就是False positive rate)比較低的曲線,換句話說,在ROC圖上就要去找出哪一條曲線比較會往左上角移動,相反地,當ROC線基本上和對角線重疊,那就代表這條線對應的模型對於資料預測一點幫助都沒有。

AUC(Area Under Curve)

這個方法算是輔助ROC曲線判斷模型好壞的工具,此方法是透過ROC曲線下的機率面積來表示,而AUC數值的範圍從0到1,數值愈大愈好。

AUC數值一般的判別規則:
AUC=0.5 (no discrimination 無鑑別力),ROC剛好是對角線。
0.7≦AUC≦0.8 (acceptable discrimination可接受的鑑別力)
0.8≦AUC≦0.9 (excellent discrimination優良的鑑別力)
0.9≦AUC≦1.0 (outstanding discrimination極佳的鑑別力)

PR 曲線

X軸:True positive rate( Recall) = TP/ TP+FN

Y軸:Positive predict rate( Precision) = TP/ TP+FP

PR曲線的畫法和ROC曲線非常相似,一樣可以透過不同模型和不同閾值的設定來找出比較適合的機器學習方式。而我們要找的就是Recall值愈高且Precision值愈高的曲線,也就是說要找到一條愈靠近右上角的曲線。

圖片來源:https://blog.csdn.net/weixin_43222937/article/details/90903905

F1分數

F-measure

F1-Score

圖片來源:https://zh.m.wikipedia.org/zh-tw/F-score

F1-Score是F-measure中的β參數設定為1,代表著我們假設Precision指標和Recall指標兩個權重相同,會使用到F1分數的情境大多都是發生在「PR曲線圖」難以用圖形來判斷哪一個模型狀況比較好,承接上一段所提到:我們要評估一個模型效果最好的狀況就是Precision值和Recall值都很高,套用到F1-Score公式時分數會介於0~1之間。

Kappa

這項指標通常會使用在資料分類超過二元的狀況下,再加上需要分類的資料量非常龐大,如果只以二元的觀點只去看整體的預測準確率,或者單一類別(像是實際為正確且預測也為正確)中預測的準確率,這樣都有可能會因為某一大類資料量特別大,那他的準確率自然就不會被一些錯誤預測給稀釋,此時再看整體正確率的時後就會有問題,因此Kappa指標就是為了要避免發生這種「大者恆大影響整體效果」。

Po:預測結果和實際狀況相同的資料筆數/總資料筆數

Pe:Σ(實際為i類別佔整體資料筆數的比例*預測為i類別佔據整體資料筆數的比例)

例子:

總筆數:239+16+6+21+73+9+16+4+280=664

Po: 239+73+280/ 664 = 0.89

Pe:

[(239+16+6) / 664]*[(239+21+16)/ 664] + [(21+73+9)/ 664]*[(16+73+4)/ 664] + [(16+4+280)/ 664]*[(6+9+280)/ 664] = 0.3883

Kappa = 0.89–0.3883/ 1- 0.3883 = 0.8201

總結:

在以上眾多分類標準當中有些指標看起來會很相似,像是ROC曲線和PR 曲線就時常被拿來比較,ROC 比較適合使用正負樣本分佈較平均的數據,因為其X軸是使用False Positive Rate,所以當負樣本的數量太低,這樣算出來的False Positive Rate是無法和True Positive Rate互相抗衡,那這樣ROC曲線繪製出來自然而然會比較靠近左上角,但是PR曲線則都可以,畢竟XY軸主要專注在正確樣本的預測和實際互相比較。

總而言之,當我們難以用ROC曲線或PR曲線的圖形判斷模型之間的好壞時,我們就需要透過數值化也就是AUC搭配ROC曲線或是F1 Score搭配PR曲線來去判讀,那選用的關鍵就是需要考慮資料集正負樣本的分佈是否平均,所以在選用方法以前要盡量去了解資料集分佈會比較好。

教育部補助大專院校STEM領域及女性研發人才培育計畫目標為建構一個「以智慧物聯技術與實務應用為基礎的教育環境和實作場域」,並規劃出符合此STEM教育領域的創新特色課程,以畢業前進入企業實習的方式,讓學生了解相關產業界所面對的問題,再輔以業界實作場域的教育訓練活動,共同帶領學生發展出動手做、判斷與解決問題的相關技能;本計畫也規劃讓學生以專題實作的組隊方式,跟業界協力領導學生對外參與智慧物聯技術的應用競賽,不僅可以累積學生實務開發的能力,更能激發其潛能來幫助企業解決所面臨的難題。

Data Science Meetup 台灣資料科學社群的使命是「為資料科學人士與企業創建經濟機會」。我們相信大數據蘊藏著巨量的信息和價值,如何處理好大數據並發掘其潛藏的商業價值,就要靠資料科學有效的應用。21世紀是資料科學決勝時代,我們社群將為大家提供與資料科學相關的最新技術和資訊實戰攻略,並透過全球業界人士和學者幫助相關職業規劃與挑戰,社群活動包含

  • 台北實體版聚
  • 線上版聚
  • Mentorship Program

歡迎加入我們社團瞭解更多資訊: https://www.facebook.com/groups/datasciencemeetup/

--

--

DashuBigtree
數據領航員

東吳大學資料科學系|分享自己學習筆記