機器學習中常用評估指標匯總

評估指標 Evaluation metrics 可以說明模型的性能,辨別模型的結果。

我們建立一個模型后,計算指標,從指標獲取反饋,再繼續改進模型,直到達到理想的準確度。在預測之前檢查模型的準確度至關重要,而不應該建立一個模型后,就直接將模型應用到看不見的數據上。

今天先來簡單介紹幾種回歸和分類常用的評估方法。


回歸:

均方誤差:

其中 D 為數據分布,p 為概率密度函數。

from sklearn.metrics import mean_squared_error
y_true = [3, -0.5, 2, 7]
y_pred = [2.5, 0.0, 2, 8]
mean_squared_error(y_true, y_pred)

0.375

分類:

二分類 and 多分類:

錯誤率

精度


二分類
混淆矩陣:
from sklearn.metrics import confusion_matrix
pipe_svc.fit(X_train, y_train)
y_pred = pipe_svc.predict(X_test)
confmat = confusion_matrix(y_true=y_test, y_pred=y_pred)
print(confmat)

[[71  1]
[ 2 40]]

單純用 錯誤率,精度 是無法知道下面的問題時:

查準率
應用場景-當你想知道“挑出的西瓜中有多少比例是好瓜”

from sklearn.metrics import precision_score
from sklearn.metrics  import recall_score, f1_score
print('Precision: %.3f' % precision_score(y_true=y_test, y_pred=y_pred))

Precision: 0.976

查全率:
應用場景-當你想知道“所有好瓜盅有多少比例被挑出來了”

print('Recall: %.3f' % recall_score(y_true=y_test, y_pred=y_pred))

Recall: 0.952

P-R 圖:
當一個學習器的 P-R 曲線被另一個學習器的包住,那么后者性能優于前者。
有交叉時,需要在具體的查準率或者查全率下進行比較。

平衡點 (Break Event Point BEP):
即上圖中三個紅點。
綜合考慮查準率,查全率的度量
當 查準率=查全率 時的點,誰大誰比較優。

F1 度量:
也是綜合考慮查準率,查全率的度量,比 BEP 更常用:

print('F1: %.3f' % f1_score(y_true=y_test, y_pred=y_pred))

F1: 0.964

Fβ:
可以表達對查準率,查全率的不同重視度,
β > 1 則查全率有更大影響,β < 1 則查準率有更大影響,β = 1 則為 F1。


One vs. All (OvA) 分類問題

這時會在 n 個二分類問題上綜合考慮查準率,查全率。

宏~ :先在每個混淆矩陣上計算率,再求平均

宏查準率

宏查全率

宏 F1

微~ :先將各個混淆矩陣上對應元素求平均,再計算率

微查準率

微查全率

微 F1


ROC :
反映敏感性和特異性連續變量的綜合指標,roc曲線上每個點反映著對同一信號刺激的感受性。

縱軸為 TPR 真正例率,預測為正且實際為正的樣本占所有正例樣本的比例
橫軸為 FPR 假正例率。預測為正但實際為負的樣本占所有負例樣本的比例

對角線對應的是 “隨機猜想”


當一個學習器的 ROC 曲線被另一個學習器的包住,那么后者性能優于前者。
有交叉時,需要用 AUC 進行比較。

AUC:
ROC 曲線下的面積

import numpy as np
from sklearn.metrics import roc_auc_score
y_true = np.array([0, 0, 1, 1])
y_scores = np.array([0.1, 0.4, 0.35, 0.8])
roc_auc_score(y_true, y_scores)

0.75

代價敏感

現實任務中,當不同類型的錯誤具有不同的影響后果時,它們的代價也是不一樣的。

此時,可以設定
代價矩陣 cost matrix:
如果將第 0 類預測為 第 1 類造成的損失更大,則 cost01 > cost10,相反將第 1 類預測為 第 0 類造成的損失更大,則 cost01 < cost10 :

則帶有“代價敏感”的錯誤率為:

其中 0 為正類,1 為反類,D+ 為正例子集合,D- 為反例子集合。

代價曲線 cost curve:
非均等代價下,反應學習器的期望總體代價。
橫軸為取值為[0,1]的正例概率代價:

縱軸為取值為[0,1]的歸一化代價:


其中 p 為正例的概率,FPR = 1 - TPR。


資料:
機器學習
Python Machine Learning


推薦閱讀 歷史技術博文鏈接匯總
http://www.lxweimin.com/p/28f02bb59fe5
也許可以找到你想要的:
[入門問題][TensorFlow][深度學習][強化學習][神經網絡][機器學習][自然語言處理][聊天機器人]

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容