RocCurveDisplay#

class sklearn.metrics.RocCurveDisplay(*, fpr, tpr, roc_auc=None, estimator_name=None, pos_label=None)[source]#

ROC 曲線視覺化。

建議使用 from_estimatorfrom_predictions 來建立 RocCurveDisplay。所有參數都儲存為屬性。

更多資訊請參閱使用者指南

參數:
fprndarray

偽陽性率。

tprndarray

真陽性率。

roc_aucfloat,預設值=None

ROC 曲線下的面積。如果為 None,則不顯示 roc_auc 分數。

estimator_namestr,預設值=None

估計器名稱。如果為 None,則不顯示估計器名稱。

pos_labelint、float、bool 或 str,預設值=None

在計算 roc auc 指標時,被視為正類的類別。預設情況下,estimators.classes_[1] 被視為正類別。

於 0.24 版本新增。

屬性:
line_matplotlib Artist

ROC 曲線。

chance_level_matplotlib Artist 或 None

機會水平線。如果未繪製機會水平,則為 None

於 1.3 版本新增。

ax_matplotlib Axes

具有 ROC 曲線的軸。

figure_matplotlib Figure

包含曲線的圖形。

另請參閱

roc_curve

計算接收者操作特徵 (ROC) 曲線。

RocCurveDisplay.from_estimator

繪製給定估計器和一些資料的接收者操作特徵 (ROC) 曲線。

RocCurveDisplay.from_predictions

繪製給定真實值和預測值的接收者操作特徵 (ROC) 曲線。

roc_auc_score

計算 ROC 曲線下的面積。

範例

>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> from sklearn import metrics
>>> y = np.array([0, 0, 1, 1])
>>> pred = np.array([0.1, 0.4, 0.35, 0.8])
>>> fpr, tpr, thresholds = metrics.roc_curve(y, pred)
>>> roc_auc = metrics.auc(fpr, tpr)
>>> display = metrics.RocCurveDisplay(fpr=fpr, tpr=tpr, roc_auc=roc_auc,
...                                   estimator_name='example estimator')
>>> display.plot()
<...>
>>> plt.show()
../../_images/sklearn-metrics-RocCurveDisplay-1.png
classmethod from_estimator(estimator, X, y, *, sample_weight=None, drop_intermediate=True, response_method='auto', pos_label=None, name=None, ax=None, plot_chance_level=False, chance_level_kw=None, despine=False, **kwargs)[原始碼]#

從估計器建立 ROC 曲線顯示。

參數:
estimator估計器實例

已擬合的分類器或已擬合的 Pipeline,其中最後一個估計器是分類器。

X形狀為 (n_samples, n_features) 的 {類陣列, 稀疏矩陣}

輸入值。

y形狀為 (n_samples,) 的類陣列

目標值。

sample_weight形狀為 (n_samples,) 的類陣列,預設值=None

樣本權重。

drop_intermediatebool,預設值=True

是否捨棄一些不會出現在繪製的 ROC 曲線上的次佳閾值。這有助於建立更輕量的 ROC 曲線。

response_method{‘predict_proba’, ‘decision_function’, ‘auto’} 預設值=‘auto’

指定是否使用 predict_probadecision_function 作為目標響應。如果設定為 'auto',則先嘗試 predict_proba,如果不存在則嘗試 decision_function

pos_labelint、float、bool 或 str,預設值=None

在計算 roc auc 指標時,被視為正類的類別。預設情況下,estimators.classes_[1] 被視為正類別。

namestr,預設值=None

用於標記的 ROC 曲線名稱。如果為 None,則使用估計器的名稱。

axmatplotlib 軸,預設值=None

要在其上繪圖的軸物件。如果為 None,則會建立新的圖形和軸。

plot_chance_levelbool,預設值=False

是否繪製機會水平線。

於 1.3 版本新增。

chance_level_kwdict,預設值=None

要傳遞給 matplotlib plot 以呈現機會水平線的關鍵字參數。

於 1.3 版本新增。

despinebool,預設值=False

是否從圖形中移除頂部和右側的脊線。

於 1.6 版本新增。

**kwargsdict

要傳遞給 matplotlib 的 plot 的關鍵字參數。

回傳值:
displayRocCurveDisplay

ROC 曲線顯示。

另請參閱

roc_curve

計算接收者操作特徵 (ROC) 曲線。

RocCurveDisplay.from_predictions

給定分類器的分數機率的 ROC 曲線視覺化。

roc_auc_score

計算 ROC 曲線下的面積。

範例

>>> import matplotlib.pyplot as plt
>>> from sklearn.datasets import make_classification
>>> from sklearn.metrics import RocCurveDisplay
>>> 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).fit(X_train, y_train)
>>> RocCurveDisplay.from_estimator(
...    clf, X_test, y_test)
<...>
>>> plt.show()
../../_images/sklearn-metrics-RocCurveDisplay-2.png
classmethod from_predictions(y_true, y_pred, *, sample_weight=None, drop_intermediate=True, pos_label=None, name=None, ax=None, plot_chance_level=False, chance_level_kw=None, despine=False, **kwargs)[原始碼]#

繪製給定真實值和預測值的 ROC 曲線。

更多資訊請參閱使用者指南

於 1.0 版本新增。

參數:
y_true形狀為 (n_samples,) 的類陣列

真實標籤。

y_pred形狀如 (n_samples,) 的類陣列

目標分數,可以是正類別的機率估計、信賴值,或是未經閾值處理的決策度量(如某些分類器上的 "decision_function" 所返回的)。

sample_weight形狀為 (n_samples,) 的類陣列,預設值=None

樣本權重。

drop_intermediatebool,預設值=True

是否捨棄一些不會出現在繪製的 ROC 曲線上的次佳閾值。這有助於建立更輕量的 ROC 曲線。

pos_labelint、float、bool 或 str,預設值=None

正類別的標籤。當 pos_label=None 時,如果 y_true 是 {-1, 1} 或 {0, 1},則 pos_label 會被設定為 1,否則會引發錯誤。

namestr,預設值=None

用於標記的 ROC 曲線名稱。如果 None,則名稱會被設定為 "Classifier"

axmatplotlib 軸,預設值=None

要在其上繪圖的軸物件。如果為 None,則會建立新的圖形和軸。

plot_chance_levelbool,預設值=False

是否繪製機會水平線。

於 1.3 版本新增。

chance_level_kwdict,預設值=None

要傳遞給 matplotlib plot 以呈現機會水平線的關鍵字參數。

於 1.3 版本新增。

despinebool,預設值=False

是否從圖形中移除頂部和右側的脊線。

於 1.6 版本新增。

**kwargsdict

傳遞給 matplotlib plot 函式的額外關鍵字參數。

回傳值:
displayRocCurveDisplay

儲存已計算值的物件。

另請參閱

roc_curve

計算接收者操作特徵 (ROC) 曲線。

RocCurveDisplay.from_estimator

給定估算器和一些數據的 ROC 曲線視覺化。

roc_auc_score

計算 ROC 曲線下的面積。

範例

>>> import matplotlib.pyplot as plt
>>> from sklearn.datasets import make_classification
>>> from sklearn.metrics import RocCurveDisplay
>>> 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).fit(X_train, y_train)
>>> y_pred = clf.decision_function(X_test)
>>> RocCurveDisplay.from_predictions(
...    y_test, y_pred)
<...>
>>> plt.show()
../../_images/sklearn-metrics-RocCurveDisplay-3.png
plot(ax=None, *, name=None, plot_chance_level=False, chance_level_kw=None, despine=False, **kwargs)[原始碼]#

繪製視覺化圖表。

額外的關鍵字參數將會傳遞給 matplotlib 的 plot

參數:
axmatplotlib 軸,預設值=None

要在其上繪圖的軸物件。如果為 None,則會建立新的圖形和軸。

namestr,預設值=None

用於標記的 ROC 曲線名稱。如果 None,則使用 estimator_name,如果不是 None,否則不會顯示任何標記。

plot_chance_levelbool,預設值=False

是否繪製機會水平線。

於 1.3 版本新增。

chance_level_kwdict,預設值=None

要傳遞給 matplotlib plot 以呈現機會水平線的關鍵字參數。

於 1.3 版本新增。

despinebool,預設值=False

是否從圖形中移除頂部和右側的脊線。

於 1.6 版本新增。

**kwargsdict

要傳遞給 matplotlib 的 plot 的關鍵字參數。

回傳值:
displayRocCurveDisplay

儲存已計算值的物件。