
Precision 精準度
from sklearn.metrics import precision_score
Recall 召回率
from sklearn.metrics import recall_score
F1值
from sklearn.metrics import f1_score
Confusion Matrix 混淆矩陣
from sklearn.metrics import confusion_matrix
ROC ROC曲線
from sklearn.metrics import roc
AUC ROC曲線下的面積
from sklearn.metrics import auc
1. 混淆矩陣
對于一個二分類問題,可以将訓練集的真實類别與模型預測得到的類别組合,得到以下四種類型:TP(True Positive),TN(True Nagetive),FP(False Positive),FN(False Nagetive)。所有的訓練集中的樣例都可以被分為這四種類型,組成一個混淆矩陣。
混淆矩陣(Confusion Matrix)是一個普遍适用的工具,它可以幫助我們更好地了解分類中的錯誤。混淆矩陣也稱誤差矩陣,是表示精度評價的一種标準格式,用n行n列的矩陣形式來表示,是對有監督學習分類算法準确率進行評估的工具。通過将模型預測的資料與測試資料進行對比,使用準确率,覆寫率和命中率等名額對模型的分類效果進行度量。 混淆矩陣是一個N X N矩陣,N為分類的個數。假如我們面對的是一個二分類問題,也就是N=2,我們就得到一個2 X 2矩陣,如下表所示。
顯示列名 統計不合格個數
def confusion_matrix(y_pred,y_true):
# y_pred, y_true =[1,0,1,0], [0,0,1,0]
from sklearn.metrics import confusion_matrix
import pandas as pd
# y_pred是預測标簽
matrix=confusion_matrix(y_true=y_true, y_pred=y_pred)
matrix=pd.DataFrame(matrix)
print(matrix)
# columns=['predict 1: %d'%y_pred.count(1),'predict 0: %d'%y_pred.count(0)]
columns=['predict 0: %d'%y_pred.count(0),'predict 1: %d'%y_pred.count(1)]
matrix.columns= columns
# print(x)
matrix.index.name = 'test_num%d'%len(y_pred)
# index=['test 1: %d'%y_true.count(1),'test 0: %d'%y_true.count(0)]
index=['test 0: %d'%y_true.count(0),'test 1: %d'%y_true.count(1)]
matrix.index=index
print(matrix)
if __name__ == "__main__":
confusion_matrix()
2. 精确率Precision、召回率Recall和F1值
精确率(正确率)和
召回率是廣泛用于資訊檢索和統計學分類領域的兩個路徑成本,用來評價結果的品質。其中精度是檢索出相關文檔數與檢索出的文檔總數的比率,衡量的是檢索系統的
查準率;召回率是指檢索出的相關文檔數和文檔庫中所有的相關文檔數的比率,衡量的是檢索系統的
查全率。
一般來說,Precision就是檢索出來的條目(比如:文檔、網頁等)有多少是準确的,Recall就是所有準确的條目有多少被檢索出來了,兩者的定義分别如下:
Precision = 提取出的正确資訊條數 / 提取出的資訊條數精準度(又稱查準率)和召回率(又稱查全率)是一對沖突的度量。一般來說,查準率高時,查全率往往偏低,而查全率高時,查準率往往偏低。是以通常隻有在一些簡單任務中,才可能使得查準率和查全率都很高。
from sklearn.metrics import classification_report
# y_pred是預測标簽
y_pred, y_true =[1,0,1,0], [0,0,1,0]
print(classification_report(y_true=y_true, y_pred=y_pred))
參考:
模型評價方法www.jianshu.com
Python機器學習筆記:常用評估名額的用法 - 戰争熱誠 - 部落格園www.cnblogs.com