RocCurveDisplay#
- class sklearn.metrics.RocCurveDisplay(*, fpr, tpr, roc_auc=None, estimator_name=None, pos_label=None)[source]#
ROC 曲線視覺化。
建議使用
from_estimator
或from_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()
- 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_proba 或 decision_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
的關鍵字參數。
- 回傳值:
- display
RocCurveDisplay
ROC 曲線顯示。
- display
另請參閱
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()
- 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
函式的額外關鍵字參數。
- 回傳值:
- display
RocCurveDisplay
儲存已計算值的物件。
- display
另請參閱
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()
- 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
的關鍵字參數。
- 回傳值:
- display
RocCurveDisplay
儲存已計算值的物件。
- display