<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by KOULODJI Dona Éric on Medium]]></title>
        <description><![CDATA[Stories by KOULODJI Dona Éric on Medium]]></description>
        <link>https://medium.com/@koulodjiric?source=rss-6606c83d03f9------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*PRk1Pcaxu5AmM06okmnf4g.jpeg</url>
            <title>Stories by KOULODJI Dona Éric on Medium</title>
            <link>https://medium.com/@koulodjiric?source=rss-6606c83d03f9------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Tue, 26 May 2026 07:11:42 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@koulodjiric/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[UNDERSTAND DATA ARCHITECTURES MODERNS]]></title>
            <link>https://medium.com/@koulodjiric/understand-data-architectures-moderns-1f78c6be2e9d?source=rss-6606c83d03f9------2</link>
            <guid isPermaLink="false">https://medium.com/p/1f78c6be2e9d</guid>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[ml-engineer]]></category>
            <category><![CDATA[aws-lambda]]></category>
            <category><![CDATA[kappa-architecture]]></category>
            <category><![CDATA[software-architecture]]></category>
            <dc:creator><![CDATA[KOULODJI Dona Éric]]></dc:creator>
            <pubDate>Tue, 06 Jan 2026 14:07:07 GMT</pubDate>
            <atom:updated>2026-01-06T14:07:07.758Z</atom:updated>
            <content:encoded><![CDATA[<p>À l’ère de <strong>l’intelligence artificielle</strong>, les <strong>données</strong> sont comme du carburants pour les motos,les voitures etc… Sans données,L’IA n’existe pas. Alors une chose est sûre les données existent et en quantité énormes(des tweets, des images, des documents..) mais on se pose généralement une question :</p><p><strong>Comment traiter efficacement les données massives(Big Data), les historiques et en Streaming plus rapidement et à moindre coût ?</strong></p><p>C’est là qu’entre en jeu les architectures modernes :</p><p>✡<strong> Lambda Architecture</strong><br><strong>✡ Kappa Architecture <br></strong>deux architectures qui dominent les systèmes data modernes aujourd’hui.</p><p>Parlons-en …….</p><h3>🖌 Lambda Architecture ?</h3><blockquote><strong>✒</strong><em>Lambda Architecture</em> : est un modèle de traitement des données conçu pour gérer des volumes massif de données en combinant traitement par lots et traitement en temps réel. Elle a été introduite pour répondre aux défis de l’analyse en temps réel tout en garantissant la tolérance aux pannes et l’évolutivité.</blockquote><p>Elle est divisée en trois couches :</p><p>✒Couche de traitement par lots(<strong>Batch Layer</strong>) : traite les données par grands intervalles prédéfinis afin de calculer les résultats les plus précis, offrant ainsi une vue historique complète des données.</p><p>✒Couche de vitesse(<strong>Speed Layer</strong>) : Gère les flux de données en temps réel pour fournir des informations immédiates avec une précision moindre, compensant ainsi le délai de traitement par lots.</p><p>✒Couche de service(<strong>Service Layer</strong>) : Combine les résultats des couches de traitement par lots et de vitesse pour fournir une vue complète des données aux utilisateurs ou aux applications.<br>Elle est robuste, mais son double pipeline (traitement par lots et traitement rapide) ajoute de la complexité, nécessitant souvent plus de maintenance et de ressources.</p><h3><strong>🖌 Kappa Architecture ?</strong></h3><p>L’architecture Kappa est un modèle simplifié de traitement des données conçu pour l’analyse en temps réel. Contrairement à l’architecture Lambda, qui sépare le traitement par lots et le traitement en temps réel, Kappa se concentre exclusivement sur le traitement de flux, traitant toutes les données comme un flux en temps réel.</p><p>L’architecture Kappa possède des caractéristiques principales comme:</p><blockquote><strong>✒Pipeline de traitement unique</strong> : les données sont traitées en temps réel dès leur arrivée, sans nécessiter de couche de traitement par lots distincte. L’architecture s’en trouve simplifiée et la maintenance facilitée.</blockquote><blockquote><strong>✒Capacité de retraitement</strong> : si des données historiques doivent être retraitées, le même moteur de traitement de flux peut les rejouer, éliminant ainsi le besoin d’un système de traitement par lots distinct.</blockquote><p>Kappa est donc idéal pour les systèmes où les données en temps réel sont essentielles, car il offre une complexité moindre et des analyses plus rapides que Lambda. Cependant, il n’est peut-être pas le meilleur choix pour les scénarios exigeant un traitement par lots de haute précision.</p><h4><strong><em>Quand utiliser l’Architecture Lambda ou Kappa ???</em></strong></h4><p>Si votre système nécessite une analyse en temps réel , une analyse complète des historiques des données , avec une <strong><em>haute précision des données</em></strong> : lorsque le traitement de données précis est demandé, notamment pour l’analyse et la création de rapports , <strong><em>la tolérance aux pannes et fiabilités des données : </em></strong>lorsque vous admettez que votre systèmes peut tomber en cacahuète, l’architecture lambda offre une solution fiable en maintenant en actif votre système de traitement de données par lots et en temps réel.</p><p>Vous devriez envisager d’utiliser l’architecture Kappa dans les scénarios suivants :</p><ul><li><strong>Besoins en traitement de données en temps réel :</strong> Si votre système nécessite principalement des analyses en temps réel et des informations immédiates, l’architecture Kappa excelle en traitant les données sous forme de flux continu sans les frais généraux du traitement par lots.</li><li><strong>Traitement simplifié des données :</strong> lorsque vous avez besoin d’une architecture plus simple qui évite la complexité de la maintenance de couches de traitement par lots et en temps réel séparées, le pipeline unique de Kappa est plus facile à gérer et à maintenir.</li><li><strong>Exigences de faible latence :</strong> Dans les applications où le traitement des données à faible latence est essentiel, comme dans les systèmes de surveillance, la détection des fraudes ou les moteurs de recommandation, l’approche de Kappa axée sur le streaming offre des résultats quasi instantanés.</li><li><strong>Flux de données continus :</strong> Si vos données arrivent en continu (par exemple, appareils IoT, journaux d’événements ou flux de médias sociaux) et ne nécessitent pas de traitement par lots historique complexe, Kappa est une solution adaptée.</li><li><strong>Retraitement fréquent des données :</strong> lorsque vous devez retraiter ou relire de grandes quantités de données, Kappa le permet efficacement en utilisant le même moteur de traitement de flux sans avoir besoin d’un traitement par lots séparé.</li><li><strong>Évolutivité avec le traitement de flux :</strong> si votre système doit évoluer principalement pour des charges de travail de données en flux continu, Kappa est optimisé pour le traitement en temps réel et peut gérer un débit élevé dans des environnements distribués.</li></ul><blockquote>Le choix de votre architecture vous revient ! <strong><em>Laquelle utilisez-vous donc ??</em></strong> Si, partagez en commentaire et N’oubliez pas surtout de <em>Likez, Partagez et Abonnez-vous</em><strong><em> ….</em></strong></blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*AJHT26TkB7V31m_1oGx5Qg.png" /><figcaption>Architecture data moderns</figcaption></figure><pre>if user==read:<br>  print(f&quot;Url of linkedin : https://linkedin.com/in/dona-erick&quot;)<br>else:<br>  print(&quot;Like ! Share and Submit !&quot;)</pre><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1f78c6be2e9d" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Régression Linéaire :]]></title>
            <link>https://medium.com/@koulodjiric/r%C3%A9gression-lin%C3%A9aire-02d11c870cbf?source=rss-6606c83d03f9------2</link>
            <guid isPermaLink="false">https://medium.com/p/02d11c870cbf</guid>
            <category><![CDATA[language]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[python]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[programming]]></category>
            <dc:creator><![CDATA[KOULODJI Dona Éric]]></dc:creator>
            <pubDate>Wed, 12 Feb 2025 10:26:01 GMT</pubDate>
            <atom:updated>2025-02-12T10:26:01.823Z</atom:updated>
            <content:encoded><![CDATA[<p>Comprendre l&#39;Algorithme de Base du Machine Learning</p><p>🔍 Présentation</p><p>La régression linéaire est l&#39;un des modèles fondamentaux du Machine Learning supervisé . Elle permet d&#39; établir une relation mathématique entre une variable dépendante et une ou plusieurs variables indépendantes .</p><p>Cet algorithme est utilisé dans divers domaines pour prédire les valeurs continues , comme les ventes, la température, ou encore les prix immobiliers.</p><p>🏗 Comprendre le Modèle Mathématique</p><p>1️⃣ Régression Linéaire Simple (une seule variable)</p><p>La régression linéaire simple cherche à modéliser la relation entre une variable indépendante X et une variable dépendante Y en ajustant une droite d&#39;équation :</p><p>Y=unX+b+εY = aX + b + \varepsilonY=un X+b+ε</p><p>Y : Variable cible (valeur à prédire)</p><p>X : Variable explicative</p><p>a : Coefficient directeur (indiquer le commentaire Y change lorsque X varie)</p><p>b : Intercept (valeur de Y quand X = 0)</p><p>ε : Erreur résiduelle (différence entre la prédiction et la valeur réelle)</p><p>👉 Exemple : Prédire le prix d&#39;une maison en fonction de sa superficie.</p><p>2️⃣ Régression Linéaire Multiple (plusieurs variables)</p><p>Lorsque plusieurs variables indépendantes influencent la variable cible, on utilise une régression linéaire multiple , dont l&#39;équation devient :</p><p>Y=un1X1+un2X2+...+unnXn+b+εY = a_1X_1 + a_2X_2 + ... + a_nX_n + b + \varepsilonY=un1​X1​+un2​X2​+...+unn​Xn​+b+ε</p><p>👉 Exemple : Prédire le prix d&#39;une maison en fonction de plusieurs paramètres comme la superficie, le nombre de chambres et l&#39;emplacement.</p><p>📊 Comment l&#39;algorithme apprend-il ? (Optimisation par Moindres Carrés)</p><p>L&#39;algorithme ajuste les coefficients ( a, b ) en minimisant l&#39; erreur quadratique moyenne :</p><p>MSE=1n∑je=1n(Yje−Y^je)2MSE = \frac{1}{n} \sum_{i=1}^{n} (Y_i - \hat{Y}_i)^2MSE=n1​je = 1∑n​( Yje​−Y^je​)2</p><p>Où :</p><p>YjeY_iYje​c&#39;est la vraie valeur,</p><p>Y^je\hat{Y}_iY^je​est la valeur prédite par le modèle,</p><p>nnnest le nombre d&#39;observations.</p><p>L&#39;algorithme ajuste les coefficients pour que la somme des carrés des erreurs soit la plus faible possible.</p><p>💡 Méthodes d&#39;optimisation :</p><p>Moindres carrés ordinaires (OLS) : La méthode la plus courante, basée sur l&#39;inversion de matrices.</p><p>Descente de Gradient : Méthode itérative pour trouver les coefficients optimaux.</p><p>🏢 Applications en Entreprise</p><p>1️⃣ Prévision des ventes et des revenus 📈</p><p>Une entreprise de e-commerce peut estimer ses ventes futures en fonction du budget marketing et du nombre de visiteurs sur son site.</p><p>2️⃣ Estimation des prix immobiliers 🏡</p><p>Un agent immobilier peut prédire le prix d&#39;un bien en fonction de sa superficie, du quartier et des équipements disponibles.</p><p>3️⃣ Optimisation des coûts en logistique 🚚</p><p>Une entreprise de transport peut anticiper ses coûts de carburant en fonction de la distance et du poids des marchandises.</p><p>4️⃣ Analyse des performances publicitaires 🎯</p><p>Une marque peut évaluer l&#39;impact de ses campagnes publicitaires en fonction du budget investi et du retour sur investissement (ROI).</p><p>🔥 Forces et Faiblesses de la Régression Linéaire</p><p>✅ Avantages : <br>✔️ Simple à comprendre et interpréter. <br>✔️ Performant sur des données bien corrélées. <br>✔️ Facile à mettre en œuvre et rapide à entraîner.</p><p>❌ Limites : <br>⚠️ Supposons une relation linéaire entre les variables (ce qui n&#39;est pas toujours vrai). <br>⚠️ Sensible aux valeurs aberrantes qui peuvent fausser les prédictions. <br>⚠️ Supposons une indépendance des variables (colinéarité peut poser problème en régression multiple).</p><p>🚀 Techniques pour Améliorer la Régression Linéaire</p><p>🔹 Transformation des variables : Utiliser des logarithmes ou des polynômes si la relation n&#39;est pas strictement linéaire. <br>🔹 Régularisation (Ridge &amp; Lasso) : Pour éviter le surajustement en régression multiple. <br>🔹 Sélection de variables (Feature Selection) : Supprimez les variables inutiles qui n&#39;apportent pas d&#39;information. <br>🔹 Détection des valeurs aberrantes : Utiliser des méthodes statistiques comme l&#39;IQR ou la distance de Cook.</p><p>🎯 Conclusion et appel à l&#39;action</p><p>La régression linéaire est un outil puissant pour prédire des valeurs numériques en entreprise. Cependant, elle nécessite une bonne compréhension des hypothèses et une bonne préparation des données pour être efficace.</p><p>💬 Et vous, avez-vous déjà utilisé la régression linéaire dans vos analyses ? Quels défis avez-vous rencontrés ? Partagez votre expérience en commentaire !</p><p>🔥 Prochain épisode : La Régression Logistique.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=02d11c870cbf" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[OPTIMISATION DES MODÈLES D’APPRENTISSAGE POUR LA PRODUCTION]]></title>
            <link>https://medium.com/@koulodjiric/optimisation-des-mod%C3%A8les-dapprentissage-pour-la-production-3eff33c8dde7?source=rss-6606c83d03f9------2</link>
            <guid isPermaLink="false">https://medium.com/p/3eff33c8dde7</guid>
            <category><![CDATA[apache-spark]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[apache-airflow]]></category>
            <category><![CDATA[deployment-pipelines]]></category>
            <category><![CDATA[automation-tools]]></category>
            <dc:creator><![CDATA[KOULODJI Dona Éric]]></dc:creator>
            <pubDate>Thu, 23 Jan 2025 11:34:42 GMT</pubDate>
            <atom:updated>2025-01-23T11:34:42.766Z</atom:updated>
            <content:encoded><![CDATA[<h3>Introduction : Que signifie optimiser les modèles pour la production ?</h3><p>L’optimisation des modèles d’apprentissage automatique pour la production implique le processus de transformation de modèles expérimentaux en systèmes fonctionnels qui sont déployés de manière transparente dans des applications réelles. Même si un modèle fonctionne exceptionnellement bien dans un environnement de développement contrôlé, il rencontre souvent des problèmes tels que la dérive des données, les problèmes d’intégration du système et les problèmes d’évolutivité lors du déploiement.</p><p><strong><em>Les aspects importants de l’optimisation des modèles d’apprentissage automatique pour la production incluent :</em></strong></p><p><strong>Prétraitement des données</strong> : préparation et nettoyage des données du monde réel pour garantir que le modèle fonctionne de manière cohérente.</p><p><strong>Optimisation du modèle</strong> : réglage fin des hyperparamètres, sélection d’algorithmes et simplification du modèle pour maximiser l’efficacité.</p><p><strong>Déploiement et mise à l’échelle :</strong> le modèle doit fonctionner correctement dans des environnements de production à grande échelle.</p><p><strong>Surveillance et maintenance :</strong> suivre les performances du modèle et le recycler en cas de dérive des données ou de changement des exigences.</p><p>Ce guide vous guidera à travers ces procédures étape par étape et vous fournira des mesures concrètes à mettre en œuvre dans la vie réelle.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*ZfrDT_KLL1ziWEAm.jpg" /></figure><h3>Principes clés de l’optimisation des modèles d’apprentissage automatique pour la production</h3><h3>1. Défis réels liés aux données</h3><ul><li><strong>Qualité des données et biais</strong> : les données du monde réel sont souvent bruyantes et déséquilibrées. Les techniques de prétraitement telles que la normalisation, la détection des valeurs aberrantes et la gestion des valeurs manquantes sont essentielles.</li><li><strong>Dérive des données</strong> : les données de production peuvent changer au fil du temps, ce qui nécessite que les modèles soient recyclés et mis à jour périodiquement.</li><li><strong>Évolutivité</strong> : la gestion de grands ensembles de données nécessite des pipelines de données optimisés pour un traitement efficace.</li></ul><h3>2. Prétraitement des données pour les environnements de production</h3><ul><li><strong>Automatisez les pipelines de données</strong> : utilisez des outils comme Apache Airflow ou Kubeflow pour automatiser les workflows de prétraitement.</li><li><strong>Ingénierie des fonctionnalités</strong> : sélectionnez des fonctionnalités robustes et fiables dans les scénarios de production.</li><li><strong>Augmentation des données</strong> : appliquez des techniques de suréchantillonnage et d’augmentation des données pour traiter les ensembles de données déséquilibrés.</li></ul><h3>3. Sélection de modèles et d’algorithmes appropriés</h3><ul><li><strong>Sélection d’algorithmes</strong> : choisissez des modèles qui équilibrent la précision, l’interprétabilité et l’efficacité de calcul.</li><li><strong>Complexité du modèle</strong> : simplifiez les modèles à l’aide de techniques telles que la régularisation pour éviter le surajustement.</li><li><strong>Réglage des hyperparamètres</strong> : exploitez les outils de recherche de grille ou d’optimisation bayésienne pour affiner efficacement les paramètres.</li></ul><h3>4. Déploiement des modèles de production</h3><ul><li><strong>Inférence par lots ou en temps réel</strong> : décidez si vous souhaitez traiter les données en temps réel ou par lots en fonction du cas d’utilisation.</li><li><strong>Frameworks de service de modèles</strong> : utilisez des frameworks tels que TensorFlow Serving, FastAPI ou Flask pour le déploiement.</li><li><strong>Intégration avec les API</strong> : assurez une interaction transparente avec les systèmes existants via des API RESTful ou des interfaces similaires.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*ZrQjNbKDr-honivx.jpg" /></figure><h3>5. Modèles de mise à l’échelle pour la production à grande échelle</h3><ul><li><strong>Calcul distribué</strong> : utilisez des frameworks comme Apache Spark ou Dask pour le traitement distribué.</li><li><strong>Compression du modèle</strong> : réduisez la taille du modèle à l’aide de techniques telles que la quantification ou l’élagage pour minimiser la latence.</li><li><strong>Déploiement dans le cloud</strong> : déployez des modèles sur des plateformes cloud telles qu’AWS SageMaker, Azure ML ou Google AI Platform pour plus d’évolutivité.</li></ul><h3>Meilleures pratiques d’optimisation de la production</h3><h3>Surveillance et maintenance</h3><ul><li><strong>Mesures de performances</strong> : surveillez les mesures telles que la latence, le débit et la précision pour maintenir les performances.</li><li><strong>Recyclage et mises à jour</strong> : implémentez des pipelines de recyclage automatisés pour gérer les données en évolution.</li><li><strong>Gestion des erreurs</strong> : créez des systèmes tolérants aux pannes pour récupérer efficacement après une panne sans affecter l’expérience utilisateur.</li></ul><h3>Sécurité et conformité</h3><ul><li><strong>Confidentialité des données</strong> : respectez les réglementations telles que le RGPD ou le CCPA pour garantir la confidentialité des données des utilisateurs.</li><li><strong>Sécurité du modèle</strong> : protégez les modèles contre les attaques adverses à l’aide de la validation des entrées et du cryptage.</li></ul><h3>Collaboration et documentation</h3><ul><li><strong>Collaboration entre équipes</strong> : travaillez en étroite collaboration avec les équipes DevOps et d’ingénierie des données pour rationaliser le déploiement.</li><li><strong>Documentation systématique</strong> : documentez clairement l’architecture du modèle, les étapes de prétraitement des données et les pipelines de déploiement.</li></ul><h3>Optimisation de la production en action</h3><h3>Étude de cas : Optimisation d’un modèle de prévision du taux de désabonnement des clients</h3><p>Je vous partage ce travail projet à travers un repo github : <a href="https://github.com/dona-eric/">https://github.com/dona-eric/</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=3eff33c8dde7" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Avoid Using PCA for Visualisation Unless…]]></title>
            <link>https://medium.com/@koulodjiric/avoid-using-pca-for-visualisation-unless-4fd8685628c8?source=rss-6606c83d03f9------2</link>
            <guid isPermaLink="false">https://medium.com/p/4fd8685628c8</guid>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[data-visualization]]></category>
            <category><![CDATA[data-analysis]]></category>
            <category><![CDATA[pca-analysis]]></category>
            <dc:creator><![CDATA[KOULODJI Dona Éric]]></dc:creator>
            <pubDate>Mon, 25 Nov 2024 17:02:44 GMT</pubDate>
            <atom:updated>2024-11-25T17:02:44.459Z</atom:updated>
            <content:encoded><![CDATA[<p>ACP : Analyse en Composantes Principale, de par sa nature est un technique de réduction de dimensionnalité. Parfois, il est cependant utilisé pour visualiser des ensembles de données de grande dimension en projetant les données en deux dimensions ou trois dimensions(2D ou 3D).</p><p>Le problème avec PCA ?? Je vous explique</p><p>Après avoir appliqué l’ACP sur les datasets, chaque nouvelle fonctionnalité (PC1, PC2, ….., PC-n) capture une fraction de la variance des données d’origine:</p><ul><li>PC1 pourrait capturer 40% de la variance</li><li>PC2 pourrait capturer 25 %</li><li>et ainsi de suite</li></ul><p>Ainsi, l’utilisation de l’acp pour la visualisation en projetant les données sur 2 dimensions n’a de sens que les deux premières composantes expliquent au moins 60% de la variance des données d’origine. Mais en réalité c’est rarement vrai. je vous montre :</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/584/1*_PrbteDJIqMtyTzGv2l3mw.png" /></figure><p>Sur la figure ci-dessus, vous pouvez constater qu’après avoir appliqué la pca sur les données standardisées, on constate que projeter les données sur au moins 8 dimensions, pourrait nous aider à capturer en majeur 70% de la variance de nos données. Ce qui n’est pas optimal, car normalement les n =2 devrait capturer 60 % de la variance au moins pour que la pca soit appliquer. Donc , il est important qu’on fasse attention à l’utilisation de pca pour réduire nos données sinon vous risquez de perdre d’informations.</p><p>A retenir : Utilisez l’ACP pour la visualisation et la réduction de dimensionnalité uniquement lorsque le n_components = k définir vous permet de capturer le plus d’informations possibles dans vos données.</p><p>Je vous partage le code pour réaliser la pca sur vos données afin de comprendre les données :</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/537/1*KgMH1E2ZNwWnfuiaPIr37Q.png" /><figcaption>Réaliser PCA sur vos données</figcaption></figure><p>Il existe, en effet des techniques spécifique conçues pour la visualisation comme: le t-SNE, l’UMAP etc ..que j’expliquerai plus tard en détails avec des notebooks.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4fd8685628c8" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Enrichissez l’analyse des données manquantes avec des cartes thermiques]]></title>
            <link>https://medium.com/@koulodjiric/enrichissez-lanalyse-des-donn%C3%A9es-manquantes-avec-des-cartes-thermiques-ffd431c80d49?source=rss-6606c83d03f9------2</link>
            <guid isPermaLink="false">https://medium.com/p/ffd431c80d49</guid>
            <category><![CDATA[missforest]]></category>
            <category><![CDATA[knn-algorithm]]></category>
            <category><![CDATA[handling-missing-values]]></category>
            <category><![CDATA[missing-value-treatment]]></category>
            <category><![CDATA[data-analyst]]></category>
            <dc:creator><![CDATA[KOULODJI Dona Éric]]></dc:creator>
            <pubDate>Thu, 17 Oct 2024 20:20:53 GMT</pubDate>
            <atom:updated>2024-10-17T20:20:53.823Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/467/1*JB-jrOnnHhQDepipk0znoQ.png" /></figure><p>En science de données , data analyst lors de l’exploration des données, une importante étape pour nettoyer les données afin de l’utilisation pour la modélisation est : Identification et Gestion des valeurs manquantes.</p><p>Pour identifier les valeurs manquantes dans un dataset , plusieurs méthodes s’offrent à nous.</p><p>Première méthode :</p><pre>df.head(5) # afficher les premières lignes de datasets<br>df.isnull().sum() # isnull() est un attribut qui identifie les valeurs manquantes <br>## ou <br>d.isna().sum()</pre><p>Deuxième méthode: Celle de visualiser une boite à moustaches de la variables. Et les valeurs qui sont en dehors de la bonne supérieure et de la borne inférieure du box-plot sont considérés dans la plupart des cas comme des valeurs manquantes et des outliers.</p><p>Troisième méthode: c’est une méthode statistiques le plus utilisées pour détecter les outliers(valeurs aberrantes ) mais aussi utiliser dans certains cas de figure pour identifier les valeurs manquantes : Interquartile Method or Z Scores.. Mais ce n’est pas tout; vous croyez sincèrement que je vais m’en arrêter là ? Non c’est pas vrai ! Cette méthode que je vous dévoile est générale utilisé cela n’a rien d’exceptionnelle: la visualisation de la carte thermique ou le dendrogramme. Voyons un peu le code ci dessous .</p><pre>### pour la carte thermique <br><br><br>import seaborn as sns <br>missing_values ​​= df.isnull(). sum () <br>sns.heatmap(missing_values, annot = True , cmap = &quot;&quot; ) <br>## dendogram <br>import missingno as msno <br>msno.dendogram(df.isnull().sum())</pre><p>Bien que ses méthodes nous permet d’identifier les valeurs manquantes, nous ne savons réellement pourquoi ses valeurs manquent, si ce sont vraiment des données réelles. A cet effet, il peut y avoir plusieurs raisons pour lesquelles des valeurs sont manquantes mais il est aussi important de savoir quel type de valeurs manquantes nous avons à a fait. Je vous livre très rapidement un récapitulatif :</p><ul><li>MCAR (Missing Completely at Random): la valeur est réellement manquante en elle meme et n’a aucun rapport une observation.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*6gT6oYHoeXuhGffzj1Iz8w.png" /></figure><ul><li>MAR(Missing at Random): les données sont manquantes en raison d’une autre variables observée.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Jb5UUiiQSAQU8Wxkf4OKCg.png" /></figure><ul><li>MNAR(Missing Not at Random): ce cas est délicat. Le MNAR se produit lorsqu’il existe un modèle défini dans la variable manquante.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Uk4lQF2sdFRDfVn0qnbY2g.png" /></figure><p>On revient maintenant aux tips de l’heure. L’identification de la raison de l’absence de données peut être extrêmement utile pour des analyses, des imputations et des modélisations plus approfondies.</p><p>Aujourd’hui, comprenons comment nous pouvons enrichir notre analyse de valeur manquante avec des cartes thermiques.</p><p>Considérons que nous disposons d’un ensemble de données de ventes quotidiennes d’un magasin contenant les informations suivantes:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Y9VjBiATlnE_wtUVY5yngg.png" /></figure><p>Ensembles de données sur les ventes de magasin</p><ul><li>jour et date</li><li>heures d’ouverture et de fermeture du magasin</li><li>nom du client</li><li>Ventes totales</li><li>Solde du compte à l’ouverture et à la fermeture</li></ul><p>Si on essaye de calculer la fréquence manquante par colonne, on peut constater que :</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Xw8hLFvfKkp1qDezT0tYww.png" /></figure><ul><li>les valeurs manquantes sont relativement élevées dans deux colones par rapport aux autres;</li><li>les valeurs manquantes dans les colonnes d’heure d’ouverture et de fermeture sont les memes(53);</li></ul><p>Cependant , le problème avec cette approche est qu’elle cache de nombreux détails importants sur les valeurs manquantes, tels que :</p><ul><li>Leur emplacement spécifique dans l’ensemble de données;</li><li>Périodicité des valeurs manquantes (le cas échéant);</li><li>Corrélation de valeurs manquantes entres les colonnes etc… Ce qui peut être extrêmement utile pour comprendre la raison d’une absence. Autrement dit que le tableau ressemble d’avantage à des statistiques récapitulatives qui nous livrent rarement une image fidèle de la réalité.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*bVadzPe8LSQmJ8Szbu5seQ.png" /></figure><h4><strong>Comment Enrichir les données manquantes avec la carte thermique ?</strong></h4><p>Avec la carte thermique réalisées vous pouvez constater que les lignes verticales blanches indiquent l’emplacement des valeurs manquantes dans une colonne spécifique. Maintenant, il est immédiatement clair que :</p><ul><li>des valeurs manquent périodiquement dans les colonnes d’heure d’ouverture et de fermeture.</li><li>les valeurs manquantes sont corrélées dans les colonnes d’heure d’ouverture et de fermeture.</li><li>les valeurs manquantes dans d’autres colonnes semblent (pas nécessairement) manquer complètement au hasard.</li></ul><p>De plus avec une analyse approfondie des horaires d’ouverture et de fermeture, nous pouvons découvrir que le magasin reste toujours fermé le dimanche ; d’où la présence des valeurs manquantes.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*TXJoxZooXJmOy0METjX04w.png" /></figure><p>Maintenant que nous savons la raison spécifique, nous pouvons passer à l’utilisation des techniques d’imputation et d’enrichissement de ses valeurs manquantes.</p><p>Pour MAR en particulier, les techniques pertinentes comme :</p><ul><li>Imputation par KNN (K-Nearest Neighbor)</li><li>MissForest</li><li>Isolation Forest sont assez efficaces pour enrichir les données manquantes dans un ensemble de données.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*bVadzPe8LSQmJ8Szbu5seQ.png" /></figure><p>Pour l’application de ses techniques, je prépare un article spécifique qui va expliquer chaque technique et le notebook , ce qui vous aiderait à des fins bien utiles .</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ffd431c80d49" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Modélisation de sujets]]></title>
            <link>https://medium.com/@koulodjiric/mod%C3%A9lisation-de-sujets-a6fbd676f0a0?source=rss-6606c83d03f9------2</link>
            <guid isPermaLink="false">https://medium.com/p/a6fbd676f0a0</guid>
            <category><![CDATA[modelisation-des-sujets]]></category>
            <category><![CDATA[llms-utilization]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[nlp]]></category>
            <dc:creator><![CDATA[KOULODJI Dona Éric]]></dc:creator>
            <pubDate>Mon, 07 Oct 2024 13:34:22 GMT</pubDate>
            <atom:updated>2024-10-07T13:34:22.296Z</atom:updated>
            <content:encoded><![CDATA[<p>La modélisation de sujets, comme de nombreuses autres tâches, a déjà été réalisée et analysée en profondeur par d’autres. Dans cet article, je vais aborder certaines des solutions existantes ainsi que quelques points importants concernant cette tâche.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/875/0*BZenzN54sWAJ2cmU" /></figure><p>La modélisation de sujets est une tâche <strong>non supervisée</strong> permettant de rechercher des sujets dans des documents texte. Cette tâche peut être utilisée non seulement séparément, mais également comme une étape EDA pour comprendre la distribution des données, les sujets corrélés et exploiter ces informations par l’extension des données ou l’utilisation de modèles pré-entraînés basés sur des sujets.</p><h3>Modélisation et regroupement de sujets</h3><p>Il faut comprendre la différence entre la modélisation de sujets et le clustering :<br><strong>* modélisation de sujets</strong> — montre les sujets présents dans chaque document, de sorte que chaque document peut contenir plus d’un sujet. La modélisation de sujets peut être considérée comme un processus de transformation des documents en un espace de fonctionnalités — espace de sujets. Nous pouvons utiliser cette représentation de l’espace de sujets des documents pour effectuer un clustering.<br><strong>* clustering</strong> — regroupe les documents en différents clusters en fonction d’une mesure de similarité appropriée. Dans le clustering dur, un seul cluster est associé à chaque document.</p><h3>Cohérence du sujet</h3><p>La cohérence des sujets est une mesure qui montre à quel point un sujet est bien pris en charge par un corpus de référence. En d’autres termes, nous estimons à quel point notre sujet créé est cool comme nous le faisons avec la sortie de LDA lorsque (0,005 * voiture + 0,08 * bœuf + 0,001 * herbe) est un mauvais sujet et (0,003 * vacances + 0,009 * avion + 0,01 * touristes) est un bon sujet.<br>Il est calculé comme un score de mots qui apparaissent ensemble dans le corpus de référence. Nous essayons toujours de maximiser la cohérence des sujets, mais elle est généralement corrélée à un certain ensemble de données et il n’y a aucun moyen de déterminer si le score de cohérence est bon ou mauvais.<br><a href="https://towardsdatascience.com/understanding-topic-coherence-measures-4aa41339634c">La meilleure source pour comprendre le calcul.</a></p><h3>Façons de résoudre la modélisation de sujets</h3><p>Il existe de nombreuses façons de résoudre la modélisation de sujets, en raison de la corrélation des sujets. La liste de la plupart d’entre eux peut être trouvée sur <a href="https://github.com/bab2min/tomotopy">le référentiel tomotopy.</a></p><h3>LDA</h3><p>L’allocation de Dirichlet latente est basée sur l’idée que chaque sujet est un mélange sur un ensemble sous-jacent de mots, et que chaque document est un mélange sur un ensemble de probabilités de sujet. Nous attribuons à chaque mot un certain sujet et répétons la réaffectation en fonction des autres mots du document.<br>Je recommande de lire <a href="https://towardsdatascience.com/lda-topic-modeling-an-explanation-e184c90aadcd">une explication courte mais approfondie</a> et <a href="https://towardsdatascience.com/light-on-math-machine-learning-intuitive-guide-to-latent-dirichlet-allocation-437c81220158">une longue explication mathématique</a> pour mieux comprendre l’idée.</p><h3>LSA</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/875/0*by116tNmh0XW0S0T.png" /></figure><p>SVD sur matrice terme-document</p><p>L’analyse sémantique latente permet de trouver les dépendances cachées entre les mots et les documents à l’aide de la SVD. Nous appliquons une réduction de dimensionnalité à l’aide de la SVD sur notre matrice document-terme et obtenons des matrices sujet-terme et sujet-document. Ces matrices nous permettent de trouver les mots ayant la plus forte association avec chaque sujet. Nous pouvons utiliser ces informations pour décider de ce que représente chaque sujet dérivé. une <a href="https://towardsdatascience.com/topic-modeling-with-latent-semantic-analysis-58aeab6ab2f2#:~:text=Latent%20Semantic%20Analysis%20(LSA)%20is,Implement%20truncated%20singular%20value%20decomposition"><em>explication</em></a><br><em>intéressante</em></p><h3>FNM</h3><p>La factorisation matricielle non négative utilise la même idée que LSA pour transformer la matrice document-terme d’entrée en quelques valeurs, mais permet d’avoir des valeurs supérieures ou égales à 0. En utilisant NMF, vous obtenez deux matrices W et H que vous pouvez observer sur l’image ci-dessous. NMF est une technique de factorisation matricielle <em>non exacte</em> . Cela signifie que vous ne pouvez pas multiplier W et H pour récupérer la matrice document-terme d’origine V. Les matrices W et H sont initialisées de manière aléatoire. Et l’algorithme est exécuté de manière itérative jusqu’à ce que nous trouvions un W et un H qui minimisent la norme de Frobenius de la matrice V — WH</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/875/0*sGejnR1SvSLNqSju.png" /></figure><h3>BERT</h3><p>Une approche connue sous le nom de BertTopic que j’utilise le plus souvent mais en combinant un algorithme de clustering HDBSCAN ou DBSCAN. Mais attention, DBSCAN est mort depuis peu de temps, car il n’arrive pas à faire une meilleure généralisation sur les données. Ce qui le rend moins faible et cela ne veut pas dire qu’il disparait. Lors de son utilisation faite un peu attention avec ses outputs.</p><p>Bert est une bouée de sauvetage pour chaque problème de PNL. La modélisation de sujets peut également être résolue à l’aide d’incorporations de phrases de Bert. Notez que vous pouvez également utiliser des incorporations de l’ensemble du texte s’il est suffisamment court. Une approche est connue sous le nom de BertTopic créée par <a href="https://www.maartengrootendorst.com/">Maarten Grootendorst</a> ):</p><ol><li>obtenir des insertions de phrases</li><li>algorithme de réduction de dimensionnalité (UMAP par exemple)</li><li>algorithme de clustering (HBSCAN)</li><li>créer des sujets basés sur TF-IDF ou d’autres algorithmes</li></ol><p>🔔notez que dans le cas de HBSCAN, nous ne pouvons pas fournir le nombre de clusters dont nous disposons, seulement le nombre minimum de documents par cluster et certains documents peuvent être considérés comme des valeurs aberrantes, alors gardez-le pertinent pour votre tâche. Une autre approche consiste à utiliser d’autres techniques telles que K-means pour réduire les intégrations. Cette approche présente l’avantage de fournir le nombre de clusters présents dans un ensemble de données.</p><h3>BERT + LDA</h3><p>Les deux BERT et LDA peuvent fournir des intégrations représentatives. Mais ils diffèrent dans le sens où les intégrations BERT sont davantage basées sur le contexte, tandis que LDA est davantage basé sur les documents thématiques en utilisant uniquement des corpus d’entraînement. Nous pouvons les concaténer ensemble et les utiliser dans un modèle de clustering de modèle commun comme K-Means. Les vecteurs LDA et les intégrations BERT sont numériquement différents, c’est pourquoi nous devons les concaténer ensemble de manière intelligente — l’une des techniques couramment utilisées est AutoEncoder, une architecture dans laquelle nous essayons de reconstruire l’entrée de la meilleure façon.</p><p>Pipeline:</p><ol><li>obtenir les plongements BERT et LDA et les concaténer ensemble</li><li>modèle d’autoencodeur de train pour la reconstruction d’intégration</li><li>utiliser l’intégration de la partie encodeur de l’autoencodeur dans K-means</li></ol><p>Il convient de noter que la sortie du codeur est dans une dimension réduite qui permet une meilleure généralisation. Des auto-encodeurs variationnels peuvent également être utilisés à cette fin.<br><a href="https://www.kaggle.com/code/dskswu/topic-modeling-bert-lda">explication de l’approche avec l’exemple</a></p><p>La modélisation thématique est l’une des principales approches pour mieux comprendre vos données textuelles. Il existe un certain nombre de méthodes faciles à mettre en œuvre et un peu plus compliquées. Dans la plupart d’entre elles, le seul inconvénient est de définir une valeur fixe pour les sujets dans les données. De plus, la plupart des approches nécessitent une interprétation humaine des sujets.</p><p><strong>Ecrit par </strong><a href="https://medium.com/u/6606c83d03f9"><strong>KOULODJI Dona Éric</strong></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a6fbd676f0a0" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Sur moi]]></title>
            <link>https://medium.com/@koulodjiric/sur-moi-3d555cdf4074?source=rss-6606c83d03f9------2</link>
            <guid isPermaLink="false">https://medium.com/p/3d555cdf4074</guid>
            <category><![CDATA[physique]]></category>
            <category><![CDATA[machine-learning-ai]]></category>
            <category><![CDATA[physique-quantique]]></category>
            <category><![CDATA[data-science]]></category>
            <dc:creator><![CDATA[KOULODJI Dona Éric]]></dc:creator>
            <pubDate>Tue, 01 Oct 2024 21:03:53 GMT</pubDate>
            <atom:updated>2024-10-01T21:03:53.169Z</atom:updated>
            <content:encoded><![CDATA[<h3>Mon Premier Article sur Medium</h3><p>De la Physique fondamentale à la Data Science : Mon voyage vers l’exploration du monde quantique et de la matière condensée.</p><p>Je suis Éric KOULODJI, Physicien Théoricien, Data Scientist et aujourd’hui j’ai décidé de partager mon voyage académique en tant que physicien étudiant les fondements de l’univers.</p><p>Comme je le disais, j’ai commencé mon voyage académique en tant que physicien étudiant les fondements de notre univers. de la première année de physique-chimie je continuais toujours d’explorer les fondements de la physique et les aspects réels de la chimie et puis de la deuxième année PCI, je me suis retrouvé en 3è année où mon avenir devrait en dépendre du chemin que je prendrais cette fois-ci . Du coup, je peaufine le domaine de la physique fondamentale où je commençais à explorer les vrais face de la physique et ses fondements. De l’introduction à la mécanique quantique, on est passée à celle de la mécanique non relativiste. Mais au fur et à mesure que je progressais, une nouvelle passion a émergé : l’analyse des données. Aujourd’hui, je me retrouve à l’intersection de deux mondes fascinants : la physique et la data science.</p><ul><li><strong>Ma transition vers la Data Science</strong> : Ici, je vous parlerai que de mes motivations et des opportunités qui s’offrent à vous . Motivé ? Passionné ? j’en dirai pas plus . Si au cours de votre parcours vous rencontrez des problèmes, des différents aspects de la physique, vous saurez que ce n’est pas seulement les mathématiques qui peuvent tout résoudre. Donc, pour faire simple, en entamant ma carrière en physique, je suis motivé à l’idée d’apporter des solutions innovantes et passionnantes telles que résoudre l’equation de Schrödinger plus profondément à l’aide du numérique , faire des simulations et réaliser des expériences impactantes, comme celle de Monte-Carlo. Alors pour assouvir à ses satisfactions dont j’éprouvais déjà d’énormes difficultés, j’ai pris une petite initiative, celle d’allié le numérique à mes problèmes. Bah-hmm aussitôt commencé avec la programmation en python, je m’imaginais déjà entrain de faire des choses bien plus interressantes . Mais au fil du parcours je voyais qu’il me manquait encore beaucoup plus de choses pour aboutir et c’est là je découvre le monde du Machine Learning(apprentissage automatique) et plus tard j’ai commencé à explorer les données de divers domaines(Marketing, informatique, Services clients etc…) et là je me retrouve nez à nez avec les statistiques, les probabilités, l’algèbre linéaire et la programmation. Finalement je me suis dis bon les domaines se complètent, j’utilisais mes compétences en statistiques pour analysées les données, celles en probabilités pour faire des prédictions , mettre en place des hypothèses statistiques etc…</li><li><strong>Pourquoi la physique quantique et la matière condensée ?</strong> : Peut-être que ce sont les mystères de la mécanique quantique qui m’ont fasciné, ou la complexité des systèmes à l’état solide qui m’ont poussé à explorer la matière condensée. Dans le domaine de la physique de la matière condensée, je dirais que c’est à l’idée de modéliser et simuler des matériaux à l’échelle atomique pour mieux comprendre leurs propriétés et celle de la physique quantique c’est l’utilisation de techniques de machine learning pour simuler des systèmes quantiques ou optimiser des algorithmes quantiques, l’optimisation des méthodes de calcul, et la réduction de la complexité des données dans les systèmes multi-particules.</li><li><strong>L’intersection de la physique et de la data science</strong> : C’est une excellente idée d’appliquer la data science dans le domaine de la physique, car cela permet de résoudre des problèmes complexes et d’analyser de grandes quantités de données expérimentales. Il existe plusieurs domaines où la data science est de plus en plus utilisée en physique :</li></ul><ol><li><strong>Physique des particules</strong> : Analyse des données provenant de grands accélérateurs de particules (comme le LHC au CERN) pour découvrir de nouvelles particules ou confirmer des théories.</li><li><strong>Astrophysique</strong> : Analyse de grandes quantités de données provenant des télescopes pour détecter des exoplanètes, des trous noirs, ou encore pour étudier la matière noire.</li><li><strong>Physique de la matière condensée</strong> : Modélisation et simulation des matériaux à l’échelle atomique pour mieux comprendre leurs propriétés.</li><li><strong>Physique quantique</strong> : Utilisation de techniques de machine learning pour simuler des systèmes quantiques ou optimiser des algorithmes quantiques.</li><li><strong>Mécanique statistique et thermodynamique</strong> : Étude des systèmes complexes et non linéaires grâce à l’analyse de données à grande échelle.</li></ol><ul><li><strong>Tes futurs projets</strong> : Ce que j’espère accomplir dans ce domaine. C’est d’abord contribuer à des découvertes en utilisant des modèles prédictifs, ou même proposer des solutions pratiques aux problèmes quantiques grâce à l’apprentissage automatique. Mais aussi en utilisant de l’intelligence Artificielle pour automatiser certaines taches en physique comme la simulation avec collecte des données en really time etc…. Vous aurez le temps de découvrir mes pensées d’ici peut .</li></ul><pre>!pip installe en status-live</pre><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=3d555cdf4074" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>