ROC曲线显示#

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, default=None

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

estimator_namestr, default=None

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

pos_labelint, float, bool or str, default=None

计算ROC AUC指标时被认为是正类的类。默认情况下,estimators.classes_[1] 被认为是正类。

0.24版本新增。

属性:
line_matplotlib Artist

ROC曲线。

chance_level_matplotlib Artist or 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)[source]#

根据估计器创建 ROC 曲线显示。

参数:
estimator估计器实例

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

X形状为 (n_samples, n_features) 的{数组、稀疏矩阵}

输入值。

y形状为 (n_samples,) 的数组

目标值。

sample_weight形状为 (n_samples,) 的数组,默认为 None

样本权重。

drop_intermediate布尔值,默认为 True

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

response_method{'predict_proba', 'decision_function', 'auto'},默认为 'auto'

指定是使用predict_proba还是decision_function作为目标响应。如果设置为'auto',则首先尝试predict_proba,如果不存在,则尝试decision_function

pos_labelint, float, bool or str, default=None

计算ROC AUC指标时被认为是正类的类。默认情况下,estimators.classes_[1] 被认为是正类。

namestr,默认为 None

ROC 曲线的名称用于标记。如果为None,则使用估计器的名称。

axmatplotlib 坐标轴,默认为 None

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

plot_chance_level布尔值,默认为 False

是否绘制几率水平。

1.3版本新增。

chance_level_kwdict,默认为 None

要传递给 matplotlib 的plot用于渲染几率水平线的关键字参数。

1.3版本新增。

despine布尔值,默认为 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)[source]#

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

更多信息请参见 用户指南

1.0 版中新增。

参数:
y_true形状为 (n_samples,) 的数组

真实标签。

y_pred形状为 (n_samples,) 的数组

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

sample_weight形状为 (n_samples,) 的数组,默认为 None

样本权重。

drop_intermediate布尔值,默认为 True

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

pos_labelint, float, bool or str, default=None

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

namestr,默认为 None

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

axmatplotlib 坐标轴,默认为 None

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

plot_chance_level布尔值,默认为 False

是否绘制几率水平。

1.3版本新增。

chance_level_kwdict,默认为 None

要传递给 matplotlib 的plot用于渲染几率水平线的关键字参数。

1.3版本新增。

despine布尔值,默认为 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)[source]#

绘制可视化图像。

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

参数:
axmatplotlib 坐标轴,默认为 None

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

namestr,默认为 None

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

plot_chance_level布尔值,默认为 False

是否绘制几率水平。

1.3版本新增。

chance_level_kwdict,默认为 None

要传递给 matplotlib 的plot用于渲染几率水平线的关键字参数。

1.3版本新增。

despine布尔值,默认为 False

是否删除绘图的顶部和右侧脊柱。

1.6 版中新增。

**kwargsdict

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

返回:
displayRocCurveDisplay

存储计算值的 对象。