> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wandb.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# pr_curve()

export const GitHubLink = ({url}) => <a href={url} target="_blank" rel="noopener noreferrer" className="github-source-link">
    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
      <path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z" />
    </svg>
    Source GitHub
  </a>;

<GitHubLink url="https://github.com/wandb/wandb/blob/main/wandb/plot/pr_curve.py" />

### <kbd>fonction</kbd> `pr_curve`

```python theme={null}
pr_curve(
    y_true: 'Iterable[T] | None' = None,
    y_probas: 'Iterable[numbers.Number] | None' = None,
    labels: 'list[str] | None' = None,
    classes_to_plot: 'list[T] | None' = None,
    interp_size: 'int' = 21,
    title: 'str' = 'Precision-Recall Curve',
    split_table: 'bool' = False
) → CustomChart
```

Construit une courbe précision-rappel (PR).

La courbe précision-rappel est particulièrement utile pour évaluer des classificateurs sur des jeux de données déséquilibrés. Une aire élevée sous la courbe PR indique à la fois une précision élevée (un faible taux de faux positifs) et un rappel élevé (un faible taux de faux négatifs). La courbe donne des indications sur l’équilibre entre faux positifs et faux négatifs à différents seuils, ce qui aide à évaluer les performances d’un modèle.

**Arguments :**

* `y_true`:  Vraies étiquettes binaires. La forme doit être (`num_samples`,).
* `y_probas`:  Scores ou probabilités prédits pour chaque classe. Ces valeurs peuvent être des estimations de probabilité, des scores de confiance ou des valeurs de décision sans seuillage. La forme doit être (`num_samples`, `num_classes`).
* `labels`:  Liste facultative de noms de classes pour remplacer  les valeurs numériques dans `y_true` afin de faciliter l’interprétation du graphique.  Par exemple, `labels = ['dog', 'cat', 'owl']` remplacera 0 par  'dog', 1 par 'cat' et 2 par 'owl' dans le graphique. Si elle n’est pas fournie,  les valeurs numériques de `y_true` seront utilisées.
* `classes_to_plot`:  Liste facultative de valeurs de classe uniques de  y\_true à inclure dans le graphique. Si elle n’est pas spécifiée, toutes les classes uniques  de y\_true seront représentées.
* `interp_size`:  Nombre de points servant à interpoler les valeurs de rappel. Les  valeurs de rappel seront fixées à `interp_size` points uniformément répartis  dans l’intervalle \[0, 1], et la précision sera interpolée  en conséquence.
* `title`:  Titre du graphique. La valeur par défaut est "Courbe précision-rappel".
* `split_table`:  Indique si le tableau doit être séparé dans une section distincte  de l’UI W\&B. Si `True`, le tableau sera affiché dans une section nommée  "Custom Chart Tables". La valeur par défaut est `False`.

**Retourne :**

* `CustomChart`:  Un objet de graphique personnalisé qui peut être enregistré dans W\&B. Pour enregistrer le  graphique, transmettez-le à `wandb.log()`.

**Exceptions levées :**

* `wandb.Error`:  Si NumPy, pandas ou scikit-learn n’est pas installé.

**Exemple :**

```python theme={null}
import wandb

# Exemple de détection de spam (classification binaire)
y_true = [0, 1, 1, 0, 1]  # 0 = pas spam, 1 = spam
y_probas = [
    [0.9, 0.1],  # Probabilités prédites pour le premier échantillon (pas spam)
    [0.2, 0.8],  # Deuxième échantillon (spam), et ainsi de suite
    [0.1, 0.9],
    [0.8, 0.2],
    [0.3, 0.7],
]

labels = ["not spam", "spam"]  # Noms de classes facultatifs pour une meilleure lisibilité

with wandb.init(project="spam-detection") as run:
    pr_curve = wandb.plot.pr_curve(
         y_true=y_true,
         y_probas=y_probas,
         labels=labels,
         title="Precision-Recall Curve for Spam Detection",
    )
    run.log({"pr-curve": pr_curve})
```
