Lire une matrice de confusion
Un même modèle peut repérer beaucoup de cas recherchés tout en produisant trop d'alertes. Une seule mesure ne montre pas ces deux erreurs. La matrice de confusion les sépare.
Pour pratiquer, utilise une règle fixée pour cet exercice : annoncer un avis faible si le nombre maximal de mensualités d'une commande atteint six. Cette règle n'a pas été apprise par un modèle. Tu vas comparer ses réponses aux avis déjà observés dans Olist, puis changer le seuil.
1. Nommer les quatre cases
Une ligne à classer représente une commande ayant au moins un paiement et un
avis. MAX retient le plus grand nombre de mensualités de ses paiements, sans
les additionner. MIN retient sa note la plus basse : « avis faible » signifie
ici qu'au moins un avis de la commande vaut 1 ou 2 sur 5. Chaque table est
regroupée avant la jointureRapprocher deux tables sur une colonne commune, pour lire ensemble des informations qui sont stockées séparément. pour ne compter une commande qu'une fois.
Les deux colonnes utilisées sont non nulles dans cette base ; les commandes
sans paiement ou sans avis sont exclues par la jointure.
WITH paiements AS (
SELECT payment_order_id AS order_id, MAX(payment_installments) AS mensualites
FROM order_payments GROUP BY payment_order_id
),
avis AS (
SELECT order_id, MIN(review_score) AS note
FROM order_reviews GROUP BY order_id
),
evaluation AS (
SELECT mensualites >= 6 AS prediction_faible, note <= 2 AS faible_reel
FROM paiements JOIN avis USING (order_id)
)
SELECT prediction_faible, faible_reel, COUNT(*) AS commandes
FROM evaluation
GROUP BY prediction_faible, faible_reel
ORDER BY prediction_faible DESC, faible_reel DESC;Dans les expressions vrai positifLe modèle a répondu oui, et la réalité était oui. Il a annoncé un retard qui a bien eu lieu., faux positifLe modèle a répondu oui, et la réalité était non. Une alerte pour rien, dont le coût dépend de ce que l'alerte déclenche., faux négatifLe modèle a répondu non, et la réalité était oui. Un cas manqué, un retard que personne n'a vu venir. et vrai négatifLe modèle a répondu non, et la réalité était non. Sur une population où le cas cherché est rare, cette case porte presque toutes les lignes., le premier mot indique si la prédiction est juste. Le second nomme la réponse du modèle. « Positif » désigne ici l'avis faible recherché ; il ne veut pas dire que le résultat est souhaitable. Un avis faible a une note de 1 ou 2 sur 5.
Avant d'exécuter, classe chacune de ces situations : vrai positif, faux positif, faux négatif ou vrai négatif.
- La règle déclenche une alerte et la commande reçoit réellement un avis faible.
- La règle déclenche une alerte, mais la commande reçoit un avis noté de 3 à 5.
- La règle ne déclenche pas d'alerte, mais la commande reçoit un avis faible.
- La règle ne déclenche pas d'alerte et la commande reçoit un avis noté de 3 à 5.
Vérifier après avoir classé les quatre situations
| Prédiction | Réalité | Nom | Lecture métier |
|---|---|---|---|
| oui | oui | vrai positif | avis faible repéré |
| oui | non | faux positif | alerte sans avis faible |
| non | oui | faux négatif | avis faible manqué |
| non | non | vrai négatif | absence d'alerte correcte |
2. Calculer rappel et précision
- Le rappel répond : parmi les avis faibles réels, quelle part a été repérée ?
- La précision répond : parmi les alertes, quelle part était juste ?
Sur le résultat réel de la section 1, additionne d'abord les deux cases où
faible_reel vaut true. C'est le dénominateur du rappel. Additionne ensuite
les deux cases où prediction_faible vaut true. C'est le dénominateur de la
précision. Le numérateur du rappel est le nombre d'avis faibles correctement
repérés. Le numérateur de la précision est le nombre d'alertes qui correspondent
réellement à un avis faible. Calcule les deux fractions dans ton éditeur ou sur
papier, puis ouvre le contrôle.
Comparer les fractions et les résultats au seuil de six
La requête renvoie 2 713 vrais positifs, 13 217 faux positifs, 11 819 faux négatifs et 70 923 vrais négatifs.
- Rappel :
2713 / (2713 + 11819) × 100, soit 18,67 %. - Précision :
2713 / (2713 + 13217) × 100, soit 17,03 %.
Les pourcentages sont arrondis à deux décimales. Le numérateur est le même ; les dénominateurs décrivent deux populations différentes.
S'il n'y a aucune alerte, la précision est non définie : son dénominateur vaut zéro. S'il n'y a aucun avis faible réel, c'est le rappel qui est non défini. Ne remplace pas une division impossible par une précision ou un rappel de 0 %. Les formules sont aussi décrites dans les références de scikit-learn sur la précision et le rappel.
3. Relier la mesure à l'action
Imagine qu'une alerte déclenche un appel. Un faux positif mobiliserait alors du temps sur une commande sans avis faible ; un faux négatif laisserait une commande avec avis faible hors de cette liste d'appels. Cela ne prouve ni que l'appel était inutile dans le premier cas, ni qu'il aurait évité l'avis dans le second. Il faut confirmer l'action envisagée et ses effets avant de lui attribuer un coût.
Avant de recommander un seuil, écris :
- ce que déclenche une alerte ;
- le coût d'un faux positif ;
- le coût d'un faux négatif ;
- la contrainte de capacité de l'équipe.
Une matrice compte les erreurs. Elle ne choisit pas leur coût à la place de l'entreprise. Ici, les avis sont déjà connus et la matrice porte sur toute la population retenue. Ce calcul rétrospectif ne mesure pas une performance sur un jeu de test indépendant et ne prouve pas qu'une intervention préviendrait les avis faibles.
4. Modifier un seuil et vérifier
Reprends la matrice réelle de la section 1 avec un seuil de trois mensualités au lieu de six. Prédis d'abord le sens de variation du nombre d'alertes. Calcule ensuite rappel et précision pour les deux seuils.
Si tu bloques, remplace seulement mensualites >= 6 par mensualites >= 3,
puis reprends les deux fractions avec les nouveaux comptes.
Pour vérifier, la somme des quatre cases doit rester égale entre les deux seuils : la population évaluée ne change pas. Seule la réponse de la règle change.
Contrôler la modification du seuil
| Seuil | Vrais positifs | Faux positifs | Faux négatifs | Vrais négatifs | Alertes | Rappel | Précision |
|---|---|---|---|---|---|---|---|
| 6 | 2 713 | 13 217 | 11 819 | 70 923 | 15 930 | 18,67 % | 17,03 % |
| 3 | 6 171 | 32 305 | 8 361 | 51 835 | 38 476 | 42,46 % | 16,04 % |
Les deux matrices comptent 98 672 commandes, dont 14 532 ont au moins un
avis faible. Au seuil de trois, le rappel est 6171 / 14532 × 100 et la précision
6171 / 38476 × 100, arrondis à deux décimales. Davantage d'avis faibles sont
repérés, mais davantage d'alertes sont produites. Ici, la précision baisse ; sa
variation ne se déduit pas du seul abaissement du seuil.
5. Transférer à une autre décision
Choisis une cible oui/non de ton projet. Construis une petite matrice, nomme les deux erreurs avec les mots du métier, puis recommande la mesure à surveiller. Une autre personne doit pouvoir contester ton choix en discutant le coût d'une erreur, sans avoir à corriger tes calculs.