1. 程式人生 > >混淆矩陣及confusion_matrix函式的使用

混淆矩陣及confusion_matrix函式的使用

關於混淆矩陣的概念,可參考此篇博文混淆矩陣

1.混淆矩陣
混淆矩陣是機器學習中總結分類模型預測結果的情形分析表,以矩陣形式將資料集中的記錄按照真實的類別與分類模型作出的分類判斷兩個標準進行彙總。這個名字來源於它可以非常容易的表明多個類別是否有混淆(也就是一個class被預測成另一個class

下圖是混淆矩陣的一個例子
這裡寫圖片描述

其中灰色部分是真實分類和預測分類結果相一致的,綠色部分是真實分類和預測分類不一致的,即分類錯誤的。

2.confusion_matrix函式的使用

官方文件中給出的用法是
sklearn.metrics.confusion_matrix(y_true, y_pred, labels=None, sample_weight=None)

y_true: 是樣本真實分類結果,y_pred: 是樣本預測分類結果
labels:是所給出的類別,通過這個可對類別進行選擇
sample_weight : 樣本權重

實現例子:

from sklearn.metrics import confusion_matrix

y_true=[2,1,0,1,2,0]
y_pred=[2,0,0,1,2,1]

C=confusion_matrix(y_true, y_pred)

執行結果:

這裡寫圖片描述

這兒沒有標註類別:下圖是標註類別以後,更加好理解

這裡寫圖片描述

關於類別順序可由 labels引數控制調整,例如 labels=[2,1,0],則類別將以這個順序自上向下排列。預設數字類別是從小到大排列,英文類別是按首字母順序排列

下面是官方文件上的一個例子

y_true = ["cat", "ant", "cat", "cat", "ant", "bird"]
y_pred = ["ant", "ant", "cat", "cat", "ant", "cat"]
confusion_matrix(y_true, y_pred, labels=["ant", "bird", "cat"])

執行結果

array([[2, 0, 0],
       [0, 0, 1],
       [1, 0, 2]])

以上是關於confusion_matrix函式的用法,歡迎大家一起交流學習強調內容