混淆矩陣是統計學中常用的一種工具,用於評估分類器的性能。Python作為一種簡潔、易於學習的編程語言,提供了許多繪製混淆矩陣的工具,可以方便地完成混淆矩陣的可視化操作。本文將從多個方面介紹Python繪製混淆矩陣的方法和技巧。
一、Matplotlib繪製混淆矩陣
Matplotlib是Python中一種常用的數據可視化工具庫。通過繪製混淆矩陣圖,可以直觀地了解分類器的精確度、召回率、準確率、誤差率等性能指標。
下面是使用Matplotlib繪製混淆矩陣的Python代碼:
import matplotlib.pyplot as plt import seaborn as sns from sklearn.metrics import confusion_matrix y_true = [0, 1, 0, 1, 1, 0, 0, 0, 0, 1] y_pred = [0, 0, 0, 1, 1, 0, 1, 0, 0, 1] labels = ['Class0', 'Class1'] cm = confusion_matrix(y_true, y_pred) sns.heatmap(cm, annot=True, cmap='Blues', xticklabels=labels, yticklabels=labels) plt.ylabel('True label') plt.xlabel('Predicted label') plt.show()
這段代碼首先定義了真實標籤(y_true)、預測標籤(y_pred)和標籤名(labels)。然後,通過調用confusion_matrix方法計算混淆矩陣,接著使用seaborn中的heatmap方法將混淆矩陣繪製出來。
繪圖界面中,橫軸表示預測標籤,縱軸表示真實標籤,每個小方格中的數字代表對應類別的預測正確數目。通過可視化,可以更加形象地了解分類器的性能表現。
二、Scikit-learn繪製混淆矩陣
Scikit-learn是Python中一種常用的機器學習庫,在其中用於評估分類器性能的方法中,也提供了繪製混淆矩陣的方法。
下面是使用Scikit-learn繪製混淆矩陣的Python代碼:
import matplotlib.pyplot as plt from sklearn.metrics import plot_confusion_matrix from sklearn.datasets import make_classification from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier X, y = make_classification(random_state=0) X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0) clf = DecisionTreeClassifier(random_state=0).fit(X_train, y_train) plot_confusion_matrix(clf, X_test, y_test) plt.show()
這段代碼中,首先構造一個分類數據集並分為訓練集和測試集。然後在訓練集上擬合出一個決策樹分類器clf。最後調用plot_confusion_matrix方法繪製混淆矩陣圖。
與Matplotlib繪製的混淆矩陣圖不同,Scikit-learn中繪製的混淆矩陣圖增加了各項性能指標的展示。通過滑鼠懸停或者手動調整繪圖界面,可以查看不同標籤下的精確度、召回率、F1分數等性能指標。
三、PyCM混淆矩陣庫
PyCM是Python中一種專門用於繪製、計算混淆矩陣的庫。與Scikit-learn和Matplotlib不同,PyCM包含了許多混淆矩陣相關的函數和屬性,可以支持更加細緻、複雜的混淆矩陣操作。
下面是使用PyCM繪製混淆矩陣的Python代碼:
from pycm import ConfusionMatrix y_true = [0, 1, 0, 1, 1, 0, 0, 0, 0, 1] y_pred = [0, 0, 0, 1, 1, 0, 1, 0, 0, 1] cm = ConfusionMatrix(actual_vector=y_true, predict_vector=y_pred) cm.plot(cmap='Blues')
上述代碼先引入了PyCM中的ConfusionMatrix函數,然後以真實標籤y_true和預測標籤y_pred為參數,計算混淆矩陣。最後通過調用混淆矩陣對象的plot方法繪製出混淆矩陣圖。
與Scikit-learn類似,PyCM還支持計算多項性能指標、混淆矩陣比較以及標籤重命名等高級操作。如果需要對混淆矩陣進行更加細緻、嚴格的統計分析,PyCM是一個不錯的選擇。
原創文章,作者:AIGAN,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/373382.html