<?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>Bâtir un Système de Maintenance Prédictive : De l’IoT Industriel à l’Analyse Vectorielle 🏭🤖</title>
      <dc:creator>Serge Mbela</dc:creator>
      <pubDate>Fri, 15 May 2026 14:14:59 +0000</pubDate>
      <link>https://dev.to/sergembela/batir-un-systeme-de-maintenance-predictive-de-liot-industriel-a-lanalyse-vectorielle-5447</link>
      <guid>https://dev.to/sergembela/batir-un-systeme-de-maintenance-predictive-de-liot-industriel-a-lanalyse-vectorielle-5447</guid>
      <description>&lt;p&gt;📌 Le Contexte : Transformer la donnée en décision&lt;br&gt;
Dans le secteur industriel, chaque minute d'arrêt non planifiée d'une machine lourde (broyeur, excavatrice, pompe) peut coûter des milliers d'euros. Mon dernier projet, livré récemment à un client, visait à passer d'une maintenance réactive à une stratégie proactive.&lt;/p&gt;

&lt;p&gt;**L'objectif : **centraliser les flux de télémétrie en temps réel et anticiper les pannes avant qu'elles ne surviennent en combinant Big Data, Machine Learning et Observabilité.&lt;/p&gt;

&lt;p&gt;🏗️ L'Architecture du Système&lt;br&gt;
Pour gérer des flux de données à haute fréquence, j'ai conçu une architecture modulaire et résiliente, entièrement conteneurisée.&lt;/p&gt;

&lt;p&gt;La Stack Technique Ingestion &amp;amp; Messaging : RabbitMQ pour la gestion asynchrone des messages.&lt;br&gt;
Stockage Hybride : PostgreSQL (séries temporelles) et Qdrant (base de données vectorielle).&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%2Fvwz6ff965sq5ahumfc7w.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%2Fvwz6ff965sq5ahumfc7w.png" alt=" " width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Traitement Big Data : Apache Spark (PySpark) pour le calcul distribué.&lt;/p&gt;

&lt;p&gt;Intelligence Artificielle : Spark MLlib (Random Forest) pour la classification des risques.&lt;/p&gt;

&lt;p&gt;Observabilité : Grafana pour le monitoring en temps réel.&lt;/p&gt;

&lt;p&gt;Interface &amp;amp; API : Flask et Vanilla JS.&lt;/p&gt;

&lt;p&gt;🌟 Les Piliers de la Solution Livrée&lt;/p&gt;

&lt;p&gt;Ingestion Haute Performance (RabbitMQ)&lt;br&gt;
Les capteurs envoient des données critiques (vibrations, température, ampérage). L'utilisation de RabbitMQ comme broker de messages garantit qu'aucune donnée n'est perdue, même en cas de pic de charge ou de latence réseau, en séparant la production de données de leur stockage.&lt;/p&gt;

&lt;p&gt;Maintenance Prédictive via Machine Learning&lt;br&gt;
Le cœur de l'analyse repose sur un modèle Random Forest entraîné avec PySpark.&lt;/p&gt;

&lt;p&gt;Le système ne se contente pas de lire des seuils : il analyse les corrélations.&lt;/p&gt;

&lt;p&gt;Il intègre des variables contextuelles (comme l'élévation ou la pression environnementale) pour différencier une surchauffe normale d'une anomalie critique.&lt;/p&gt;

&lt;p&gt;Chaque machine reçoit un score de risque : Faible, Modéré ou Critique.&lt;/p&gt;

&lt;p&gt;Détection par Similarité (Qdrant) Innovation majeure de ce projet : l'utilisation d'une base de données vectorielle. Chaque panne historique est convertie en une "signature mathématique" (vecteur) stockée dans Qdrant. Le système compare la télémétrie actuelle aux patterns de pannes passées. Si la similarité dépasse 98%, une alerte est déclenchée immédiatement.&lt;br&gt;
📊 Observabilité : La Tour de Contrôle avec Grafana&lt;br&gt;
Pour un client industriel, la donnée doit être visuelle. J'ai intégré Grafana pour offrir une supervision granulaire du parc.&lt;/p&gt;

&lt;p&gt;Dashboards en temps réel : Visualisation des courbes de vibration et de consommation.&lt;/p&gt;

&lt;p&gt;Heatmaps de chaleur : Identification immédiate des zones critiques sur les moteurs.&lt;/p&gt;

&lt;p&gt;Alerting intelligent : Notifications automatiques si les indicateurs sortent des zones de sécurité définies.&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%2Fyy3zxk5lr1vbk391n4oz.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%2Fyy3zxk5lr1vbk391n4oz.png" alt=" " width="800" height="332"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🚀 Guide de Démarrage (Docker)&lt;br&gt;
La solution est livrée prête à l'emploi. Tout l'écosystème peut être déployé via Docker-compose :&lt;/p&gt;

&lt;p&gt;Bash&lt;/p&gt;

&lt;p&gt;Lancer l'infrastructure complète&lt;br&gt;
docker-compose up -d&lt;/p&gt;

&lt;p&gt;Initialiser la base de données et les services&lt;br&gt;
python app.py&lt;br&gt;
Une fois lancé, le tableau de bord permet de créer les tables, de démarrer la simulation et de superviser l'état du parc en un clic.&lt;/p&gt;

&lt;p&gt;🔍 Conclusion et Valeur Métier&lt;br&gt;
Ce projet démontre qu'en combinant des outils de Big Data éprouvés (Spark) avec des technologies de pointe (Qdrant), on transforme des données brutes en un véritable actif stratégique. Pour le client, cela signifie :&lt;/p&gt;

&lt;p&gt;Réduction des coûts de maintenance.&lt;/p&gt;

&lt;p&gt;Augmentation de la durée de vie des équipements.&lt;/p&gt;

&lt;p&gt;Sécurité accrue pour les opérateurs sur le terrain.&lt;/p&gt;

&lt;p&gt;Quelle est votre approche pour la gestion de données IoT massives ? Échangeons en commentaires ! Ou mieux je peux vous envoyer le lien sur mon github&lt;/p&gt;

&lt;p&gt;IoT #Python #MachineLearning #Big Data #Architecture #CaseStudy #Docker&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>dataengineering</category>
      <category>iot</category>
      <category>machinelearning</category>
    </item>
    <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>
