Skip to content
View maxime2476's full-sized avatar
🎯
Focusing
🎯
Focusing

Block or report maxime2476

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
maxime2476/README.md
Maxime Gourguechon, data scientist. Vision par ordinateur, NLP, inférence causale.

Je construis des modèles. Du deep learning quand la donnée est riche (images, texte), de l'économétrie quand la question est causale et qu'une erreur d'interprétation coûte plus cher qu'un point de F1.

En ce moment

Stage de fin d'études chez Aubay, en vision par ordinateur, sur la segmentation d'images de récifs coralliens. Le pipeline se fait en deux temps, YOLO pour la détection puis SAM3 pour le masque, sur 8 000 images, et il tient 92 % de précision. Le vrai travail n'a pas été le modèle : il a été l'écart entre des photos propres et de vraies plongées. J'ai donc passé beaucoup de temps sur les augmentations (flou, dérive colorimétrique de l'eau, avec Albumentations) et sur l'automatisation de la préparation du dataset, ce qui a retiré six heures par cycle d'entraînement.

Pipeline de segmentation : 8 000 images de récifs coralliens, détection YOLO, masques SAM 3, 92 % de précision, avec préparation automatisée du dataset et augmentations ciblées.

À côté, je termine un M2 Économétrie et Statistiques à l'Université de Lille. Je cherche un CDI à partir de septembre 2026, à Paris ou en remote, sur la partie modèle : data scientist, ML engineer, AI engineer.

Une décision, écrite comme j'écris mes ADR

Mes dépôts consignent leurs choix d'architecture dans des ADR datés, parce que dans six mois j'aurai oublié pourquoi j'ai écarté l'autre option. Autant appliquer le format à la décision qu'on me demande d'expliquer à chaque entretien.

ADR-0000 : quitter la finance pour la data science

  • Statut : accepté
  • Date : septembre 2024

Contexte. Licence d'économie à Rouen, puis un M1 de finance et ingénierie financière à l'IAE Saint-Étienne. Bonne formation au risque et à la modélisation, mais la partie du travail que je voulais faire était l'estimation elle-même, pas la salle de marché.

Décision. Basculer sur le master Économétrie et Statistiques de Lille, et rattraper la programmation par les projets plutôt que par les cours : un dépôt public à chaque nouvelle famille de méthodes, mis en production jusqu'au bout.

Conséquences.

  • Je code depuis moins longtemps qu'un profil sorti d'école d'ingénieur, et ça se voit sur les sujets d'infrastructure.
  • En échange je lis un papier d'économétrie appliquée sans traducteur, je repère un biais de sélection avant de lancer le modèle, et je sais reconnaître un résultat qui ne vaut rien.
  • Décision non révisée depuis. Le stage de vision par ordinateur chez Aubay a confirmé le point : ce qui m'intéresse est la construction du modèle.

Quatre projets qui disent comment je travaille

causal-impact-lab  ·  l'effet causal d'un choc de politique monétaire restrictive sur l'emploi américain. La question, le signe attendu et les conditions de falsification ont été figés avant la première estimation. Quatre estimateurs plus tard (projection locale sur panel avec interaction, LP-DiD, double machine learning, LP hiérarchique bayésienne), sur un panel QCEW étendu à 1994-2020 et descendu au NAICS 3 chiffres, la réponse est un nul propre : le signe attendu sur les 25 horizons, des leads d'event study sans pré-tendance, des magnitudes petites et non significatives. Le projet le dit comme ça, en première page. C'est le résultat dont je suis le plus fier, et c'est celui qui n'a pas « marché ».
statsmodels · double ML · inférence bayésienne · pytest · mypy --strict · Docker · démo

Fonction de réponse estimée : effet relatif d'un choc monétaire restrictif sur l'emploi, panel QCEW 1994-2020, intervalle de confiance à 95 % couvrant zéro à tous les horizons de décision.

La figure est tracée depuis app/assets/headline_irf.csv du dépôt, sans retouche. C'est exactement ce que la bande de confiance doit montrer quand un résultat est nul : le signe est là, la précision ne suit pas.

git-survival  ·  de l'analyse de survie appliquée aux historiques Git, pour estimer quand un contributeur décroche. Les mêmes outils qu'en épidémiologie, sauf que le « décès » est un dernier commit, et que la censure (le nouveau venu qui n'a simplement pas encore recommité) est traitée pour ce qu'elle est. Kaplan-Meier pour la courbe globale, Cox pour isoler les facteurs de risque (ratio de commits nocturnes, bus factor, sentiment des messages de commit, contagion des départs dans l'entourage direct), un modèle AFT qui choisit sa loi parmi plusieurs. Le rapport sort en HTML autonome.
lifelines · PyDriller · TextBlob · Plotly · Streamlit

bmw-sales-analytics  ·  50 000 transactions BMW sur quinze ans, enrichies par des API macro, carburant, CO₂ et change. Le pipeline atteint un R² validé croisé d'environ 0,85 sur de la donnée porteuse de signal, mais ce jeu-là est structurellement propre et vide : aucune variable n'explique le prix. Plutôt que de livrer un modèle décoratif, j'ai documenté l'absence de signal et réorienté le produit vers un simulateur de scénarios avec intervalles de crédibilité. Le reste est de la plomberie assumée : tests, couverture, images multi-étapes, CI, docs publiées.
XGBoost · SHAP · DuckDB · MLflow · Docker · GitHub Actions · démo

Aperçu animé du tableau de bord BMW Sales Analytics : vue exécutive, intégrité des données, économétrie, benchmark ML, explicabilité SHAP, simulateur de scénarios.

Le tableau de bord en conditions réelles, de la vue exécutive au simulateur de scénarios. Cliquer ouvre la démo en ligne.

heron  ·  « nommé d'après l'oiseau qui a une meilleure posture que toi ». Un moniteur de posture par webcam qui tourne en local, sans rien envoyer nulle part. Un Isolation Forest apprend ma posture de référence pendant un court calibrage puis signale les dérives, le Face Mesh de MediaPipe compte les clignements pour la fatigue oculaire, et la capture tourne dans un thread séparé de l'analyse pour que l'affichage ne lague pas. Écrit d'abord parce que j'en avais besoin.
MediaPipe · OpenCV · scikit-learn · SQLite · Streamlit

Il y a aussi sentiment-powell-nlp, un pipeline TF-IDF et K-Means sur 40 conférences de presse du FOMC, qui relie le ton hawkish ou dovish de la Fed aux rendements boursiers à trente jours. C'est plus ancien, mais c'est là que j'ai commencé à faire du NLP sérieusement.

Trois façons de vérifier ce que je raconte

Plutôt que d'être cru sur parole, voici comment ouvrir le capot, selon le temps disponible.

3 min   Les deux applications tournent en ligne, rien à installer : le simulateur BMW et causal-impact-lab.

20 min   Lire deux fichiers. Les résultats de causal-impact-lab annoncent le verdict, ses caveats et la limite de couverture des données, dans cet ordre. Le rapport de capacité prédictive de BMW explique pourquoi le modèle n'était pas déployable et ce que j'ai livré à la place.

1 h   Cloner causal-impact-lab, puis uv sync --all-extras, uv run pytest, uv run ruff check . et uv run mypy. Ce sont exactement les portes de qualité qui tournent en CI à chaque push, elles doivent passer sur votre machine aussi.

Trois notes

Un modèle se défend à l'écrit autant qu'au tableau blanc. Trois textes courts, tirés de choses que j'ai réellement eues à trancher.

Ma façon de faire, en quatre lignes

  • J'écris la question et ce qui la ferait échouer avant de lancer la première régression, sinon on finit toujours par trouver ce qu'on cherchait.
  • Un résultat nul se publie comme un autre. Deux de mes projets se terminent sur un nul ou sur un dataset sans signal, et c'est écrit en haut du README, pas dans une note de bas de page.
  • Un modèle qui ne tourne que dans mon notebook ne compte pas. Docker, tests, CI et suivi d'expériences font partie du travail, pas de la finition.
  • Les choix d'architecture sont datés et justifiés dans des ADR, parce que dans six mois j'aurai oublié pourquoi j'ai écarté l'autre option.

Les méthodes, rangées par ce que j'en ai vraiment fait

Carte des méthodes en trois colonnes. Livré et en service : YOLO et SAM 3, Albumentations, XGBoost, SHAP, lifelines, statsmodels, projections locales, MediaPipe et OpenCV, DuckDB, Streamlit, Docker, GitHub Actions, pytest et mypy. Utilisé en projet : PyTorch, double machine learning, LP bayésienne, TF-IDF et K-Means, DEA et Simar-Wilson, bootstrap non gaussien, MLflow, R, SAS, SQL, Power BI. Lu, pas encore livré : déploiement managé AWS, monitoring en production, agents LLM en production.

Une barre de compétence à 90 % ne veut rien dire, alors voici les trois seuls niveaux que je sais défendre en entretien. La troisième colonne est courte et elle est exacte : ce sont les sujets où je peux tenir une conversation et pas encore une mise en production.

Ce que je ne sais pas encore

Je n'ai pas déployé sur une infra cloud de production : mes modèles vivent en Docker et sur Hugging Face Spaces. Je prépare la certification AWS Machine Learning Engineer Associate pour combler ça, en visant le déploiement et le monitoring plutôt que le trivia de service. Côté LLM et agents, je lis et je bricole, mais je n'ai pas encore mis un système à base d'agents en production. Autant le dire ici plutôt qu'en entretien.

Le reste

Master 1 Finance et ingénierie financière à l'IAE Saint-Étienne avant Lille, licence d'économie à Rouen. Mémoire de M1 sur la correction de biais non gaussiens par bootstrap, panel de 15 pays sur 55 ans, DEA et régression de Simar-Wilson. Certification Data Analyst (DataCamp), Voltaire niveau professionnel. Anglais B2. En dehors : les marchés, les cryptos, et des parties d'échecs autour de 1200 ELO.

Me joindre

LinkedIn · maximeg2408@gmail.com · CV en PDF

Le CV est compilé par GitHub Actions depuis son source LaTeX à chaque modification, donc ce lien pointe toujours vers la version courante.

Les illustrations de cette page sont des SVG animés écrits pour ce profil, pas des badges générés : la courbe du haut est une vraie courbe de survie (bande de confiance, marques de censure, médiane), et la fonction de réponse plus haut est tracée depuis les résultats réels de causal-impact-lab, recopiés dans data/headline_irf.csv. Le GIF est un enregistrement du tableau de bord, pas une maquette. Tout se régénère avec python tools/render_assets.py : si un chiffre bouge, l'image bouge avec lui.

Pinned Loading

  1. bmw-sales-analytics bmw-sales-analytics Public

    Production-grade analytics, econometrics & decision intelligence for the BMW luxury-car market. An honest ML/DL, external-API augmentation, SHAP, Streamlit, Docker, CI/CD. Live demo below.

    Jupyter Notebook 1

  2. sentiment-powell-nlp sentiment-powell-nlp Public

    Projet de NLP appliqué aux conférences de presse du FOMC (2020–2025) visant à analyser l’évolution du discours monétaire de la Réserve fédérale américaine. À travers des méthodes de text mining, TF…

    Python 1

  3. git-survival git-survival Public

    Analyse de survie appliquée aux historiques Git pour comprendre pourquoi et quand les contributeurs abandonnent un projet.

    Python 1