DetCurveDisplay#

class sklearn.metrics.DetCurveDisplay(*, fpr, fnr, estimator_name=None, pos_label=None)[source]#

检测错误权衡 (DET) 曲线可视化。

建议使用 from_estimatorfrom_predictions 来创建可视化器。所有参数都存储为属性。

有关 scikit-learn 可视化工具的通用信息,请参阅 可视化指南。有关解释这些图表的指南,请参阅 模型评估指南

0.24 版本新增。

参数:
fprndarray

假阳性率。

fnrndarray

假阴性率。

estimator_namestr, default=None

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

pos_labelint, float, bool or str, default=None

正类的标签。如果不是 None,则此值将显示在 x 轴和 y 轴标签中。

属性:
line_matplotlib Artist

DET 曲线。

ax_matplotlib Axes

带有 DET 曲线的轴。

figure_matplotlib Figure

包含曲线的图。

另请参阅

det_curve

计算不同概率阈值的错误率。

DetCurveDisplay.from_estimator

根据估计器和一些数据绘制 DET 曲线。

DetCurveDisplay.from_predictions

根据真实标签和预测标签绘制 DET 曲线。

示例

>>> import matplotlib.pyplot as plt
>>> from sklearn.datasets import make_classification
>>> from sklearn.metrics import det_curve, DetCurveDisplay
>>> from sklearn.model_selection import train_test_split
>>> from sklearn.svm import SVC
>>> X, y = make_classification(n_samples=1000, random_state=0)
>>> X_train, X_test, y_train, y_test = train_test_split(
...     X, y, test_size=0.4, random_state=0)
>>> clf = SVC(random_state=0).fit(X_train, y_train)
>>> y_score = clf.decision_function(X_test)
>>> fpr, fnr, _ = det_curve(y_test, y_score)
>>> display = DetCurveDisplay(
...     fpr=fpr, fnr=fnr, estimator_name="SVC"
... )
>>> display.plot()
<...>
>>> plt.show()
../../_images/sklearn-metrics-DetCurveDisplay-1.png
classmethod from_estimator(estimator, X, y, *, sample_weight=None, drop_intermediate=True, response_method='auto', pos_label=None, name=None, ax=None, **kwargs)[source]#

根据估计器和数据绘制 DET 曲线。

有关 scikit-learn 可视化工具的通用信息,请参阅 可视化指南。有关解释这些图表的指南,请参阅 模型评估指南

1.0 版本新增。

参数:
estimatorestimator instance

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

Xshape 为 (n_samples, n_features) 的 {array-like, sparse matrix}

输入值。

yarray-like of shape (n_samples,)

目标值。

sample_weightshape 为 (n_samples,) 的 array-like, default=None

样本权重。

drop_intermediatebool, default=True

是否删除真实阳性(tp)与前一个或下一个阈值不变的阈值。所有具有相同 tp 值的点都具有相同的 fnr,因此具有相同的 y 坐标。

在版本 1.7 中新增。

response_method{‘predict_proba’, ‘decision_function’, ‘auto’} default=’auto’

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

pos_labelint, float, bool or str, default=None

正类的标签。默认情况下,estimators.classes_[1] 被视为正类。

namestr, default=None

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

axmatplotlib axes, default=None

用于绘图的坐标轴对象。如果为 None,则会创建新的图和坐标轴。

**kwargsdict

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

返回:
displayDetCurveDisplay

存储计算值的对象。

另请参阅

det_curve

计算不同概率阈值的错误率。

DetCurveDisplay.from_predictions

根据真实标签和预测标签绘制 DET 曲线。

示例

>>> import matplotlib.pyplot as plt
>>> from sklearn.datasets import make_classification
>>> from sklearn.metrics import DetCurveDisplay
>>> from sklearn.model_selection import train_test_split
>>> from sklearn.svm import SVC
>>> X, y = make_classification(n_samples=1000, random_state=0)
>>> X_train, X_test, y_train, y_test = train_test_split(
...     X, y, test_size=0.4, random_state=0)
>>> clf = SVC(random_state=0).fit(X_train, y_train)
>>> DetCurveDisplay.from_estimator(
...    clf, X_test, y_test)
<...>
>>> plt.show()
../../_images/sklearn-metrics-DetCurveDisplay-2.png
classmethod from_predictions(y_true, y_score=None, *, sample_weight=None, drop_intermediate=True, pos_label=None, name=None, ax=None, y_pred='deprecated', **kwargs)[source]#

根据真实标签和预测标签绘制 DET 曲线。

有关 scikit-learn 可视化工具的通用信息,请参阅 可视化指南。有关解释这些图表的指南,请参阅 模型评估指南

1.0 版本新增。

参数:
y_true形状为 (n_samples,) 的 array-like

真实标签。

y_score形状为 (n_samples,) 的类数组

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

版本 1.8 中添加: y_pred 已重命名为 y_score

sample_weightshape 为 (n_samples,) 的 array-like, default=None

样本权重。

drop_intermediatebool, default=True

是否删除真实阳性(tp)与前一个或下一个阈值不变的阈值。所有具有相同 tp 值的点都具有相同的 fnr,因此具有相同的 y 坐标。

在版本 1.7 中新增。

pos_labelint, float, bool or str, default=None

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

namestr, default=None

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

axmatplotlib axes, default=None

用于绘图的坐标轴对象。如果为 None,则会创建新的图和坐标轴。

y_pred形状为 (n_samples,) 的类数组

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

版本 1.8 中已弃用: y_pred 已弃用,将在 1.10 版本中删除。请使用 y_score

**kwargsdict

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

返回:
displayDetCurveDisplay

存储计算值的对象。

另请参阅

det_curve

计算不同概率阈值的错误率。

DetCurveDisplay.from_estimator

根据估计器和一些数据绘制 DET 曲线。

示例

>>> import matplotlib.pyplot as plt
>>> from sklearn.datasets import make_classification
>>> from sklearn.metrics import DetCurveDisplay
>>> from sklearn.model_selection import train_test_split
>>> from sklearn.svm import SVC
>>> X, y = make_classification(n_samples=1000, random_state=0)
>>> X_train, X_test, y_train, y_test = train_test_split(
...     X, y, test_size=0.4, random_state=0)
>>> clf = SVC(random_state=0).fit(X_train, y_train)
>>> y_score = clf.decision_function(X_test)
>>> DetCurveDisplay.from_predictions(
...    y_test, y_score)
<...>
>>> plt.show()
../../_images/sklearn-metrics-DetCurveDisplay-3.png
plot(ax=None, *, name=None, **kwargs)[source]#

绘制可视化图。

参数:
axmatplotlib axes, default=None

用于绘图的坐标轴对象。如果为 None,则会创建新的图和坐标轴。

namestr, default=None

用于标记的 DET 曲线名称。如果为 None,则使用 estimator_name(如果它不是 None),否则不显示任何标签。

**kwargsdict

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

返回:
displayDetCurveDisplay

存储计算值的对象。