PrecisionRecallDisplay#
- class sklearn.metrics.PrecisionRecallDisplay(precision, recall, *, average_precision=None, name=None, pos_label=None, prevalence_pos_label=None, estimator_name='deprecated')[source]#
精确度-召回率可视化。
建议使用
from_estimator或from_predictions创建一个PrecisionRecallDisplay。所有参数都作为属性存储。有关
scikit-learn可视化工具的一般信息,请参阅可视化指南。有关解释这些图的指导,请参阅模型评估指南。- 参数:
- precisionndarray
精确度值。
- recallndarray
召回率值。
- average_precisionfloat, default=None
平均精确度。如果为 None,则不显示平均精确度。
- namestr, default=None
估计器名称。如果为 None,则不显示估计器名称。
版本 1.8 中更改:
estimator_name已弃用,取而代之的是name。- pos_labelint, float, bool or str, default=None
在计算精确度和召回率指标时,被认为是正类的类别。如果不是
None,此值将显示在 x 轴和 y 轴标签中。0.24 版本新增。
- prevalence_pos_labelfloat, default=None
正标签的流行度。它用于绘制机会水平线。如果为 None,即使在绘图时将
plot_chance_level设置为 True,也不会绘制机会水平线。在版本 1.3 中新增。
- estimator_namestr, default=None
估计器的名称。如果为 None,则不显示估计器名称。
自版本 1.8 以来已弃用:
estimator_name已弃用,并将在 1.10 版中移除。请改用name。
- 属性:
- line_matplotlib Artist
精确率-召回率曲线。
- chance_level_matplotlib Artist or None
机会水平线。如果未绘制机会水平,则为
None。在版本 1.3 中新增。
- ax_matplotlib Axes
带有精确率-召回率曲线的坐标轴。
- figure_matplotlib Figure
包含曲线的图。
另请参阅
precision_recall_curve计算不同概率阈值的精确度-召回率对。
PrecisionRecallDisplay.from_estimator给定二元分类器绘制精确率-召回率曲线。
PrecisionRecallDisplay.from_predictions使用二元分类器的预测绘制精确率-召回率曲线。
注意事项
scikit-learn 中的平均精确度(参见
average_precision_score)在计算时没有进行任何插值。为了与此指标保持一致,精确率-召回率曲线也未进行任何插值绘制(阶梯式样式)。您可以通过在
plot、from_estimator或from_predictions中传递关键字参数drawstyle="default"来更改此样式。但是,曲线将不会与报告的平均精确度严格一致。示例
>>> 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()
- classmethod from_estimator(estimator, X, y, *, sample_weight=None, drop_intermediate=False, response_method='auto', pos_label=None, name=None, ax=None, plot_chance_level=False, chance_level_kw=None, despine=False, **kwargs)[source]#
给定估计器和一些数据,绘制精确度-召回率曲线。
有关
scikit-learn可视化工具的一般信息,请参阅可视化指南。有关解释这些图的指导,请参阅模型评估指南。- 参数:
- 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_intermediate布尔值,默认为 False
是否丢弃一些次优阈值,这些阈值不会出现在绘制的精确率-召回率曲线上。这对于创建更轻量级的精确率-召回率曲线很有用。
在版本 1.3 中新增。
- 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
曲线的标签名称。如果为
None,则不使用名称。- axmatplotlib axes, default=None
用于绘图的坐标轴对象。如果为
None,则会创建新的图和坐标轴。- plot_chance_levelbool, default=False
是否绘制机会水平。机会水平是根据在调用
from_estimator或from_predictions期间传递的数据计算得出的正标签的流行度。在版本 1.3 中新增。
- chance_level_kwdict, default=None
要传递给 matplotlib 的
plot以渲染机会水平线的关键字参数。在版本 1.3 中新增。
- despinebool, default=False
是否从图中移除顶部和右侧的脊线。
版本 1.6 中新增。
- **kwargsdict
要传递给 matplotlib 的
plot的关键字参数。
- 返回:
- display
PrecisionRecallDisplay
- display
另请参阅
PrecisionRecallDisplay.from_predictions使用估计概率或决策函数输出绘制精确率-召回率曲线。
注意事项
scikit-learn 中的平均精确度(参见
average_precision_score)在计算时没有进行任何插值。为了与此指标保持一致,精确率-召回率曲线也未进行任何插值绘制(阶梯式样式)。您可以通过传递关键字参数
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()
- classmethod from_predictions(y_true, y_score=None, *, sample_weight=None, drop_intermediate=False, pos_label=None, name=None, ax=None, plot_chance_level=False, chance_level_kw=None, despine=False, y_pred='deprecated', **kwargs)[source]#
给定二元类别预测,绘制精确度-召回率曲线。
有关
scikit-learn可视化工具的一般信息,请参阅可视化指南。有关解释这些图的指导,请参阅模型评估指南。- 参数:
- y_true形状为 (n_samples,) 的 array-like
真实的二元标签。
- y_score形状为 (n_samples,) 的类数组
估计概率或决策函数输出。
版本 1.8 中新增:
y_pred已重命名为y_score。- sample_weightshape 为 (n_samples,) 的 array-like, default=None
样本权重。
- drop_intermediate布尔值,默认为 False
是否丢弃一些次优阈值,这些阈值不会出现在绘制的精确率-召回率曲线上。这对于创建更轻量级的精确率-召回率曲线很有用。
在版本 1.3 中新增。
- pos_labelint, float, bool or str, default=None
在计算精确率和召回率指标时,被认为是正类的类别。当
pos_label=None时,如果y_true在 {-1, 1} 或 {0, 1} 中,则pos_label设置为 1,否则将引发错误。- namestr, default=None
曲线的标签名称。如果为
None,名称将设置为"Classifier"。- axmatplotlib axes, default=None
用于绘图的坐标轴对象。如果为
None,则会创建新的图和坐标轴。- plot_chance_levelbool, default=False
是否绘制机会水平。机会水平是根据在调用
from_estimator或from_predictions期间传递的数据计算得出的正标签的流行度。在版本 1.3 中新增。
- chance_level_kwdict, default=None
要传递给 matplotlib 的
plot以渲染机会水平线的关键字参数。在版本 1.3 中新增。
- despinebool, default=False
是否从图中移除顶部和右侧的脊线。
版本 1.6 中新增。
- y_pred形状为 (n_samples,) 的类数组
估计概率或决策函数输出。
自版本 1.8 以来已弃用:
y_pred已弃用,并将在 1.10 版中移除。请改用y_score。- **kwargsdict
要传递给 matplotlib 的
plot的关键字参数。
- 返回:
- display
PrecisionRecallDisplay
- display
另请参阅
PrecisionRecallDisplay.from_estimator使用估计器绘制精确率-召回率曲线。
注意事项
scikit-learn 中的平均精确度(参见
average_precision_score)在计算时没有进行任何插值。为了与此指标保持一致,精确率-召回率曲线也未进行任何插值绘制(阶梯式样式)。您可以通过传递关键字参数
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_score = clf.predict_proba(X_test)[:, 1] >>> PrecisionRecallDisplay.from_predictions( ... y_test, y_score) <...> >>> plt.show()
- plot(ax=None, *, name=None, plot_chance_level=False, chance_level_kw=None, despine=False, **kwargs)[source]#
绘制可视化图。
额外的关键字参数将传递给 matplotlib 的
plot。- 参数:
- axMatplotlib Axes, default=None
用于绘图的坐标轴对象。如果为
None,则会创建新的图和坐标轴。- namestr, default=None
用于标记的精确率-召回率曲线名称。如果为
None,则在name不为None的情况下使用name,否则不显示标签。- plot_chance_levelbool, default=False
是否绘制机会水平。机会水平是根据在调用
from_estimator或from_predictions期间传递的数据计算得出的正标签的流行度。在版本 1.3 中新增。
- chance_level_kwdict, default=None
要传递给 matplotlib 的
plot以渲染机会水平线的关键字参数。在版本 1.3 中新增。
- despinebool, default=False
是否从图中移除顶部和右侧的脊线。
版本 1.6 中新增。
- **kwargsdict
要传递给 matplotlib 的
plot的关键字参数。
- 返回:
- display
PrecisionRecallDisplay 存储计算值的对象。
- display
注意事项
scikit-learn 中的平均精确度(参见
average_precision_score)在计算时没有进行任何插值。为了与此指标保持一致,精确率-召回率曲线也未进行任何插值绘制(阶梯式样式)。您可以通过传递关键字参数
drawstyle="default"来更改此样式。但是,曲线将不会与报告的平均精确度严格一致。