PrecisionRecallDisplay#

class sklearn.metrics.PrecisionRecallDisplay(precision, recall, *, average_precision=None, estimator_name=None, pos_label=None, prevalence_pos_label=None)[源代码]#

精确召回可视化。

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

阅读更多的 User Guide .

参数:
precisionndarray

精确值。

recallndarray

回忆价值观。

average_precisionfloat,默认=无

平均精度。如果为无,则不会显示平均精度。

estimator_name字符串,默认=无

估算者姓名。如果无,则不会显示估计器名称。

pos_labelint、float、bool或string,默认值为无

被认为是正类的类。如果为“无”,则该类将不会显示在图例中。

Added in version 0.24.

prevalence_pos_labelfloat,默认=无

阳性标签的普遍性。它用于绘制机会水平线。如果无,即使是 plot_chance_level 绘图时设置为True。

Added in version 1.3.

属性:
line_matplotlib艺术家

精确的召回曲线。

chance_level_matplotlib艺术家或无

机会水平线。是 None 如果没有绘制机会水平。

Added in version 1.3.

ax_matplotlib轴

Axes with precision recall curve.

figure_matplotlib图

包含曲线的图形。

参见

precision_recall_curve

Compute precision-recall pairs for different probability thresholds.

PrecisionRecallDisplay.from_estimator

给定二进制分类器绘制精确召回曲线。

PrecisionRecallDisplay.from_predictions

使用二元分类器的预测绘制精确召回曲线。

注意到

平均精度(cf. average_precision_score )中的scikit-learn是在没有任何插值的情况下计算的。为了与此指标保持一致,准确率-召回率曲线也在没有任何插值的情况下绘制(逐步风格)。

您可以通过传递关键字参数更改此样式 drawstyle="default"plot , from_estimator ,或者 from_predictions .然而,该曲线将不会与报告的平均精密度严格一致。

示例

>>> import matplotlib.pyplot as plt
>>> from sklearn.datasets import make_classification
>>> from sklearn.metrics import (precision_recall_curve,
...                              PrecisionRecallDisplay)
>>> 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)
>>> clf.fit(X_train, y_train)
SVC(random_state=0)
>>> predictions = clf.predict(X_test)
>>> precision, recall, _ = precision_recall_curve(y_test, predictions)
>>> disp = PrecisionRecallDisplay(precision=precision, recall=recall)
>>> disp.plot()
<...>
>>> plt.show()
../../_images/sklearn-metrics-PrecisionRecallDisplay-1.png
classmethod from_estimator(estimator, X, y, *, sample_weight=None, pos_label=None, drop_intermediate=False, response_method='auto', name=None, ax=None, plot_chance_level=False, chance_level_kw=None, despine=False, **kwargs)[源代码]#

给定估计器和一些数据,绘制准确率-召回率曲线。

参数:
estimator估计器实例

安装分类器或安装 Pipeline 其中最后一个估计器是分类器。

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

输入值。

y形状类似阵列(n_samples,)

目标值。

sample_weight形状类似数组(n_samples,),默认=无

样本重量。

pos_labelint、float、bool或string,默认值为无

在计算精确度和召回指标时,该类别被视为正类别。默认情况下, estimators.classes_[1] 被认为是积极的一类。

drop_intermediate布尔,默认=假

是否降低一些不会出现在绘制的准确率-召回曲线上的次优阈值。这对于创建更轻的精确召回曲线非常有用。

Added in version 1.3.

response_method'预测_proba ',' decision_function ','功能',& 默认='自动'

指定是否使用 predict_probadecision_function 作为目标响应。如果设置为“自动”, predict_proba 先尝试,如果不存在 decision_function 接下来将尝试。

name字符串,默认=无

标记曲线的名称。如果 None ,未使用名称。

axmatplotlib轴,默认=无

轴反对绘图。如果 None ,创建新图形和轴。

plot_chance_level布尔,默认=假

是否绘制机会水平。机会水平是根据期间传递的数据计算出的阳性标签的流行率 from_estimatorfrom_predictions 电话

Added in version 1.3.

chance_level_kwdict,默认=无

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

Added in version 1.3.

despine布尔,默认=假

是否从情节中删除顶部和右侧脊柱。

Added in version 1.6.

**kwargsdict

将传递给matplotlib的关键字参数 plot .

返回:
display : PrecisionRecallDisplayPrecisionRecallDisplay

参见

PrecisionRecallDisplay.from_predictions

使用估计的概率或决策函数的输出绘制准确率-召回曲线。

注意到

平均精度(cf. average_precision_score )中的scikit-learn是在没有任何插值的情况下计算的。为了与此指标保持一致,准确率-召回率曲线也在没有任何插值的情况下绘制(逐步风格)。

您可以通过传递关键字参数更改此样式 drawstyle="default" .然而,该曲线将不会与报告的平均精密度严格一致。

示例

>>> import matplotlib.pyplot as plt
>>> from sklearn.datasets import make_classification
>>> from sklearn.metrics import PrecisionRecallDisplay
>>> from sklearn.model_selection import train_test_split
>>> from sklearn.linear_model import LogisticRegression
>>> X, y = make_classification(random_state=0)
>>> X_train, X_test, y_train, y_test = train_test_split(
...         X, y, random_state=0)
>>> clf = LogisticRegression()
>>> clf.fit(X_train, y_train)
LogisticRegression()
>>> PrecisionRecallDisplay.from_estimator(
...    clf, X_test, y_test)
<...>
>>> plt.show()
../../_images/sklearn-metrics-PrecisionRecallDisplay-2.png
classmethod from_predictions(y_true, y_pred, *, sample_weight=None, pos_label=None, drop_intermediate=False, name=None, ax=None, plot_chance_level=False, chance_level_kw=None, despine=False, **kwargs)[源代码]#

给定二进制类别预测,绘制准确率-召回率曲线。

参数:
y_true形状类似阵列(n_samples,)

True binary labels.

y_pred形状类似阵列(n_samples,)

决策函数的估计概率或输出。

sample_weight形状类似数组(n_samples,),默认=无

样本重量。

pos_labelint、float、bool或string,默认值为无

在计算精确度和召回指标时,该类别被视为正类别。

drop_intermediate布尔,默认=假

是否降低一些不会出现在绘制的准确率-召回曲线上的次优阈值。这对于创建更轻的精确召回曲线非常有用。

Added in version 1.3.

name字符串,默认=无

标记曲线的名称。如果 None ,名称将设置为 "Classifier" .

axmatplotlib轴,默认=无

轴反对绘图。如果 None ,创建新图形和轴。

plot_chance_level布尔,默认=假

是否绘制机会水平。机会水平是根据期间传递的数据计算出的阳性标签的流行率 from_estimatorfrom_predictions 电话

Added in version 1.3.

chance_level_kwdict,默认=无

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

Added in version 1.3.

despine布尔,默认=假

是否从情节中删除顶部和右侧脊柱。

Added in version 1.6.

**kwargsdict

将传递给matplotlib的关键字参数 plot .

返回:
display : PrecisionRecallDisplayPrecisionRecallDisplay

参见

PrecisionRecallDisplay.from_estimator

使用估计器绘制准确率-召回曲线。

注意到

平均精度(cf. average_precision_score )中的scikit-learn是在没有任何插值的情况下计算的。为了与此指标保持一致,准确率-召回率曲线也在没有任何插值的情况下绘制(逐步风格)。

您可以通过传递关键字参数更改此样式 drawstyle="default" .然而,该曲线将不会与报告的平均精密度严格一致。

示例

>>> import matplotlib.pyplot as plt
>>> from sklearn.datasets import make_classification
>>> from sklearn.metrics import PrecisionRecallDisplay
>>> from sklearn.model_selection import train_test_split
>>> from sklearn.linear_model import LogisticRegression
>>> X, y = make_classification(random_state=0)
>>> X_train, X_test, y_train, y_test = train_test_split(
...         X, y, random_state=0)
>>> clf = LogisticRegression()
>>> clf.fit(X_train, y_train)
LogisticRegression()
>>> y_pred = clf.predict_proba(X_test)[:, 1]
>>> PrecisionRecallDisplay.from_predictions(
...    y_test, y_pred)
<...>
>>> plt.show()
../../_images/sklearn-metrics-PrecisionRecallDisplay-3.png
plot(ax=None, *, name=None, plot_chance_level=False, chance_level_kw=None, despine=False, **kwargs)[源代码]#

情节可视化。

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

参数:
axMatplotlib轴,默认=无

轴反对绘图。如果 None ,创建新图形和轴。

name字符串,默认=无

用于标记的精确召回曲线名称。如果 None ,使用 estimator_name 如果不是 None 否则不显示标记。

plot_chance_level布尔,默认=假

是否绘制机会水平。机会水平是根据期间传递的数据计算出的阳性标签的流行率 from_estimatorfrom_predictions 电话

Added in version 1.3.

chance_level_kwdict,默认=无

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

Added in version 1.3.

despine布尔,默认=假

是否从情节中删除顶部和右侧脊柱。

Added in version 1.6.

**kwargsdict

将传递给matplotlib的关键字参数 plot .

返回:
display : PrecisionRecallDisplayPrecisionRecallDisplay

存储计算值的对象。

注意到

平均精度(cf. average_precision_score )中的scikit-learn是在没有任何插值的情况下计算的。为了与此指标保持一致,准确率-召回率曲线也在没有任何插值的情况下绘制(逐步风格)。

您可以通过传递关键字参数更改此样式 drawstyle="default" .然而,该曲线将不会与报告的平均精密度严格一致。