分類器的好壞取決于用來評價它的度量指标。如果選擇了錯誤的度量來評估模型,那麼很可能選擇了一個表現糟糕的模型,或者更壞的情況下,對模型的預期性能産生了誤導。
在應用機器學習中,選擇一個合适的度量通常具有挑戰性,對于不平衡分類問題尤其困難。首先,因為廣泛使用的大多數指标都假定類分布是均衡的,而不平衡分類,通常不是所有的類(因此也不是所有的預測誤差)都是相等的。
在本教程中,你将學習用于不平衡分類的指标。
教程概述
本教程分為三個部分:
評估指标的挑戰
評估指标量化預測模型的性能。這通常涉及到在數據集的訓練集上訓練模型,使用模型對測試數據集進行預測,然後将預測值與測試數據集的實際值進行比較。
對于分類問題,評估指标包括比較實際的類标簽和預測的類标簽,或者解釋類标簽的預測概率。
選擇一個模型,是由評價指标指導的一個搜索問題。用不同的模型進行實驗,每個實驗的結果都用一個度量值來量化。
有一些标準指标被廣泛用于評估分類預測模型,如分類Accuracy或分類error。标準度量在大多數問題上都能很好地工作,這也是它們被廣泛采用的原因。但是所有的度量指标都對問題或者問題中什麼是重要的做出假設。因此,必須選擇一個你認為最能抓住問題重要性的評估指标,這使得選擇模型評估度量指标具有挑戰性。
當類分布出現偏斜時,這一挑戰變得更加困難。因為,當類不平衡或嚴重不平衡時,如少數類與多數類的比例為1:100或1:1000時,許多标準指标就會變得不可靠,甚至具有誤導性。例如,對一個嚴重不平衡的分類問題采用分類準确性作為評估指标可能會産生危險的誤導。
重要的是,當使用不平衡分類時,通常需要不同的評估指标。标準的評價指标一樣假定所有的類同等重要,不平衡分類問題通常認為少數類的分類錯誤比多數類的分類錯誤更重要。這樣的性能指标可能需要關注少數類,這就具有挑戰性,因為少數類,我們缺乏樣本訓練一個有效的模型。
分類器評價指标的分類
在評估分類器模型時,有數十種度量标準可供選擇,如果考慮到學者們提出的所有度量标準的熱門指标,則可能有數百種。
為了掌握可以選擇的度量标準,我們将使用Cesar Ferri等人在他們2008年的論文《分類性能度量的實驗比較》中提出的分類法。2013年出版的《不平衡學習》一書也采用了這種方法,我認為它很有用。
我們可以将評估指标分為三個有用的組:
這種劃分很有用,因為從業人員用于分類器(特别是不平衡分類)的指标非常适合分類法。
1).不平衡分類的阈值指标
阈值指标是量化分類預測誤差的指标。也就是說,它們被設計用來總結在測試數據集中預測标簽與實際标簽不匹配時的占比或比率。
也許最廣泛使用的阈值度量是分類準确度(accuracy)
Accuracy = Correct Predictions / Total Predictions
盡管被廣泛使用,但其Accuracy幾乎普遍不适合用于不平衡分類。原因是,隻有預測多數類的無效模型也能夠獲得較高的準确性(或低誤差)。
對于不平衡分類問題,多數類通常被稱為陰性樣本,少數類通常被稱為陽性樣本。
對于二分類問題,使用混淆矩陣中的術語可以更好地理解大多數阈值指标。但這并不意味着指标隻局限于在二元分類中使用。混淆矩陣不僅提供了對預測模型性能更深入的了解,而且還提供了對哪些類的預測是正确的,哪些是錯誤的,以及發生了哪些類型的錯誤。在這種類型的混淆矩陣中,表中的每個單元格都有一個特定且易于理解的名稱,總結如下:
| Positive Prediction | Negative Prediction
Positive Class | True Positive (TP) | False Negative (FN)
Negative Class | False Positive (FP) | True Negative (TN)
有兩組指标可能對不平衡分類有用,因為它們專注于一個類别。它們是Sensitivity-Specificity和Precision-recall。
Sensitivity-Specificity 指标
Sensitivity是指真陽率,并總結了陽性類的預測效果。
Sensitivity = True Positive / (True Positive False Negative)
特異性是敏感性的補充,或真陰性率,并總結陰性類的預測效果。
Specificity = True Negative / (False Positive True Negative)
對于不平衡分類,敏感性可能比特異性更有趣。敏感性和特異性可以結合成一個單一的分數,平衡這兩個問題,稱為幾何平均數或G-mean。
G-Mean = sqrt(Sensitivity * Specificity)
Precision-Recall指标
precision概括了模型預測陽性(正類)樣本中屬于正類的占比。
Recall是指真陽率,計算同sensitivity。
精确度和召回率可以合并成一個分數,以平衡這兩方面的問題,稱為F Score。
F Score = (2 * Precision * Recall) / (Precision Recall)
F Score是一種常用的不平衡分類指标。
其他的阈值指标
上面介紹的可能是最受歡迎的指标,盡管還存在其他許多其他指标。其他的一些指标包括Kappa、宏觀平均精度、平均類别加權精度、優化精度、調整的幾何平均值、平衡精度等等。
2)不平衡分類的排名指标
排名指标更關注通過分類器分離類的有效性來評估分類器。這些度量标準要求分類器預測一個分數或類别的概率。
基于這個分數,可以使用不同的阈值來測試分類器的有效性。那些在阈值範圍内保持良好得分的模型将具有良好的類分離有效性,并将有更高的排名。
最常用的排名指标是ROC曲線。ROC是一個首字母縮略詞,意思是受試者的工作特征。ROC曲線是一個診斷圖,通過計算模型在不同阈值下的一組預測的假陽率和真陽率來總結模型的行為。
真陽率是召回率或敏感度。
True Positive Rate= true positive / (true positive false negative)
假陽率為:
False Positive Rate = False Positive / (False Positive True Negative)
每個阈值是圖上的一個點,這些點連接起來形成一條曲線。無效的分類器(例如,在所有阈值下預測為多數類)由左下角到右上角的對角線表示。這條線以下的任何點都無效分類器表現更糟。一個完美的模型是圖上右上角的一個點。
ROC曲線下的面積(ROC-AUC)可以計算出來,并提供一個單一的得分來總結整個圖,可以用來比較不同的模型。無效的分類器ROC-AUC的得分是0.5,而一個完美的分類器AUC得分為1。
ROC曲線和ROC AUC雖然總體上是有效的,但在嚴重的類失衡情況下,特别是當少數類中的樣本數量較少時,ROC曲線和ROC AUC可能有點樂觀。
ROC曲線的另一種替代是(PR)精确召回曲線,盡管它關注的是分類器在少數類上的性能。
同樣,模型對一組預測使用不同的阈值,在這種情況下,計算精度和召回。這些點形成一條曲線,在一系列不同的阈值下表現更好的分類器的排名将會更高。
無效分類器将是圖上的一條水平線,其精度與數據集中陽性樣本的數量成比例。對于一個平衡的數據集,這将是0.5。一個完美的分類器由右上角的一個點表示。
與ROC曲線一樣,在評估單個分類器時,準确率召回曲線是一個有用的診斷工具,但在比較分類器時具有挑戰性。和ROC AUC一樣,我們可以計算曲線下的面積作為一個分數,并使用這個分數來比較分類器。在這種情況下,對少數類的關注使得精确召回AUC對于不平衡分類問題更有用。
PR AUC =曲線下的精确召回面積。
3)不平衡分類的概率指标
概率指标是專門設計來量化分類器預測中的不确定性。當我們對不正确和正确的标簽預測不太感興趣,而對模型預測的不确定性更感興趣,并懲罰那些非常确定的錯誤預測時,這些方法很有用。根據預測的概率評估模型需要對概率進行校準。
一些分類器使用概率框架進行訓練,例如最大似然估計,這意味着它們的概率已經校準。邏輯回歸就是一個例子。許多非線性分類器不是在概率框架下訓練的,因此在通過概率指标進行評估之前,它們的概率需要根據數據集進行校準。例如支持向量機和k近鄰。
評估預測概率的最常見指标是二分類的對數損失(或負對數似然),或更普遍地被稱為交叉熵。
對于一個二分類數據集,其期望值為y,預測值為yhat,計算方法如下:
logLoss = -((1 - y) * log(1 - yhat) y * log(yhat))
通過簡單的相加,分數可以推廣到多個類;例如:
log(yhat_c) = -(sum c in yhat_c * log(yhat_c))
該分數總結了兩個概率分布之間的平均差異。完美分類器的對數損失為0.0,較差的值為正,最大可以到無窮。
如何選擇評估指标
有大量的模型評估指标可供選擇。
考慮到選擇一個評估指标是如此重要,并且有幾十個甚至上百個指标可供選擇,你應該怎麼做呢?
也許最好的方法是與項目負責人溝通,并找出一個模型或一組預測最重要的内容。然後選擇一些似乎可以捕獲重要内容的指标,然後用不同的場景測試指标。
另一種方法可能是進行文獻回顧,并發現在處理相同類型問題的其他學者最常用的度量标準。這通常很有見地,但需要注意的是,有些研究領域可能會陷入群體思維,并采用一種可能非常适合大規模比較大量模型的度量标準,但在實踐中卻很難進行模型選擇。
還是不知道?
以下是一些建議:
我們可以把這些建議轉化為有用的圖表。
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!