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étrique | Question posée | À privilégier quand… |
|---|---|---|
| Précision | Parmi mes alertes, combien de vraies ? | le faux positif coûte cher |
| Rappel | Parmi les vrais cas, combien détectés ? | rater un cas coûte cher (fraude, santé) |
| F1 | Équilibre précision / rappel | classes déséquilibrées |
| AUC | Qualité de ranking globale | comparer 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 retournerPré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 retournerConstruire 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 retournerComplé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 retournerNon. 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 retournerUn é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 retournerQuand 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 retournerLa 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 retournerLa 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.