機器學習評價指標


 

 

metrics.png
 

 

wiki.png

機器學習度量指標

分類評估指標

TN TP FN FP

TP:預測為正向(P),實際上預測正確(T),即判斷為正向的正確率
TN:預測為負向(N),實際上預測正確(T),即判斷為負向的正確率
FP:預測為正向(P),實際上預測錯誤(F),誤報率,即把負向判斷成了正向
FN:預測為負向(N),實際上預測錯誤(F),漏報率,即把正向判斷稱了負向

  Positive Negative
True True Positive(TP) 真陽性 True Negative(TN) 真陰性
False False Positive(FP) 假陽性 False Negative(FN) 假陰性

准確率(Accuracy)

ACC= \frac{TP+TN}{TP+TN+FP+FN}

【注意】當分類問題是平衡(blanced)的時候,准確率可以較好地反映模型的優劣程度,但不適用於數據集不平衡的時候。

例如:分類問題的數據集中本來就有97% 示例是屬於X,只有另外3%不屬於X,所有示例都被分類成X的時候,准確率仍然高達97%,但這沒有任何意義。

精確率Precision

Precision = \frac{TP}{TP+FP}

查准率 即在預測為正向的數據中,有多少預測正確。【預測結果為真的數據】

召回率Recall

Recall=TP/(TP+FN)

查全率 即在所有正向的數據中,有多少預測正確。【樣本原來真的數據】

F1-Score

F1 = \frac{2*Precision*Recall}{Precision+Recall}

F1值為精確率和召回率的調和均值。

ROC(Receiver Operating Characteristic)曲線

先了解以下幾個概念

真正率(True Positive Rate, TPR),又名靈敏度(Sensitivity):分類正確的正樣本個數占整個正樣本個數的比例。

TPR = \frac{TP}{TP+FN}

假負率(False Negative Rate, FNR):分類錯誤的正樣本的個數占正樣本的個數的比例。

FNR = \frac{FN}{TP+FN}

假正率(False Positive Rate, FPR):分類錯誤的負樣本個數占整個負樣本個數的比例。

FPR = \frac{FP}{FP+TN}

真負率(True Negative Rate, TNR):分類正確的負樣本的個數占負樣本的個數的比例。

TNR = \frac{TN}{FP+TN}


ROC曲線是以假正率(FP_rate)和真正率(TP_rate)為軸的曲線,ROC曲線下面的面積我們叫做AUC。
AUC(Area Under Curve) 被定義為ROC曲線下的面積,顯然這個面積的數值不會大於1。
如下圖所示:

 

 

ROC-AUC

曲線與FP_rate軸圍成的面積(記作AUC)越大,說明性能越好,即圖上L2曲線對應的性能優於曲線L1對應的性能。即:曲線越靠近A點(左上方)性能越好,曲線越靠近B點(右下方)曲線性能越差。

PR(precision recall)曲線

表現的是precision和recall之間的關系。

回歸評估指標

測試數據集中的點,距離模型的平均距離越小,該模型越精確。

使用平均距離,而不是所有測試樣本的距離和,因為距離和受樣本數量的影響

平均絕對誤差 MAE

平均絕對誤差MAE(Mean Absolute Error)又被稱為 范數損失(l1-norm loss)。

MSE = \frac{1}{m}\sum_{i=1}^{m}\left | y^{i}-\bar{y} \right|

平均平方誤差 MSE

平均平方誤差 MSE(Mean Squared Error)又被稱為 范數損失(l2-norm loss)。

MSE = \frac{1}{m}\sum_{i=1}^{m}\left ( y^{i}-\bar{y} \right )^2

RMSE:均方根誤差

均方根誤差RMSE(Root Mean Squared Error)
RMSE = \sqrt{\frac{1}{m}\sum_{i=1}^{m}\left ( y^{i}-\bar{y} \right )^2}

RMSE和MAE有局限性:同一個算法模型,解決不同的問題,不能體現此模型針對不同問題所表現的優劣。因為不同實際應用中,數據的量綱不同,無法直接比較預測值,因此無法判斷模型更適合預測哪個問題。

R-squared

  • 原始數據和均值之差的平方和
    SS_{tot} = \frac{1}{m}\sum_{i=1}^{m}\left ( y^{i}-\bar{y} \right )^2

  • 預測數據與原始數據均值之差的平方和
    SS_{res} = \sum_{i=1}^{m}(y^i-f(x^i))^2

R^2 = 1 - \frac{SS_{res}}{SS_{tot}}

上面公式中SS_{tot}表示測試數據真實值的方差(內部差異);SS_{res}代表回歸值與真實值之間的平方差異(回歸差異),因此R-squared既考量了回歸值與真實值的差異,也兼顧了問題本身真實值的變動。【模型對樣本數據的擬合度】

R-squared 取值范圍(-\infty, 1],值越大表示模型越擬合訓練數據;最優解是1;當模型 預測為隨機值的時候,有可能為負;若預測值恆為樣本期望,R2為0。

from sklearn.metrics import mean_squared_error #均方誤差 from sklearn.metrics import mean_absolute_error #平方絕對誤差 from sklearn.metrics import r2_score#R square 

聚類性能指標

ARI (Adjusted Rand index)

若樣本數據本身帶有正確的類別信息,可用ARI指標進行評估。

from sklearn.metrics import adjusted_rand_score() 

輪廓系數 Silhouette Cofficient

若樣本數據沒有所屬類別,可用輪廓系數來度量聚類結果的質量。

from sklearn.metrics import silhouette_score 

sklearn里的常見評測指標

Scoring(得分) Function(函數) Comment(注解)
Classification(分類)    
‘accuracy’ metrics.accuracy_score  
‘average_precision’ metrics.average_precision_score  
‘f1’ metrics.f1_score for binary targets(用於二進制目標)
‘f1_micro’ metrics.f1_score micro-averaged(微平均)
‘f1_macro’ metrics.f1_score macro-averaged(微平均)
‘f1_weighted’ metrics.f1_score weighted average(加權平均)
‘f1_samples’ metrics.f1_score by multilabel sample(通過 multilabel 樣本)
‘neg_log_loss’ metrics.log_loss requires predict_proba support(需要 predict_proba 支持)
‘precision’ etc. metrics.precision_score suffixes apply as with ‘f1’(后綴適用於 ‘f1’)
‘recall’ etc. metrics.recall_score suffixes apply as with ‘f1’(后綴適用於 ‘f1’)
‘roc_auc’ metrics.roc_auc_score  
Clustering(聚類)    
‘adjusted_mutual_info_score’ metrics.adjusted_mutual_info_score  
‘adjusted_rand_score’ metrics.adjusted_rand_score  
‘completeness_score’ metrics.completeness_score  
‘fowlkes_mallows_score’ metrics.fowlkes_mallows_score  
‘homogeneity_score’ metrics.homogeneity_score  
‘mutual_info_score’ metrics.mutual_info_score  
‘normalized_mutual_info_score’ metrics.normalized_mutual_info_score  
‘v_measure_score’ metrics.v_measure_score  
Regression(回歸)    
‘explained_variance’ metrics.explained_variance_score  
‘neg_mean_absolute_error’ metrics.mean_absolute_error  
‘neg_mean_squared_error’ metrics.mean_squared_error  
‘neg_mean_squared_log_error’ metrics.mean_squared_log_error  
‘neg_median_absolute_error’ metrics.median_absolute_error  
‘r2’ metrics.r2_score  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM