> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-update-reference-docs-60.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# confusion_matrix()

export const GitHubLink = ({url, compact = false}) => <a href={url} target="_blank" rel="noopener noreferrer" className={compact ? "source-link" : "github-source-link"}>
    {compact ? "voir la source" : <>
    <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 compact url="https://github.com/wandb/wandb/blob/main/wandb/plot/confusion_matrix.py#L16" />

## <Badge color="blue" size="lg" shape="rounded">fonction</Badge> wandb.plot.confusion\_matrix()

Construit une matrice de confusion à partir d'une séquence de probabilités ou de prédictions.

```python theme={null}
probs: 'Sequence[Sequence[float]] | None' = None,
y_true: 'Sequence[T] | None' = None,
preds: 'Sequence[T] | None' = None,
class_names: 'Sequence[str] | None' = None,
title: 'str' = 'Confusion Matrix Curve',
split_table: 'bool' = False
```

<div id="args">
  ## Arguments
</div>

<ResponseField name="probs" type="Sequence[Sequence[float]] | None">
  Une séquence de probabilités prédites pour chaque classe. La forme de la séquence doit être (N, K), où N est le nombre d'échantillons et K le nombre de classes. Si ce paramètre est fourni, `preds` ne doit pas l'être.
</ResponseField>

<ResponseField name="y_true" type="Sequence[T] | None">
  Une séquence d'étiquettes réelles.
</ResponseField>

<ResponseField name="preds" type="Sequence[T] | None">
  Une séquence d'étiquettes de classes prédites. Si ce paramètre est fourni, `probs` ne doit pas l'être.
</ResponseField>

<ResponseField name="class_names" type="Sequence[str] | None">
  Une séquence de noms de classes. S'ils ne sont pas fournis, les noms de classes sont définis comme « Class\_1 », « Class\_2 », etc.
</ResponseField>

<ResponseField name="title" type="str">
  Titre du graphique de la matrice de confusion.
</ResponseField>

<ResponseField name="split_table" type="bool">
  Indique si le tableau doit être placé dans une section distincte de l'interface W\&B. Si `True`, le tableau s'affiche dans une section nommée « Custom Chart Tables ». La valeur par défaut est `False`.
</ResponseField>

<div id="returns">
  ## Retourne
</div>

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

<div id="raises">
  ## Exceptions levées
</div>

* `ValueError`: Si `probs` et `preds` sont tous deux fournis, ou si le nombre de prédictions et d'étiquettes réelles n'est pas identique. Si le nombre de classes prédites uniques dépasse le nombre de noms de classes, ou si le nombre d'étiquettes réelles uniques dépasse le nombre de noms de classes.
* `wandb.Error`: Si numpy n'est pas installé.

<div id="examples">
  ## Exemples
</div>

Journalisation d’une matrice de confusion avec des probabilités aléatoires pour la classification de la faune sauvage :

```python theme={null}
import numpy as np
import wandb

# Définir les noms de classes pour la faune sauvage
wildlife_class_names = ["Lion", "Tiger", "Elephant", "Zebra"]

# Générer des étiquettes réelles aléatoires (0 à 3 pour 10 échantillons)
wildlife_y_true = np.random.randint(0, 4, size=10)

# Générer des probabilités aléatoires pour chaque classe (10 échantillons x 4 classes)
wildlife_probs = np.random.rand(10, 4)
wildlife_probs = np.exp(wildlife_probs) / np.sum(
    np.exp(wildlife_probs),
    axis=1,
    keepdims=True,
)

# Initialiser le run W&B et enregistrer la matrice de confusion
with wandb.init(project="wildlife_classification") as run:
    confusion_matrix = wandb.plot.confusion_matrix(
        probs=wildlife_probs,
        y_true=wildlife_y_true,
        class_names=wildlife_class_names,
        title="Wildlife Classification Confusion Matrix",
    )
    run.log({"wildlife_confusion_matrix": confusion_matrix})
```

Dans cet exemple, des probabilités aléatoires sont utilisées pour générer une matrice de confusion.

Journalisation d’une matrice de confusion avec des prédictions simulées d’un modèle et une précision de 85 % :

```python theme={null}
import numpy as np
import wandb

# Définir les noms de classes pour la faune sauvage
wildlife_class_names = ["Lion", "Tiger", "Elephant", "Zebra"]

# Simuler les étiquettes réelles pour 200 images d'animaux (distribution déséquilibrée)
wildlife_y_true = np.random.choice(
    [0, 1, 2, 3],
    size=200,
    p=[0.2, 0.3, 0.25, 0.25],
)

# Simuler les prédictions du modèle avec une précision de 85 %
wildlife_preds = [
    y_t
    if np.random.rand() < 0.85
    else np.random.choice([x for x in range(4) if x != y_t])
    for y_t in wildlife_y_true
]

# Initialiser le run W&B et enregistrer la matrice de confusion
with wandb.init(project="wildlife_classification") as run:
    confusion_matrix = wandb.plot.confusion_matrix(
        preds=wildlife_preds,
        y_true=wildlife_y_true,
        class_names=wildlife_class_names,
        title="Simulated Wildlife Classification Confusion Matrix",
    )
    run.log({"wildlife_confusion_matrix": confusion_matrix})
```

Dans cet exemple, des prédictions sont simulées avec une précision de 85 % afin de générer une
matrice de confusion.
