機器學習 - 混淆矩陣



它是衡量分類問題效能最簡單的方法,其中輸出可以是兩種或多種型別的類別。混淆矩陣不過是一個二維表,即“實際”和“預測”,此外,這兩個維度都有“真陽性 (TP)”、“真陰性 (TN)”、“假陽性 (FP)”、“假陰性 (FN)”如下所示:

Confusion Matrix

與混淆矩陣相關的術語解釋如下:

  • 真陽性 (TP) - 當資料點的實際類別和預測類別都為 1 時。

  • 真陰性 (TN) - 當資料點的實際類別和預測類別都為 0 時。

  • 假陽性 (FP) - 當資料點的實際類別為 0 且預測類別為 1 時。

  • 假陰性 (FN) - 當資料點的實際類別為 1 且預測類別為 0 時。

如何在 Python 中實現混淆矩陣?

要在 Python 中實現混淆矩陣,我們可以使用 scikit-learn 庫的 sklearn.metrics 模組中的 confusion_matrix() 函式。以下是如何使用 confusion_matrix() 函式的簡單示例:

from sklearn.metrics import confusion_matrix

# Actual values
y_actual = [0, 1, 0, 1, 1, 0, 0, 1, 1, 1]

# Predicted values
y_pred = [0, 1, 0, 1, 0, 1, 0, 0, 1, 1]

# Confusion matrix
cm = confusion_matrix(y_actual, y_pred)
print(cm)

在這個例子中,我們有兩個陣列:y_actual 包含目標變數的實際值,y_pred 包含目標變數的預測值。然後,我們呼叫 confusion_matrix() 函式,傳入 y_actualy_pred 作為引數。該函式返回一個表示混淆矩陣的二維陣列。

上面程式碼的輸出如下所示:

[[3 1]
 [2 4]]

我們還可以使用熱圖視覺化混淆矩陣。以下是我們如何使用 seaborn 庫的 heatmap() 函式來實現:

import seaborn as sns

# Plot confusion matrix as heatmap
sns.heatmap(cm, annot=True, cmap='summer')

這將生成一個顯示混淆矩陣的熱圖:

heatmap

在此熱圖中,x 軸表示預測值,y 軸表示實際值。熱圖中每個正方形的顏色表示落入每個類別的樣本數量。

廣告