機器學習中的評價指標

不同的機器學習任務有著不同的性能評價指標。例如,分類問題,可以使用準確率 (Accuracy)、對數(shù)損失函數(shù) (log-loss)、AUC等評價方法。實數(shù)序列數(shù)據(jù)預測問題,可以使用平方根誤差 (root mean square error, RMSE) 等指標;又如在搜索引擎中進行與查詢相關(guān)的項目排序中,可以使用精確率-召回率 (precision-recall)。本文將介紹一些在機器學習中常見的評價指標。

混淆矩陣

混淆矩陣是對分類的結(jié)果進行詳細描述的一個表,無論是分類正確還是錯誤,并且對不同的類別進行了區(qū)分,對于二分類則是一個2x2的矩陣,對于n分類則是nxn的矩陣。對于二分類,第一行是真實類別為“Positive”的記錄個數(shù)(樣本個數(shù)),第二行則是真實類別為“Negative”的記錄個數(shù),第一列是預測值為“Positive”的記錄個數(shù),第二列則是預測值為“Negative”的記錄個數(shù)。如下表所示:


image.png

準確率(Accuracy)

分類正確的樣本個數(shù)占所有樣本個數(shù)的比例:
Accuracy = \frac{TP + TN}{TP + FN + FP + TN}
準確率看起來非常簡單。然而,準確率評價指標沒有對不同類別進行區(qū)分,即其平等對待每個類別。但是這種評價有時是不夠的,比如有時要看類別0與類別1下分類錯誤的各自個數(shù),因為不同類別下分類錯誤的代價不同,即對不同類別的偏向不同,比如有句話為“寧可錯殺一萬,不可放過一千“就是這個道理,例如在病患診斷中,診斷患有癌癥實際上卻未患癌癥(False Positive)與診斷未患有癌癥的實際上卻患有癌癥(False Negative)的這兩種情況的重要性不一樣。另一個原因是,可能數(shù)據(jù)分布不平衡,即有的類別下的樣本過多,有的類別下的樣本個數(shù)過少,兩類個數(shù)相差較大。這樣,樣本占大部分的類別主導了準確率的計算,為了解決這個問題,對準確率進行改進,得到平均準確率。

精確率(Precision)

分類正確的正樣本個數(shù)占分類起所有的正樣本個數(shù)的比例:
Precision = \frac{TP}{TP + FP}

召回率 (Recall)

分類正確的正樣本個數(shù)占正樣本個數(shù)的比例:
Recall = \frac{TP}{TP + FN}

F1-Score

精確率和召回率的調(diào)和平均值,它的值更接近于 Precision 和 Recall 中較小的值:
F1 = \frac{2 * precision* recall}{precision+recall}

對數(shù)損失函數(shù)(log_loss)

在分類輸出中,若輸出不再是0、1,而是實數(shù)值,即屬于每個類別的概率,那么可以使用 Log-loss 對分類結(jié)果進行評價。這個輸出概率表示該記錄所屬的其對應的類別的置信度。比如如果樣本本屬于類別 0,但是分類器則輸出其屬于類別1的概率為 0.51,那么這種情況認為分類器出錯了。該概率接近了分類器的分類的邊界概率 0.5。Log-loss是一個軟的分類準確率度量方法,使用概率來表示其所屬的類別的置信度。Log-loss具體的數(shù)學表達式:
log\_loss = - \frac{1}{N}\sum_{i=1}^{N}(y_i * \log {p_i} + (1-y_i)*\log{(1-p_i)})
其中,yi 是指第 i 個樣本所屬的真實類別 0 或者 1,pi 表示第 i 個樣本屬于類別 1的概率,這樣上式中的兩個部分對于每個樣本只會選擇其一,因為有一個一定為 0,當預測與實際類別完全匹配時,則兩個部分都是 0,其中假定 0log0=0。
??從數(shù)學上來看,Log-loss的表達式是非常漂亮的。我們仔細觀察可以發(fā)現(xiàn),其信息論中的交叉熵 (Cross Entropy,即真實值與預測值的交叉熵),它與相對熵(Relative Entropy,也稱為KL距離或KL散度, Kullback–Leibler divergence.)也非常像。信息熵是對事情的不確定性進行度量,不確定越大,熵越大。交叉熵包含了真實分布的熵加上假設與真實分布不同的分布的不確定性。因此,log_loss 是對額外噪聲 (extra noise) 的度量,這個噪聲是由于預測值域?qū)嶋H值不同而產(chǎn)生的。因此最小化交叉熵,便是最大化分類器的準確率。

AUC (Area under the Curve (Receiver Operating Characteristic, ROC))

AUC的全稱是Area under the Curve,即曲線下的面積,這條曲線便是ROC曲線,全稱為the Receiver Operating Characteristic 曲線。ROC 曲線描述分類器的True Positive Rate(TPR,分類器分類正確的正樣本個數(shù)占總正樣本個數(shù)的比例)與False Positive Rate(FPR,分類器分類錯誤的負樣本個數(shù)占總負樣本個數(shù)的比例)之間的變化關(guān)系。


image.png

如上圖,ROC 曲線描述 FPR 不斷變化時,TPR 的值,即 FPR 與 TPR 之間的關(guān)系曲線。顯而易見,最好的分類器便是 FPR=0%,TPR=100%,但是一般在實踐中一個分類器很難會有這么好的效果,即一般 TPR 不等于 1,F(xiàn)PR 不等于 0 的。當使用 ROC 曲線對分類器進行評價時,如果對多個分類器進行比較時,如果直接使用 ROC 曲線很難去比較,只能通過將 ROC 分別畫出來,然后進行肉眼比較,那么這種方法是非常不便的,因此我們需要一種定量的指標去比較,這個指標便是 AUC 了,即 ROC 曲線下的面積,面積越大,分類器的效果越好,AUC 的值介于 0.5 到 1.0 之間。

具體如何描繪ROC曲線,如在二分類中,我們需要設定一個閾值,大于閾值分類正類,否則分為負類。因此,我們可以變化閾值,根據(jù)不同的閾值進行分類,根據(jù)分類結(jié)果計算得到ROC空間中的一些點,連接這些點就形成ROC曲線。ROC曲線會經(jīng)過(0,0)與(1,1)這兩點,實際上這兩點的連線形成的ROC代表一個隨機分類器,一般情況下分類器的ROC曲線會在這條對角連線上方。

RMSE (平方根誤差)

回歸模型中最常用的評價模型便是 RMSE(root mean square error,平方根誤差),其又被稱為 RMSD(root mean square deviation),其定義如下:
RMSE = \sqrt{\frac{\sum_{i=0}^{n}(y_i - \tilde{y _i)}^2}{n}}
其中,yi 是第 i 個樣本的真實值,yi^ 是第 i 個樣本的預測值,n 是樣本的個數(shù)。該評價指標使用的便是歐式距離。RMSE 雖然廣為使用,但是其存在一些缺點,因為它是使用平均誤差,而平均值對異常點(outliers)較敏感,如果回歸器對某個點的回歸值很不理性,那么它的誤差則較大,從而會對RMSE的值有較大影響,即平均值是非魯棒的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容