class_docstr: Precision Recall visualization.
  
  It is recommend to use
  :func:`~sklearn.metrics.PrecisionRecallDisplay.from_estimator` or
  :func:`~sklearn.metrics.PrecisionRecallDisplay.from_predictions` to create
  a :class:`~sklearn.metrics.PrecisionRecallDisplay`. All parameters are
  stored as attributes.
  
  Read more in the :ref:`User Guide <visualizations>`.
  
  Parameters
  ----------
  precision : ndarray
      Precision values.
  
  recall : ndarray
      Recall values.
  
  average_precision : float, default=None
      Average precision. If None, the average precision is not shown.
  
  estimator_name : str, default=None
      Name of estimator. If None, then the estimator name is not shown.
  
  pos_label : int, float, bool or str, default=None
      The class considered as the positive class. If None, the class will not
      be shown in the legend.
  
      .. versionadded:: 0.24
  
  prevalence_pos_label : float, default=None
      The prevalence of the positive label. It is used for plotting the
      chance level line. If None, the chance level line will not be plotted
      even if `plot_chance_level` is set to True when plotting.
  
      .. versionadded:: 1.3
  
  Attributes
  ----------
  line_ : matplotlib Artist
      Precision recall curve.
  
  chance_level_ : matplotlib Artist or None
      The chance level line. It is `None` if the chance level is not plotted.
  
      .. versionadded:: 1.3
  
  ax_ : matplotlib Axes
      Axes with precision recall curve.
  
  figure_ : matplotlib Figure
      Figure containing the curve.
  
  See Also
  --------
  precision_recall_curve : Compute precision-recall pairs for different
      probability thresholds.
  PrecisionRecallDisplay.from_estimator : Plot Precision Recall Curve given
      a binary classifier.
  PrecisionRecallDisplay.from_predictions : Plot Precision Recall Curve
      using predictions from a binary classifier.
  
  Notes
  -----
  The average precision (cf. :func:`~sklearn.metrics.average_precision_score`) in
  scikit-learn is computed without any interpolation. To be consistent with
  this metric, the precision-recall curve is plotted without any
  interpolation as well (step-wise style).
  
  You can change this style by passing the keyword argument
  `drawstyle="default"` in :meth:`plot`, :meth:`from_estimator`, or
  :meth:`from_predictions`. However, the curve will not be strictly
  consistent with the reported average precision.
  
  Examples
  --------
  >>> 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()
docstr: Plot precision-recall curve given binary class predictions.
  
  Parameters
  ----------
  y_true : array-like of shape (n_samples,)
      True binary labels.
  
  y_pred : array-like of shape (n_samples,)
      Estimated probabilities or output of decision function.
  
  sample_weight : array-like of shape (n_samples,), default=None
      Sample weights.
  
  pos_label : int, float, bool or str, default=None
      The class considered as the positive class when computing the
      precision and recall metrics.
  
  drop_intermediate : bool, default=False
      Whether to drop some suboptimal thresholds which would not appear
      on a plotted precision-recall curve. This is useful in order to
      create lighter precision-recall curves.
  
      .. versionadded:: 1.3
  
  name : str, default=None
      Name for labeling curve. If `None`, name will be set to
      `"Classifier"`.
  
  ax : matplotlib axes, default=None
      Axes object to plot on. If `None`, a new figure and axes is created.
  
  plot_chance_level : bool, default=False
      Whether to plot the chance level. The chance level is the prevalence
      of the positive label computed from the data passed during
      :meth:`from_estimator` or :meth:`from_predictions` call.
  
      .. versionadded:: 1.3
  
  chance_level_kw : dict, default=None
      Keyword arguments to be passed to matplotlib's `plot` for rendering
      the chance level line.
  
      .. versionadded:: 1.3
  
  **kwargs : dict
      Keyword arguments to be passed to matplotlib's `plot`.
  
  Returns
  -------
  display : :class:`~sklearn.metrics.PrecisionRecallDisplay`
  
  See Also
  --------
  PrecisionRecallDisplay.from_estimator : Plot precision-recall curve
      using an estimator.
  
  Notes
  -----
  The average precision (cf. :func:`~sklearn.metrics.average_precision_score`)
  in scikit-learn is computed without any interpolation. To be consistent
  with this metric, the precision-recall curve is plotted without any
  interpolation as well (step-wise style).
  
  You can change this style by passing the keyword argument
  `drawstyle="default"`. However, the curve will not be strictly
  consistent with the reported average precision.
  
  Examples
  --------
  >>> 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()
docstr_tok: ["Plot","precision-recall","curve","given","binary","class","predictions",".","Parameters","--","--","--","--","--","y_true",":","array-like","of","shape","(","n_samples",",",")","True","binary","labels",".","y_pred",":","array-like","of","shape","(","n_samples",",",")","Estimated","probabilities","or","output","of","decision","function",".","sample_weight",":","array-like","of","shape","(","n_samples",",",")",",","default=None","Sample","weights",".","pos_label",":","int",",","float",",","bool","or","str",",","default=None","The","class","considered","as","the","positive","class","when","computing","the","precision","and","recall","metrics",".","drop_intermediate",":","bool",",","default=False","Whether","to","drop","some","suboptimal","thresholds","which","would","not","appear","on","a","plotted","precision-recall","curve",".","This","is","useful","in","order","to","create","lighter","precision-recall","curves",".","..","versionadded",":",":","1.3","name",":","str",",","default=None","Name","for","labeling","curve",".","If","`","None","`",",","name","will","be","set","to","`","``","Classifier","''","`",".","ax",":","matplotlib","axes",",","default=None","Axes","object","to","plot","on",".","If","`","None","`",",","a","new","figure","and","axes","is","created",".","plot_chance_level",":","bool",",","default=False","Whether","to","plot","the","chance","level",".","The","chance","level","is","the","prevalence","of","the","positive","label","computed","from","the","data","passed","during",":","meth",":","`","from_estimator","`","or",":","meth",":","`","from_predictions","`","call",".","..","versionadded",":",":","1.3","chance_level_kw",":","dict",",","default=None","Keyword","arguments","to","be","passed","to","matplotlib","'s","`","plot","`","for","rendering","the","chance","level","line",".","..","versionadded",":",":","1.3","*","*","kwargs",":","dict","Keyword","arguments","to","be","passed","to","matplotlib","'s","`","plot","`",".","Returns","--","--","--","-","display",":",":","class",":","`","~sklearn.metrics.PrecisionRecallDisplay","`","See","Also","--","--","--","--","PrecisionRecallDisplay.from_estimator",":","Plot","precision-recall","curve","using","an","estimator",".","Notes","--","--","-","The","average","precision","(","cf",".",":","func",":","`","~sklearn.metrics.average_precision_score","`",")","in","scikit-learn","is","computed","without","any","interpolation",".","To","be","consistent","with","this","metric",",","the","precision-recall","curve","is","plotted","without","any","interpolation","as","well","(","step-wise","style",")",".","You","can","change","this","style","by","passing","the","keyword","argument","`","drawstyle=","''","default","''","`",".","However",",","the","curve","will","not","be","strictly","consistent","with","the","reported","average","precision",".","Examples","--","--","--","--",">",">",">","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","(",")"]
code: def from_predictions(
      cls,
      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,
      **kwargs,
  ):
      """Plot precision-recall curve given binary class predictions.
  
      Parameters
      ----------
      y_true : array-like of shape (n_samples,)
          True binary labels.
  
      y_pred : array-like of shape (n_samples,)
          Estimated probabilities or output of decision function.
  
      sample_weight : array-like of shape (n_samples,), default=None
          Sample weights.
  
      pos_label : int, float, bool or str, default=None
          The class considered as the positive class when computing the
          precision and recall metrics.
  
      drop_intermediate : bool, default=False
          Whether to drop some suboptimal thresholds which would not appear
          on a plotted precision-recall curve. This is useful in order to
          create lighter precision-recall curves.
  
          .. versionadded:: 1.3
  
      name : str, default=None
          Name for labeling curve. If `None`, name will be set to
          `"Classifier"`.
  
      ax : matplotlib axes, default=None
          Axes object to plot on. If `None`, a new figure and axes is created.
  
      plot_chance_level : bool, default=False
          Whether to plot the chance level. The chance level is the prevalence
          of the positive label computed from the data passed during
          :meth:`from_estimator` or :meth:`from_predictions` call.
  
          .. versionadded:: 1.3
  
      chance_level_kw : dict, default=None
          Keyword arguments to be passed to matplotlib's `plot` for rendering
          the chance level line.
  
          .. versionadded:: 1.3
  
      **kwargs : dict
          Keyword arguments to be passed to matplotlib's `plot`.
  
      Returns
      -------
      display : :class:`~sklearn.metrics.PrecisionRecallDisplay`
  
      See Also
      --------
      PrecisionRecallDisplay.from_estimator : Plot precision-recall curve
          using an estimator.
  
      Notes
      -----
      The average precision (cf. :func:`~sklearn.metrics.average_precision_score`)
      in scikit-learn is computed without any interpolation. To be consistent
      with this metric, the precision-recall curve is plotted without any
      interpolation as well (step-wise style).
  
      You can change this style by passing the keyword argument
      `drawstyle="default"`. However, the curve will not be strictly
      consistent with the reported average precision.
  
      Examples
      --------
      >>> 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()
      """
      pos_label, name = cls._validate_from_predictions_params(
          y_true,
          y_pred,
          sample_weight=sample_weight,
          pos_label=pos_label,
          name=name,
      )
  
      precision, recall, _ = precision_recall_curve(
          y_true,
          y_pred,
          pos_label=pos_label,
          sample_weight=sample_weight,
          drop_intermediate=drop_intermediate,
      )
      average_precision = average_precision_score(
          y_true,
          y_pred,
          pos_label=pos_label,
          sample_weight=sample_weight,
      )
  
      class_count = Counter(y_true)
      prevalence_pos_label = class_count[pos_label] / sum(
          class_count.values()
      )
  
      viz = PrecisionRecallDisplay(
          precision=precision,
          recall=recall,
          average_precision=average_precision,
          estimator_name=name,
          pos_label=pos_label,
          prevalence_pos_label=prevalence_pos_label,
      )
  
      return viz.plot(
          ax=ax,
          name=name,
          plot_chance_level=plot_chance_level,
          chance_level_kw=chance_level_kw,
          **kwargs,
      )
  
file_path: catboost/contrib/python/scikit-learn/py3/sklearn/metrics/_plot/precision_recall_curve.py
imports: from collections import Counter
  from ...utils._plotting import _BinaryClassifierCurveDisplayMixin
  from .._ranking import average_precision_score, precision_recall_curve
label_desc: Use image node_id 4 for calling the PrecisionRecallDisplay obj's underlying member method code with example usage: obj.from_predictions(cls, y_true, y_pred) and returns: viz