天天看點

python機器學習 二分類 混淆矩陣_機器學習 回歸 分類 評價名額 python執行個體

python機器學習 二分類 混淆矩陣_機器學習 回歸 分類 評價名額 python執行個體
python機器學習 二分類 混淆矩陣_機器學習 回歸 分類 評價名額 python執行個體
Scikit-learn函數

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矩陣,如下表所示。

python機器學習 二分類 混淆矩陣_機器學習 回歸 分類 評價名額 python執行個體

顯示列名 統計不合格個數

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 = 提取出的正确資訊條數 / 提取出的資訊條數
python機器學習 二分類 混淆矩陣_機器學習 回歸 分類 評價名額 python執行個體
Recall = 提取出的正确資訊條數 / 樣本中的資訊條數
python機器學習 二分類 混淆矩陣_機器學習 回歸 分類 評價名額 python執行個體

  精準度(又稱查準率)和召回率(又稱查全率)是一對沖突的度量。一般來說,查準率高時,查全率往往偏低,而查全率高時,查準率往往偏低。是以通常隻有在一些簡單任務中,才可能使得查準率和查全率都很高。

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機器學習 二分類 混淆矩陣_機器學習 回歸 分類 評價名額 python執行個體

Python機器學習筆記:常用評估名額的用法 - 戰争熱誠 - 部落格園​www.cnblogs.com

python機器學習 二分類 混淆矩陣_機器學習 回歸 分類 評價名額 python執行個體