機器學習的目標是使得我們模型的泛化能力足夠強,因此我們需要有衡量模型泛化能力的評價標準。對不同種類的機器學習問題,評價標準不一樣。回歸問題常用均方誤差(mse)、絕對誤差(mae)等評價指標,分類問題評價指標則較多,如下圖所示。本文主要講解分類問題的評價指標。
首先解釋幾個二分類問題中常用的概念:true positive, false positive, true negative, false negative。它們是根據真實類別與**類別的組合來區分的。
假設有一批測試樣本,只包含正例和反例兩種類別。則有:
精確率是針對我們模型**的結果而言的,它表示的是**為正的樣本中有多少是真正的正樣本;
故分子為tp,而**為正有兩種可能:真正(tp)和假正(fp),即為分母。
召回率是針對原始樣本而言的,表示樣本中的正例有多少被**正確了,故分母應表示所有的原始樣本;
f1值是精確率和召回率的調和均值,當p和r值都高時,f1值也會高。
roc全稱是「受試者工作特徵」(receiver operating characteristic)。對於計算roc,有三個重要概念:tpr,fpr,截斷點。
tpr即 true positive rate,表示真實的正例中,被**正確的比例,即tpr = tp/(tp+fn);
fpr即 false positive rate, 表示真實的反例中,被**正確的比例,即fpr = fp/(tn+fp);
很多ml演算法是為test樣本產生乙個概率**,然後將這個概率**值與乙個分類閾值(threhold)進行比較,若大於閾值則分為正類,反之為負類。這裡的閾值就是截斷點,比如對算出測試樣本a為正類的概率為0.3,低於截斷點0.5,於是將a分為負類。
截斷點取不同的值,tpr和fpr的計算結果也不同。將截斷點不同取值下對應的tpr和fpr結果作圖得到的曲線,就是roc曲線。橫軸是fpr,縱軸是tpr。
若比較兩個演算法的優劣,可以看哪個曲線能把另乙個完全包住;或者計算曲線的面積,即auc的值。
roc經常用於樣本類別不均衡的二分類問題。
from sklearn.metrics import roc_curve, auc
fpr, tpr, th =
roc_curve
(test_y, pred_y) # 得到一組fpr、tpr的值
roc_auc =
auc(fpr, tpr) # 計算auc的值
機器學習 評價指標整理
目錄 1.準確率 accuracy 2.召回率 recall 3.精確率 precision 4.召回率與精確率的關係 5.誤報率 fpr 與漏報率 fnr 準確率是指我們的模型 正確的結果所佔的比例。正式點說,準確率的定義如下 accuracy frac 對於二元分類,也可以根據正類別和負類別按如...
機器學習 評估方法 評價指標
在選擇模型的時候,我們會選擇好的模型,丟棄不好的模型。模型的好或者不好是根據評價指標來衡量的,這篇文章介紹了分類任務中幾種常用的評價指標,包括 錯誤率 error rate 和精度 accuracy 查準率 precision 查全率 recall 和f1 roc auc。錯誤率 error rat...
機器學習演算法系列(1)模型評價指標
平均絕對誤差 mean absolute error,mae 又被稱為l1範數損失 平均平方誤差 mean squared error,mse 又被稱為l2範數損失 二維混淆矩陣 結果 真實類別 正例反例 正例真正例 true positive tp 假反例 false negative fn 反例...