Consolider

Fiches de révision & flashcards

L'essentiel condensé — des fiches de référence à garder sous la main, et des flashcards pour tester sa mémoire. Cliquez sur une carte pour la retourner.

Fiches de référence

Métriques de classification — quelle métrique pour quel problème

MétriqueQuestion poséeÀ privilégier quand…
PrécisionParmi mes alertes, combien de vraies ?le faux positif coûte cher
RappelParmi les vrais cas, combien détectés ?rater un cas coûte cher (fraude, santé)
F1Équilibre précision / rappelclasses déséquilibrées
AUCQualité de ranking globalecomparer des modèles hors seuil

SQL — les 5 requêtes qui couvrent 80 % du quotidien

-- 1. Aperçu rapide
SELECT * FROM orders LIMIT 20;

-- 2. Doublons sur une clé
SELECT order_id, COUNT(*) FROM orders
GROUP BY order_id HAVING COUNT(*) > 1;

-- 3. Taux de valeurs nulles par colonne
SELECT
  100.0 * COUNT(*) FILTER (WHERE amount IS NULL) / COUNT(*) AS pct_null_amount
FROM orders;

-- 4. Agrégat glissant sur 7 jours
SELECT order_date,
       AVG(amount) OVER (ORDER BY order_date ROWS 6 PRECEDING) AS moy_7j
FROM daily_orders;

-- 5. Dédupliquer en gardant la ligne la plus récente
SELECT DISTINCT ON (customer_id) *
FROM customers
ORDER BY customer_id, updated_at DESC;

pandas — les gestes qui sauvent

# Profil rapide d'un DataFrame
df.info(); df.describe(include="all").T; df.isna().mean().sort_values(ascending=False)

# Valeurs les plus fréquentes d'une colonne
df["country"].value_counts(normalize=True).head(10)

# Jointure avec validation de cardinalité (détecte les mauvaises surprises)
df.merge(dim, on="customer_id", validate="many_to_one")

# Agrégations multiples nommées
df.groupby("segment").agg(ca_total=("amount", "sum"), panier_moyen=("amount", "mean"))

# Découper une variable continue en classes
df["tranche_age"] = pd.cut(df["age"], bins=[0, 25, 40, 60, 120])

Flashcards — testez-vous

Pourquoi la précision seule est-elle trompeuse sur des classes déséquilibrées ?

cliquer pour retourner

Prédire toujours la classe majoritaire donne une précision élevée et un modèle inutile. Regardez rappel, F1 ou AUC.

Quelle est la première chose à faire avant d'entraîner un modèle complexe ?

cliquer pour retourner

Construire une baseline honnête : moyenne glissante, règle métier ou régression logistique.

Citez trois promesses typiques d'un contrat de données.

cliquer pour retourner

Complétude (pas de null), unicité (pas de doublon de clé), domaine de valeurs (listes fermées, bornes).

SHAP explique-t-il la causalité ?

cliquer pour retourner

Non. SHAP décrit comment le modèle utilise les variables. En présence de corrélations, l'attribution peut induire en erreur.

Qu'est-ce que le training-serving skew ?

cliquer pour retourner

Un écart entre les features d'entraînement et de production, souvent parce qu'elles sont implémentées deux fois.

Quel test simple garantit qu'un notebook est reproductible ?

cliquer pour retourner

« Restart Kernel & Run All » sur un environnement frais : mêmes chiffres ou rien.

Quand un feature store se justifie-t-il vraiment ?

cliquer pour retourner

Quand plusieurs modèles partagent des features, avec du temps réel, et une équipe pour l'opérer. Sinon, une table partagée suffit.

Comment présenter une métrique technique à un comité de direction ?

cliquer pour retourner

La traduire en euros, heures ou clients. « AUC 0,91 » devient « sur 100 clients à risque, on en repère 78 ».

Qu'est-ce que le point-in-time correctness ?

cliquer pour retourner

La garantie qu'une feature d'entraînement n'utilise que des données disponibles au moment de la décision — sinon, fuite temporelle.

Astuce : une carte par jour au café, et le glossaire devient un réflexe.