> ## 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.

# confusion_matrix()

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/confusion_matrix.py" />

### <kbd>fonction</kbd> `confusion_matrix`

```python theme={null}
confusion_matrix(
    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
) → CustomChart
```

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

**Arguments :**

* `probs` :  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 `probs` est fourni, `preds` ne doit pas être fourni.
* `y_true` :  Une séquence d'étiquettes réelles.
* `preds` :  Une séquence d'étiquettes de classes prédites. Si `preds` est fourni,  `probs` ne doit pas être fourni.
* `class_names` :  Séquence de noms de classes. Si elle n'est pas  fournie, les noms de classes seront définis comme "Class\_1", "Class\_2", etc.
* `title` :  Titre du graphique de matrice de confusion.
* `split_table` :  Indique si le tableau doit être placé dans une section distincte  de l'interface 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é pouvant être enregistré dans W\&B. Pour enregistrer le  graphique, passez-le à `wandb.log()`.

**Exceptions levées :**

* `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é.

**Exemples :**
Enregistrer une matrice de confusion avec des probabilités aléatoires pour une classification de la faune :

```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 journaliser 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.

Enregistrement d'une matrice de confusion avec des prédictions simulées d'un modèle et une exactitude 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 vraies étiquettes 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 journaliser 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="Matrice de confusion de classification simulée de la faune sauvage",
    )
    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.
