ConfusionMatrixDisplay#
- class sklearn.metrics.ConfusionMatrixDisplay(confusion_matrix, *, display_labels=None)[原始碼]#
混淆矩陣視覺化。
建議使用
from_estimator
或from_predictions
來建立ConfusionMatrixDisplay
。所有參數都會儲存為屬性。請參閱使用者指南以了解更多資訊。
- 參數:
- confusion_matrix形狀為 (n_classes, n_classes) 的 ndarray
混淆矩陣。
- display_labels形狀為 (n_classes,) 的 ndarray,預設值為 None
用於繪圖的顯示標籤。如果為 None,則顯示標籤會設定為從 0 到
n_classes - 1
。
- 屬性:
- im_matplotlib AxesImage
表示混淆矩陣的圖像。
- text_形狀為 (n_classes, n_classes) 的 ndarray,dtype=matplotlib Text,或 None
matplotlib 軸的陣列。如果
include_values
為 false,則為None
。- ax_matplotlib Axes
包含混淆矩陣的軸。
- figure_matplotlib Figure
包含混淆矩陣的圖形。
另請參閱
混淆矩陣 (confusion_matrix)
計算混淆矩陣以評估分類的準確性。
ConfusionMatrixDisplay.from_estimator
繪製給定估算器、資料和標籤的混淆矩陣。
ConfusionMatrixDisplay.from_predictions
繪製給定真實和預測標籤的混淆矩陣。
範例
>>> import matplotlib.pyplot as plt >>> from sklearn.datasets import make_classification >>> from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay >>> from sklearn.model_selection import train_test_split >>> from sklearn.svm import SVC >>> X, y = make_classification(random_state=0) >>> X_train, X_test, y_train, y_test = train_test_split(X, y, ... random_state=0) >>> clf = SVC(random_state=0) >>> clf.fit(X_train, y_train) SVC(random_state=0) >>> predictions = clf.predict(X_test) >>> cm = confusion_matrix(y_test, predictions, labels=clf.classes_) >>> disp = ConfusionMatrixDisplay(confusion_matrix=cm, ... display_labels=clf.classes_) >>> disp.plot() <...> >>> plt.show()
- classmethod from_estimator(estimator, X, y, *, labels=None, sample_weight=None, normalize=None, display_labels=None, include_values=True, xticks_rotation='horizontal', values_format=None, cmap='viridis', ax=None, colorbar=True, im_kw=None, text_kw=None)[原始碼]#
繪製給定估算器和一些資料的混淆矩陣。
請參閱使用者指南以了解更多資訊。
1.0 版本新增。
- 參數:
- estimator估算器實例
已擬合的分類器或已擬合的
Pipeline
,其中最後一個估算器是分類器。- X形狀為 (n_samples, n_features) 的類陣列、稀疏矩陣
輸入值。
- y形狀為 (n_samples,) 的類陣列
目標值。
- labels形狀為 (n_classes,) 的類陣列,預設值為 None
用於索引混淆矩陣的標籤列表。可用於重新排序或選擇標籤的子集。如果給定
None
,則會使用在y_true
或y_pred
中至少出現一次的已排序標籤。- sample_weight形狀為 (n_samples,) 的類陣列,預設值為 None
樣本權重。
- normalize{‘true’, ‘pred’, ‘all’},預設值為 None
是否要標準化矩陣中顯示的計數
如果為
'true'
,則混淆矩陣會根據真實條件(例如,列)進行標準化;如果為
'pred'
,則混淆矩陣會根據預測條件(例如,行)進行標準化;如果為
'all'
,則混淆矩陣會根據樣本總數進行標準化;如果為
None
(預設),則不會標準化混淆矩陣。
- display_labels形狀為 (n_classes,) 的類陣列,預設值為 None
用於繪圖的目標名稱。預設情況下,如果已定義
labels
,則會使用它,否則會使用y_true
和y_pred
的唯一標籤。- include_valuesbool,預設值為 True
是否在混淆矩陣中包含數值。
- xticks_rotation{‘vertical’, ‘horizontal’} 或 float,預設值為 ‘horizontal’
x 軸刻度標籤的旋轉。
- values_formatstr,預設值為 None
混淆矩陣中數值的格式規範。如果為
None
,則格式規範為 ‘d’ 或 ‘.2g’,以較短者為準。- cmapstr 或 matplotlib Colormap,預設值為 ‘viridis’
matplotlib 可辨識的色彩映射。
- axmatplotlib Axes,預設值為 None
要在其上繪圖的軸物件。如果為
None
,則會建立新的圖形和軸。- colorbarbool,預設值為 True
是否要在繪圖中加入顏色條。
- im_kwdict,預設值為 None
傳遞至
matplotlib.pyplot.imshow
呼叫的關鍵字字典。- text_kwdict,預設值為 None
傳遞至
matplotlib.pyplot.text
呼叫的關鍵字字典。在 1.2 版本中新增。
- 回傳值:
- display
ConfusionMatrixDisplay
- display
另請參閱
ConfusionMatrixDisplay.from_predictions
繪製給定真實和預測標籤的混淆矩陣。
範例
>>> import matplotlib.pyplot as plt >>> from sklearn.datasets import make_classification >>> from sklearn.metrics import ConfusionMatrixDisplay >>> from sklearn.model_selection import train_test_split >>> from sklearn.svm import SVC >>> X, y = make_classification(random_state=0) >>> X_train, X_test, y_train, y_test = train_test_split( ... X, y, random_state=0) >>> clf = SVC(random_state=0) >>> clf.fit(X_train, y_train) SVC(random_state=0) >>> ConfusionMatrixDisplay.from_estimator( ... clf, X_test, y_test) <...> >>> plt.show()
- classmethod from_predictions(y_true, y_pred, *, labels=None, sample_weight=None, normalize=None, display_labels=None, include_values=True, xticks_rotation='horizontal', values_format=None, cmap='viridis', ax=None, colorbar=True, im_kw=None, text_kw=None)[原始碼]#
根據真實標籤和預測標籤繪製混淆矩陣。
請參閱使用者指南以了解更多資訊。
1.0 版本新增。
- 參數:
- y_true形狀為 (n_samples,) 的類陣列
真實標籤。
- y_pred形狀為 (n_samples,) 的類陣列
分類器的
predict
方法給出的預測標籤。- labels形狀為 (n_classes,) 的類陣列,預設值為 None
用於索引混淆矩陣的標籤列表。可用於重新排序或選擇標籤的子集。如果給定
None
,則會使用在y_true
或y_pred
中至少出現一次的已排序標籤。- sample_weight形狀為 (n_samples,) 的類陣列,預設值為 None
樣本權重。
- normalize{‘true’, ‘pred’, ‘all’},預設值為 None
是否要標準化矩陣中顯示的計數
如果為
'true'
,則混淆矩陣會根據真實條件(例如,列)進行標準化;如果為
'pred'
,則混淆矩陣會根據預測條件(例如,行)進行標準化;如果為
'all'
,則混淆矩陣會根據樣本總數進行標準化;如果為
None
(預設),則不會標準化混淆矩陣。
- display_labels形狀為 (n_classes,) 的類陣列,預設值為 None
用於繪圖的目標名稱。預設情況下,如果已定義
labels
,則會使用它,否則會使用y_true
和y_pred
的唯一標籤。- include_valuesbool,預設值為 True
是否在混淆矩陣中包含數值。
- xticks_rotation{‘vertical’, ‘horizontal’} 或 float,預設值為 ‘horizontal’
x 軸刻度標籤的旋轉。
- values_formatstr,預設值為 None
混淆矩陣中數值的格式規範。如果為
None
,則格式規範為 ‘d’ 或 ‘.2g’,以較短者為準。- cmapstr 或 matplotlib Colormap,預設值為 ‘viridis’
matplotlib 可辨識的色彩映射。
- axmatplotlib Axes,預設值為 None
要在其上繪圖的軸物件。如果為
None
,則會建立新的圖形和軸。- colorbarbool,預設值為 True
是否要在繪圖中加入顏色條。
- im_kwdict,預設值為 None
傳遞至
matplotlib.pyplot.imshow
呼叫的關鍵字字典。- text_kwdict,預設值為 None
傳遞至
matplotlib.pyplot.text
呼叫的關鍵字字典。在 1.2 版本中新增。
- 回傳值:
- display
ConfusionMatrixDisplay
- display
另請參閱
ConfusionMatrixDisplay.from_estimator
繪製給定估算器、資料和標籤的混淆矩陣。
範例
>>> import matplotlib.pyplot as plt >>> from sklearn.datasets import make_classification >>> from sklearn.metrics import ConfusionMatrixDisplay >>> from sklearn.model_selection import train_test_split >>> from sklearn.svm import SVC >>> X, y = make_classification(random_state=0) >>> X_train, X_test, y_train, y_test = train_test_split( ... X, y, random_state=0) >>> clf = SVC(random_state=0) >>> clf.fit(X_train, y_train) SVC(random_state=0) >>> y_pred = clf.predict(X_test) >>> ConfusionMatrixDisplay.from_predictions( ... y_test, y_pred) <...> >>> plt.show()
- plot(*, include_values=True, cmap='viridis', xticks_rotation='horizontal', values_format=None, ax=None, colorbar=True, im_kw=None, text_kw=None)[原始碼]#
繪製視覺化圖形。
- 參數:
- include_valuesbool,預設值為 True
是否在混淆矩陣中包含數值。
- cmapstr 或 matplotlib Colormap,預設值為 ‘viridis’
matplotlib 可辨識的色彩映射。
- xticks_rotation{‘vertical’, ‘horizontal’} 或 float,預設值為 ‘horizontal’
x 軸刻度標籤的旋轉。
- values_formatstr,預設值為 None
混淆矩陣中數值的格式規範。如果為
None
,則格式規範為 ‘d’ 或 ‘.2g’,以較短者為準。- axmatplotlib axes,預設值為 None
要在其上繪圖的軸物件。如果為
None
,則會建立新的圖形和軸。- colorbarbool,預設值為 True
是否要在繪圖中加入顏色條。
- im_kwdict,預設值為 None
傳遞至
matplotlib.pyplot.imshow
呼叫的關鍵字字典。- text_kwdict,預設值為 None
傳遞至
matplotlib.pyplot.text
呼叫的關鍵字字典。在 1.2 版本中新增。
- 回傳值:
- display
ConfusionMatrixDisplay
回傳一個
ConfusionMatrixDisplay
實例,其中包含繪製混淆矩陣的所有資訊。
- display