<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Serge Mbela</title>
    <description>The latest articles on DEV Community by Serge Mbela (@sergembela).</description>
    <link>https://dev.to/sergembela</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3132974%2F2523ea24-7293-4a5c-bad9-6e9147304058.jpeg</url>
      <title>DEV Community: Serge Mbela</title>
      <link>https://dev.to/sergembela</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sergembela"/>
    <language>en</language>
    <item>
      <title>Comment j'ai construit un SaaS de gestion de garage complet avec Supabase et Vanilla JS (Sans Framework !)</title>
      <dc:creator>Serge Mbela</dc:creator>
      <pubDate>Fri, 06 Feb 2026 13:13:36 +0000</pubDate>
      <link>https://dev.to/sergembela/comment-jai-construit-un-saas-de-gestion-de-garage-complet-avec-supabase-et-vanilla-js-sans-1431</link>
      <guid>https://dev.to/sergembela/comment-jai-construit-un-saas-de-gestion-de-garage-complet-avec-supabase-et-vanilla-js-sans-1431</guid>
      <description>&lt;p&gt;****🚗💨&lt;br&gt;
Tags: #javascript #supabase #webdev #showdev #saas&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br&gt;
On entend souvent dire qu'il faut absolument utiliser React, Vue ou Angular pour construire une application web moderne en 2024. Pourtant, le "Vanilla JS" (JavaScript pur) combiné à des outils puissants comme Tailwind CSS et Supabase permet de réaliser des prouesses avec une performance incroyable et zéro étape de compilation complexe.&lt;/p&gt;

&lt;p&gt;Aujourd'hui, je vous présente AutoExpert, une solution complète de gestion de garage automobile que j'ai développée. Elle comprend un site vitrine pour la prise de rendez-vous et un back-office d'administration complet (PWA).&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;La Stack Technique *&lt;/em&gt;🛠️&lt;br&gt;
L'objectif était de rester simple, performant et facile à déployer.&lt;/p&gt;

&lt;p&gt;Frontend : HTML5, JavaScript (ES6+), Tailwind CSS (via CDN pour le dev, build pour la prod).&lt;br&gt;
Backend (BaaS) : Supabase (PostgreSQL, Auth, Realtime, Edge Functions).&lt;br&gt;
Bibliothèques clés :&lt;br&gt;
FullCalendar pour la gestion du planning.&lt;br&gt;
Chart.js pour les statistiques.&lt;br&gt;
jsPDF pour la génération de factures côté client.&lt;/p&gt;

&lt;p&gt;Hébergement : GitHub Pages (via GitHub Actions).&lt;br&gt;
&lt;a href="https://atservices-garage.be/" rel="noopener noreferrer"&gt;https://atservices-garage.be/&lt;/a&gt;&lt;br&gt;
Fonctionnalités Clés&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Prise de rendez-vous en temps réel 📅&lt;/strong&gt;&lt;br&gt;
Côté client (index.html), j'ai créé un formulaire dynamique qui permet de sélectionner la marque et le modèle du véhicule (chargés depuis Supabase) et de choisir un créneau horaire.&lt;/p&gt;

&lt;p&gt;Le défi ici était de gérer la validation des données et l'expérience utilisateur (UX) sans rechargement de page.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdb3e3wmv1lqov5qnp9rg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdb3e3wmv1lqov5qnp9rg.png" alt=" " width="800" height="613"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Tableau de bord Admin &amp;amp; Realtime ⚡&lt;/strong&gt;&lt;br&gt;
La partie la plus intéressante se trouve dans admin.html. Grâce aux fonctionnalités Realtime de Supabase, le garage reçoit une notification instantanée (visuelle et sonore) dès qu'un client prend rendez-vous, sans avoir à rafraîchir la page.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ncnftp65e7p3etfflcp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ncnftp65e7p3etfflcp.png" alt=" " width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Génération de Factures PDF 📄&lt;/strong&gt;&lt;br&gt;
Plutôt que de générer les PDF côté serveur, j'utilise jspdf directement dans le navigateur (work_orders.html). Cela réduit la charge serveur et rend l'application très réactive.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Mode Hors-Ligne et PWA 📱&lt;/strong&gt;&lt;br&gt;
Pour permettre aux mécaniciens d'utiliser l'application sur tablette dans l'atelier (où le Wi-Fi peut être instable), j'ai implémenté une stratégie de Cache-First avec localStorage pour les données critiques et un Service Worker pour les assets.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8d6zvgwkakv0sbkhmrlj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8d6zvgwkakv0sbkhmrlj.png" alt=" " width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Déploiement Continu (CI/CD) 🚀&lt;/strong&gt;&lt;br&gt;
Le projet est hébergé sur GitHub Pages. J'utilise une GitHub Action (deploy.yml) qui injecte les clés d'API Supabase de manière sécurisée dans le code HTML au moment du build, évitant ainsi de les exposer dans le dépôt public.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;br&gt;
Ce projet prouve qu'il est possible de construire des applications SaaS complexes (CRM, Facturation Peppol, Stats, Messaging) sans s'enfermer dans un framework JS spécifique. &lt;br&gt;
L'utilisation de Supabase comme backend-as-a-service a considérablement accéléré le développement, me permettant de me concentrer sur la logique métier plutôt que sur l'infrastructure.&lt;/p&gt;

&lt;p&gt;N'hésitez pas à me donner votre avis en commentaire ! 👇&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>saas</category>
      <category>showdev</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Optimisation des opérations de flotte avec Python et Data Science</title>
      <dc:creator>Serge Mbela</dc:creator>
      <pubDate>Tue, 12 Aug 2025 15:23:16 +0000</pubDate>
      <link>https://dev.to/sergembela/automatiser-la-planification-quotidienne-des-trajets-de-vehicules-avec-chauffeurs-53dj</link>
      <guid>https://dev.to/sergembela/automatiser-la-planification-quotidienne-des-trajets-de-vehicules-avec-chauffeurs-53dj</guid>
      <description>&lt;h3&gt;
  
  
  Mockups Power BI
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. Trajets et rentabilité
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://sdmntprwestus3.oaiusercontent.com/files/00000000-3c48-61fd-" rel="noopener noreferrer"&gt;https://sdmntprwestus3.oaiusercontent.com/files/00000000-3c48-61fd-&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzb13qo8rwyf5gv5q7ymh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzb13qo8rwyf5gv5q7ymh.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Taux de refus par type de client
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fvia.placeholder.com%2F800x400.png%3Ftext%3DTaux%2Bde%2BRefus%2BPower%2BBI" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fvia.placeholder.com%2F800x400.png%3Ftext%3DTaux%2Bde%2BRefus%2BPower%2BBI" alt="Taux de Refus" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Tarification dynamique et regroupement
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fvia.placeholder.com%2F800x400.png%3Ftext%3DTarification%2Bet%2BRegroupement%2BPower%2BBI" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fvia.placeholder.com%2F800x400.png%3Ftext%3DTarification%2Bet%2BRegroupement%2BPower%2BBI" alt="Tarification Dynamique" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📈 Impact
&lt;/h2&gt;

&lt;p&gt;Le projet a permis de :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Réduire les &lt;strong&gt;coûts de carburant&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Améliorer le &lt;strong&gt;taux d’utilisation de la flotte&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Optimiser le &lt;strong&gt;cycle de vie des véhicules&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Prendre des &lt;strong&gt;décisions éclairées&lt;/strong&gt; sur maintenance et renouvellement
&lt;/li&gt;
&lt;li&gt;Renforcer la &lt;strong&gt;sécurité&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Garantir la &lt;strong&gt;continuité de service&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Respecter les &lt;strong&gt;contraintes légales&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Améliorer le &lt;strong&gt;retour sur investissement&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Optimiser la &lt;strong&gt;rentabilité&lt;/strong&gt; grâce à une &lt;strong&gt;tarification adaptée&lt;/strong&gt;, au suivi du &lt;strong&gt;taux de refus&lt;/strong&gt;, aux &lt;strong&gt;conditions de rentabilité&lt;/strong&gt; et aux &lt;strong&gt;stratégies commerciales avancées&lt;/strong&gt; (fidélisation, regroupement, volume)
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🎯 Approche multi-objectif
&lt;/h2&gt;

&lt;p&gt;Le moteur minimise simultanément :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;La &lt;strong&gt;distance totale&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Le &lt;strong&gt;temps de conduite&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Le &lt;strong&gt;coût du carburant&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tout en intégrant :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Kilométrage et prix du marché&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Historique des pannes&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analyse des accidents et contraventions&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quotation dynamique des prestataires externes&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tarification différenciée&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Suivi du taux de refus&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contrôle des conditions de rentabilité&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stratégie commerciale&lt;/strong&gt; : acceptation de courses à perte, regroupement, optimisation du volume
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cette approche assure une &lt;strong&gt;gestion optimale de la flotte&lt;/strong&gt;, rapide, sûre, économiquement optimisée et rentable.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ Conclusion
&lt;/h2&gt;

&lt;p&gt;Ce projet illustre comment &lt;strong&gt;la data science et l’automatisation&lt;/strong&gt; peuvent transformer des processus complexes en &lt;strong&gt;solutions rapides, sûres, économiquement optimisées, rentables et stratégiques&lt;/strong&gt;, tout en assurant la &lt;strong&gt;continuité de service&lt;/strong&gt; et la &lt;strong&gt;sécurité des chauffeurs&lt;/strong&gt;.&lt;/p&gt;




&lt;p&gt;💡 &lt;strong&gt;Ressources complémentaires :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://project-osrm.org/" rel="noopener noreferrer"&gt;OSRM API&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://redis.io/" rel="noopener noreferrer"&gt;Redis pour caching&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://developers.google.com/optimization/routing" rel="noopener noreferrer"&gt;OR-Tools Vehicle Routing Problem&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Power BI pour visualisation interactive des trajets, tarification, taux de refus, conditions de rentabilité et regroupements&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Machine learning: Malaria: Classification of Parasitized and Non-parasitized Cell Images</title>
      <dc:creator>Serge Mbela</dc:creator>
      <pubDate>Thu, 08 May 2025 14:20:23 +0000</pubDate>
      <link>https://dev.to/sergembela/data-analyst-maritime-32de</link>
      <guid>https://dev.to/sergembela/data-analyst-maritime-32de</guid>
      <description>&lt;p&gt;Blood Cell Types: What Are We Looking At?&lt;br&gt;
To train any model for medical image classification, understanding the visual features of each cell type is critical. Below are the primary blood cell types you might encounter in peripheral blood smears used for malaria detection.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Basophils
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Main Function: Allergic reactions, release of histamine&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Involvement in Malaria: Not directly involved. Rarely seen or affected in malaria.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Microscopic Appearance: Small with dark purple granules that obscure the nucleus&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2.Erythroblast
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Main Function: Precursors of red blood cells (in bone marrow)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Involvement in Malaria: Can increase during severe anemia as the bone marrow tries to compensate for RBC loss.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Microscopic Appearance: Larger than RBCs, have a central nucleus, bluish cytoplasm&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. Monocytes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Main Function: Phagocytosis; precursors of macrophages&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Involvement in Malaria: Active in malaria. They engulf infected RBCs and parasite debris—part of the immune response.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Microscopic Appearance: Large cells with a kidney-shaped nucleus and grayish-blue cytoplasm&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. Myeloblasts
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
Main Function: Immature precursors of granulocytes&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Involvement in Malaria: Not usually seen unless there’s bone marrow stress or a hematological disorder.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Microscopic Appearance: Very large, immature cell; round nucleus, visible nucleoli&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  5. Segmented Neutrophils
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
Main Function: First-line defense; phagocytosis of pathogens&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Involvement in Malaria: Involved in inflammation. Sometimes elevated or decreased depending on disease stage/severity&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Microscopic Appearance: Multi-lobed nucleus (3–5 lobes), fine cytoplasmic granules&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzmetoujfxqqym66cj0ou.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzmetoujfxqqym66cj0ou.png" alt=" " width="128" height="128"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Parasitized&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1cbegr6lyf5fcicwywg3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1cbegr6lyf5fcicwywg3.png" alt=" " width="128" height="128"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Uninfected&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ** Preprocessing Medical Images for Deep Learning**
&lt;/h2&gt;

&lt;p&gt;Working with medical images comes with unique challenges — inconsistent formats, varying dimensions, and sometimes missing or degraded data. Here’s how to prepare your data properly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Handle Missing Data&lt;/strong&gt;&lt;br&gt;
MCAR (Missing Completely at Random): Use simple imputation (mean, median) or remove rows.&lt;/p&gt;

&lt;p&gt;MAR (Missing at Random): Use advanced techniques like regression or iterative imputation (IterativeImputer in scikit-learn).&lt;br&gt;
&lt;a href="https://www.geeksforgeeks.org/machine-learning/handling-missing-data-with-iterativeimputer-in-scikit-learn/" rel="noopener noreferrer"&gt;Explanation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;NMAR (Not Missing at Random): Much harder — might require collecting more data or sensitivity analysis.&lt;/p&gt;

&lt;p&gt;Tip: If you’re using JPG or PNG instead of DICOM (which retains crucial metadata), be aware that some diagnostic fidelity might be lost.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Manage Outliers&lt;/strong&gt;&lt;br&gt;
Once outliers are identified, you need to decide how to handle them. The approach depends on the nature of the outlier and the goal of your analysis.( For fraud detection for example you must keep outliers, if it is an error you can delete data or replace with more reprsentative value , such as the mean, median, mode, or a value predicted by a machine learning model.&lt;br&gt;
&lt;em&gt;Median imputation is often preferred as it's less sensitive to outliers than the mean.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Visualization Methods&lt;/strong&gt;&lt;br&gt;
Visualizing your data can often reveal outliers that might be missed by purely statistical methods.&lt;/p&gt;

&lt;p&gt;Box Plots: Excellent for visualizing the distribution of a single variable and identifying potential outliers (points beyond the whiskers).&lt;/p&gt;

&lt;p&gt;Histograms: Can show unusual peaks or tails in the data.&lt;/p&gt;

&lt;p&gt;Scatter Plots: Useful for multivariate data to identify points that deviate from the general trend.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnviaqevd14f4xj6ydkzd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnviaqevd14f4xj6ydkzd.png" alt=" " width="800" height="213"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqqgv2ylkgqxkltcx3dcb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqqgv2ylkgqxkltcx3dcb.png" alt=" " width="800" height="160"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcbr85yq8keqak3x03eev.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcbr85yq8keqak3x03eev.png" alt=" " width="800" height="160"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Start learning&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Splitting into training and validation sets&lt;br&gt;
train_test_split divides the data into training (80%) and validation (20%) sets, maintaining balanced class proportions (stratify=all_labels).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Displays the total number of images and the class distribution in each subset.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Preparing image generators&lt;br&gt;
Defines image dimensions (128x128 pixels) and batch size (32).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Creates two ImageDataGenerator objects:&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;train_datagen with transformations (data augmentation) such as rotation, shift, zoom, horizontal flip, and normalization (pixels scaled between 0 and 1).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;val_datagen with only normalization (no augmentation).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Converts the X_train and y_train arrays into a Pandas DataFrame to use flow_from_dataframe, which reads images on the fly from paths and applies transformations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;train_generator loads images for training (with shuffle).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;validation_generator loads images for validation (without shuffle).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Defining the CNN model&lt;br&gt;
A simple sequential model with 3 convolution + max pooling blocks to extract important image features.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A flatten layer to convert outputs into a 1D vector.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A dense (fully connected) layer with 512 neurons + ReLU activation to learn complex combinations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dropout (0.5) to reduce overfitting.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Output dense layer with 1 neuron + sigmoid activation to produce a binary probability (0 or 1).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Compiling the model&lt;br&gt;
Adam optimizer (adaptive and efficient).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Binary cross-entropy loss function, suitable for binary classification.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Accuracy metric to evaluate performance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Training callbacks&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;EarlyStopping: stops training if validation loss does not improve for 5 epochs and restores the best weights.&lt;/p&gt;

&lt;p&gt;ModelCheckpoint: saves only the model with the best validation accuracy to best_malaria_model.h5.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Training the model
Trains up to 20 epochs (or fewer if EarlyStopping triggers).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Images are provided by the generators.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
Displays training progress information.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Visualizing training history&lt;br&gt;
Plots accuracy and loss curves for training and validation.&lt;/p&gt;

&lt;p&gt;These curves help check if the model converges, or if there is overfitting, etc.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Saves the plot as an image training_history.png inside the folder img_stats.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Final evaluation&lt;br&gt;
Loads the best saved model.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Evaluates its performance on the full validation set.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Displays the final loss and accuracy.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fapndo7lpu28z0oyvfcwk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fapndo7lpu28z0oyvfcwk.png" alt=" " width="800" height="266"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>"Study of Correlations Between Temperature, Pollution, and Flu Treatment Response: A Large-Scale Analysis"</title>
      <dc:creator>Serge Mbela</dc:creator>
      <pubDate>Wed, 07 May 2025 09:20:19 +0000</pubDate>
      <link>https://dev.to/sergembela/etude-des-correlations-entre-temperature-pollution-et-reponse-au-traitement-de-la-grippe-une-52f1</link>
      <guid>https://dev.to/sergembela/etude-des-correlations-entre-temperature-pollution-et-reponse-au-traitement-de-la-grippe-une-52f1</guid>
      <description>&lt;p&gt;&lt;strong&gt;Main Objective&lt;/strong&gt;&lt;br&gt;
Evaluate the effectiveness of a new treatment for seasonal flu by identifying potential correlations between:&lt;/p&gt;

&lt;p&gt;Patients’ demographic and clinical data,&lt;/p&gt;

&lt;p&gt;Environmental data (temperature, pollution),&lt;/p&gt;

&lt;p&gt;Weekly clinical results (blood samples).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbqh0978n5i4i0kaphgyd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbqh0978n5i4i0kaphgyd.png" alt=" " width="800" height="517"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Code source: &lt;a href="https://github.com/SergeMbela/techHealth" rel="noopener noreferrer"&gt;https://github.com/SergeMbela/techHealth&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Data Collection and Structuring
Legal Compliance and Data Anonymization&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The data used in this project is anonymized according to the following standards:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;GCP (Good Clinical Practice): Ensures that data is handled according to good clinical practices.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;GDPR (General Data Protection Regulation): Ensures personal data confidentiality is protected according to European Union rules.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;HIPAA (Health Insurance Portability and Accountability Act): A U.S. law that protects individuals’ health information confidentiality and security. It defines standards for handling Protected Health Information (PHI) and applies to healthcare providers, insurance companies, and other entities dealing with health data.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Data Sources:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Patients (100,000): ID, city, age, sex, allergies (penicillin, peanuts, pollen), vaccination status, treatment response.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Climate &amp;amp; Pollution: Daily temperature and pollution index by city.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Clinical Results: Weekly blood samples (leukocytes, CRT, lymphocytes, and neutrophils) — indicators of immune response, viral load, etc.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fisl0zx49v6s9yha4at5p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fisl0zx49v6s9yha4at5p.png" alt=" " width="800" height="399"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;_&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Patient distribution by city: To avoid bias, patient allocation across cities must reflect actual population sizes. That is, more populated cities should receive more patients — proportionally to their population size.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Data Preparation and Cleaning&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Standardizing formats (dates, cities, units of measurement).&lt;/li&gt;
&lt;li&gt;Handling missing values (imputation or deletion depending on the case).&lt;/li&gt;
&lt;li&gt;Aggregation by week and by city for environmental data.
**&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Feature Engineering (Creation of Useful Variables)**&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Demographic Variables: Age group categorization, urban density (city).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Clinical Factors: Presence/absence of allergies as binary variables.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Environmental Factors: 7-day moving averages of temperature and pollution.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Treatment Response: Binary classification (positive/negative response) or continuous clinical score.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Exploratory Data Analysis (EDA)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Visualization: Trend curves (treatment response vs temperature/pollution).&lt;/li&gt;
&lt;li&gt;Correlations: Correlation matrices, Pearson/Spearman tests between clinical, demographic, and environmental variables.&lt;/li&gt;
&lt;li&gt;Heatmaps: To visualize geographic disparities.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flfow8ewdzw9vshws1irs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flfow8ewdzw9vshws1irs.png" alt=" " width="800" height="370"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;5. Statistical Modeling and Machine Learning&lt;br&gt;
Objectives:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identify predictive factors of a good treatment response.&lt;/li&gt;
&lt;li&gt;Measure the impact of climate and pollution on treatment effectiveness.&lt;/li&gt;
&lt;li&gt;Potential Models:&lt;/li&gt;
&lt;li&gt;Logistic Regression: Binary prediction (response or no response to treatment).&lt;/li&gt;
&lt;li&gt;Random Forest / XGBoost: For classification and feature importance.&lt;/li&gt;
&lt;li&gt;Time Series Analysis: Temporal impact of weather/pollution.&lt;/li&gt;
&lt;li&gt;Mixed Effects Models: To model fixed effects (age, sex) and random effects (city, day).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;6. Treatment Effectiveness Evaluation&lt;br&gt;
Comparison between treated vs untreated groups (if a control group is included).&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Analysis of changes in blood biomarkers.&lt;/li&gt;
&lt;li&gt;Recovery rate or reduction in viral load.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;7. Results Reporting and Recommendations&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Summarize the most significant correlations (e.g., high pollution → lower treatment response?).&lt;/li&gt;
&lt;li&gt;Map geographic areas where the treatment is most/least effective.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;​&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
