RocCurveDisplay#

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

ROC曲线可视化。

建议使用 from_estimatorfrom_predictions 来创建 一个 RocCurveDisplay 。所有参数都 存储为属性。

更多信息请参阅 用户指南

Parameters:
fprndarray

假阳性率。

tprndarray

真阳性率。

roc_aucfloat, 默认=None

ROC曲线下的面积。如果为None,则不显示roc_auc分数。

estimator_namestr, 默认=None

估计器的名称。如果为None,则不显示估计器名称。

pos_labelint, float, bool 或 str, 默认=None

在计算roc auc指标时被视为正类的类别。默认情况下, estimators.classes_[1] 被视为正类。

Added in version 0.24.

Attributes:
line_matplotlib Artist

ROC曲线。

chance_level_matplotlib Artist 或 None

机会水平线。如果未绘制机会水平线,则为 None

Added in version 1.3.

ax_matplotlib Axes

带有ROC曲线的Axes。

figure_matplotlib Figure

包含曲线的Figure。

See also

roc_curve

计算接收者操作特征(ROC)曲线。

RocCurveDisplay.from_estimator

给定一个估计器和一些数据,绘制接收者操作特征(ROC)曲线。

RocCurveDisplay.from_predictions

给定真实值和预测值,绘制接收者操作特征(ROC)曲线。

roc_auc_score

计算ROC曲线下的面积。

Examples

>>> 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, **kwargs)#

创建一个从估计器生成的ROC曲线显示。

Parameters:
estimator估计器实例

拟合的分类器或拟合的 Pipeline , 其中最后一个估计器是分类器。

X{array-like, sparse matrix} 形状为 (n_samples, n_features)

输入值。

yarray-like 形状为 (n_samples,)

目标值。

sample_weightarray-like 形状为 (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 axes, 默认=None

要绘制的轴对象。如果为 None ,则创建一个新的图形和轴。

plot_chance_levelbool, 默认=False

是否绘制机会水平。

Added in version 1.3.

chance_level_kwdict, 默认=None

传递给matplotlib的 plot 以渲染机会水平线的关键字参数。

Added in version 1.3.

**kwargsdict

传递给matplotlib的 plot 的关键字参数。

Returns:
displayRocCurveDisplay

ROC曲线显示。

See also

roc_curve

计算接收者操作特征(ROC)曲线。

RocCurveDisplay.from_predictions

给定分类器分数概率的ROC曲线可视化。

roc_auc_score

计算ROC曲线下面积。

Examples

>>> 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, **kwargs)#

绘制给定真实值和预测值的ROC曲线。

更多信息请参阅 用户指南

Added in version 1.0.

Parameters:
y_truearray-like of shape (n_samples,)

真实标签。

y_predarray-like of shape (n_samples,)

目标分数,可以是正类的概率估计、置信值或无阈值的决策度量(如某些分类器中的“decision_function”返回的值)。

sample_weightarray-like of shape (n_samples,), default=None

样本权重。

drop_intermediatebool, default=True

是否丢弃一些次优阈值,这些阈值在绘制的ROC曲线上不会出现。这有助于创建更轻量的ROC曲线。

pos_labelint, float, bool or str, default=None

正类的标签。当 pos_label=None 时,如果 y_true 在 {-1, 1} 或 {0, 1} 中, pos_label 设置为 1,否则将引发错误。

namestr, default=None

ROC曲线的名称,用于标注。如果为 None ,名称将设置为 "Classifier"

axmatplotlib axes, default=None

要绘制的轴对象。如果为 None ,将创建一个新的图形和轴。

plot_chance_levelbool, default=False

是否绘制机会水平线。

Added in version 1.3.

chance_level_kwdict, default=None

传递给 matplotlib 的 plot 以渲染机会水平线的关键字参数。

Added in version 1.3.

**kwargsdict

传递给 matplotlib plot 函数的其他关键字参数。

Returns:
displayRocCurveDisplay

存储计算值的对象。

See also

roc_curve

计算接收者操作特征(ROC)曲线。

RocCurveDisplay.from_estimator

给定估计器和数据的可视化ROC曲线。

roc_auc_score

计算ROC曲线下面积。

Examples

>>> 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, **kwargs)#

绘图可视化。

额外的关键字参数将被传递给matplotlib的 plot

Parameters:
axmatplotlib轴,默认=None

要在其上绘制的轴对象。如果为 None ,则创建一个新的图形和轴。

namestr, 默认=None

ROC曲线的名称,用于标签。如果为 None ,则使用 estimator_name (如果 estimator_name 不为 None ),否则不显示标签。

plot_chance_levelbool, 默认=False

是否绘制机会水平。

Added in version 1.3.

chance_level_kwdict, 默认=None

传递给matplotlib的 plot 以渲染机会水平线的关键字参数。

Added in version 1.3.

**kwargsdict

传递给matplotlib的 plot 的关键字参数。

Returns:
displayRocCurveDisplay

存储计算值的对象。