Abdellah Hailal

Science des données UQTR · Trois-Rivières

Étudiant finissant en science des données à l'Université du Québec à Trois-Rivières. Je construis des modèles d'apprentissage automatique et d'inférence causale, surtout sur des signaux biomédicaux, et je les livre jusqu'au rapport ou à l'application.

Disponible pour un stage crédité de janvier à avril 2027

Travaux

Projets choisis

Projet individuel · Supervision du Pr Usef Faghihi

Arythmies cardiaques sur la base MIT-BIH

Classer les battements cardiaques, prédire le rythme et estimer l'effet causal des battements prématurés sur les intervalles RR qui suivent.

Démarche

  • Classification supervisée des types de battements avec MiniRocket, XGBoost et un réseau CNN 1D + LSTM.
  • Modélisation prédictive de la dynamique du rythme cardiaque.
  • Inférence causale par Double ML et CausalForestDML : effet moyen du traitement (ATE) d'un battement prématuré sur les intervalles RR suivants, avec un effet significatif observé.

Ce que la revue méthodologique m'a appris

Mon superviseur a relevé neuf problèmes, dont une fuite de données entre patients dans la séparation entraînement et test, des variables post-traitement utilisées comme facteurs de confusion, un groupe de traitement mal défini et un déséquilibre de classes. Je corrige ces points en ce moment.

  • Python
  • Jupyter
  • MiniRocket
  • XGBoost
  • CNN 1D + LSTM
  • Double ML
  • CausalForestDML
Exactitude par modèle XGBoost 0,74, MiniRocket 0,69, CNN 1D plus LSTM 0,51, sur une échelle de 0 à 1. XGBoost 0,74 MiniRocket 0,69 CNN 1D + LSTM 0,51 0 0,25 0,5 0,75 1
Exactitude de classification, résultats préliminaires obtenus avant la séparation par patient.

Livrables : carnet Jupyter, rapport PDF au gabarit de stage de l'UQTR et présentation sur MiniRocket.

Dérivation II · simulée 25 mm/s · 10 mm/mV
Tracé ECG avec une extrasystole ventriculaire Six secondes de rythme sinusal à intervalles RR de 800 ms, interrompu par une extrasystole ventriculaire précoce à 450 ms suivie d'une pause compensatoire de 1150 ms. ESV pause compensatoire 800 ms 800 ms 450 1150 ms 800 ms 800 ms
Une extrasystole ventriculaire (ESV) raccourcit l'intervalle RR, puis le cœur compense par une pause plus longue. C'est l'effet que l'analyse causale du projet mesure sur les intervalles RR qui suivent.
INF-1011 Génie logiciel · Équipe de cinq · Automne 2026

Loups-Garous en ligne

Thiercelieux, une adaptation web multijoueur du jeu de société, où chaque joueur rejoint la partie depuis son propre appareil.

Mon rôle

J'ai participé à la construction du serveur en Java avec Spring Boot, qui gère l'état de la partie. J'ai développé l'interface en React et TypeScript : déroulement des phases de nuit et de jour, affichage des rôles et effets visuels qui rendent l'état de la partie lisible.

Choix de conception

  • Une architecture volontairement simple, adaptée à un projet de session.
  • Six rôles au départ : Villageois, Loup-Garou, Voyante, Sorcière, Chasseur et Capitaine.
  • React
  • TypeScript
  • Java
  • Spring Boot
Cycle de jeu et architecture La partie alterne entre la nuit, où agissent les Loups-Garous, la Voyante et la Sorcière, et le jour, où le village débat et vote. Le client React communique avec le serveur Spring Boot. Nuit Les Loups-Garous votent La Voyante sonde un rôle La Sorcière agit Jour Annonce des victimes Débat du village Vote, Capitaine décisif Client React + TypeScript Serveur Java + Spring Boot
Le cycle de jeu que l'interface doit rendre clair pour chaque joueur.
Voir les captures d'écran (4)Masquer les captures d'écran
  • Page d'accueil de Thiercelieux : titre Le village s'endort sur un ciel de nuit, résumé des règles et formulaire de connexion.
    Accueil : connexion ou création de compte, avec un rappel des règles.
  • Salle d'attente : cinq joueurs autour d'une table ovale, code de partie LUNE27, réglages de débat et de vote, bouton pour distribuer les cartes.
    Salle d'attente : les joueurs rejoignent la table avec un code et signalent qu'ils sont prêts.
  • Phase de jour : table du village, joueur éliminé barré, carte de rôle Voyante et Capitaine, minuterie et discussion du village.
    Phase de jour : rôle du joueur, minuterie, débat et ouverture du vote.
  • Écran de fin : titre Le village a survécu, liste des rôles révélés de chaque joueur et chronique des éliminations.
    Fin de partie : les cartes se retournent et la chronique résume la partie.
Projet personnel · Application complète

Renovision AI

Un client téléverse une photo de sa pièce, choisit un produit du catalogue du magasin et voit une vue avant et après générée par IA.

Ce que j'ai construit

  • Un MVP fonctionnel : authentification JWT, tableau de bord de projets, gestion du catalogue et vue de comparaison avant et après.
  • Deux photos par produit (échantillon et exemple posé) ; jusqu'à trois images de référence envoyées au modèle de génération.
  • Normalisation des images AVIF en JPEG dès le téléversement, et un fournisseur d'IA de repli quand les quotas gratuits sont atteints.

Prochaine étape

Déployer l'application et la valider avec un détaillant de matériaux de rénovation de la région comme client pilote, dans un modèle B2B2C.

  • React
  • Vite
  • Tailwind CSS
  • FastAPI
  • SQLAlchemy
  • PostgreSQL
  • Capacitor
Voir les captures d'écran (3)Masquer les captures d'écran
  • Écran d'un projet Renovision AI nommé Salon principal : photo avant, rendu après, choix d'un produit de plancher et bouton Générer.
    Projet : photo avant, rendu après et choix du produit dans le catalogue.
  • Trois écrans mobiles de Renovision AI : accueil avec boutons S'inscrire et Se connecter, formulaire de connexion et formulaire de création de compte.
    Accueil, connexion et création de compte.
  • Deux écrans Nouveau projet : zone pour prendre ou choisir une photo, nom du projet et catégorie Plancher, Céramique ou Peinture.
    Nouveau projet : photo de la pièce, nom et catégorie de produit.
Cours

Autres travaux

  • Études de cas en stratégie

    Analyses FFOM et formulation d'options stratégiques pour Bombardier, Centre de nettoyage inc., Boulangerie Lépine ltée et KindyBis, avec recommandations argumentées.

Outils

Compétences

Apprentissage automatique
Classification de séries temporelles, MiniRocket, XGBoost, réseaux convolutifs et récurrents (CNN 1D, LSTM), gestion du déséquilibre de classes.
Inférence causale
Double Machine Learning, forêts causales, estimation d'effets moyens (ATE), choix des facteurs de confusion.
Développement
Python, FastAPI, SQLAlchemy, PostgreSQL, React, TypeScript, Java avec Spring Boot.
Environnement
Jupyter, VS Code, suite Microsoft 365.
Langues
Français et anglais.
Contact

Travaillons ensemble

Je cherche un stage en science des données ou en IA, de janvier à avril 2027.

Analyse de données, mesure de performance, modélisation : je réponds à chaque message.