Réseau de neurones comment ça marche ?

lovelyanalytics Réseaux de neuronesS’il y a un algorithme qui fait parler de lui en ce moment, un algorithme que tout le monde veut afficher fièrement sur son CV, c’est bien celui du réseau de neurones (Neural Network). C’est l’algorithme de base qui se cache derrière le Deep Learning et les intelligences artificielles. Il est souvent utilisé pour les reconnaissances d’image et de voix. Mais sans aller jusque là, je vous propose de comprendre comment les réseaux de neurones fonctionnent pour pouvoir les utiliser. Alors accrochez vous, à la fin de l’article vous saurez comment ça marche. 

Lire la suite de « Réseau de neurones comment ça marche ? »

Arbre de décision, comment ça marche?

Illustration arbre de décision

L’arbre de décision (decision tree en anglais) c’est un algorithme de machine learning facile et interprétable, idéal quand on débute en Data Science. Nous allons voir quels sont ses avantages et inconvénients, quand l’utiliser avec des explications simples sur son fonctionnement.

Lire la suite de « Arbre de décision, comment ça marche? »

Isolation Forest comment ça marche ?

Détecter des valeurs atypiques ou extrêmes grâce aux forêts d’isolations (Isolation Forest une méthode de machine learning non supervisée)

Présenter l'algorithme isolation forest

Isolation Forest (forêt d’isolation) est un algorithme de machine learning qui permet de détecter des valeurs atypiques dans un dataset. C’est par exemple une méthode qui donne de bons résultats pour la détection de fraude en identifiant des cas atypiques.

C’est une méthode multi-dimensionnelle assez simple à comprendre (moi en tout cas j’aime beaucoup). Pour en savoir plus sur le fonctionnement de l’algorithme d’isolation forest c’est par ici.

Lire la suite de « Isolation Forest comment ça marche ? »

Random Forest, tutoriel avec Python

Apprenez à créer un algorithme Random Forest avec Python grâce à ce tutoriel pas à pas

Cela faisait un moment que je voulais vous proposer un tutoriel complet avec Python pour réaliser un projet de Data Science assez simple. Je me lance donc dans cet article avec un tutoriel complet pour utiliser un Random Forest avec Python. Nous allons créer un modèle de prédiction avec un Random Forest en passant par l’ensemble de ces étapes :

  • Chargement des données
  • Exploration et visualisation des données
  • Création d’un échantillon d’apprentissage et de test
  • Phase d’apprentissage avec un algorithme Random Forest
  • Évaluation de la performance sur l’échantillon de test
  • Interprétation des résultats

Pour cela j’ai choisi un dataset disponible sur Kaggle qui contient l’indice de bonheur de chaque pays avec plusieurs variables explicatives.

Lire la suite de « Random Forest, tutoriel avec Python »

Mesurer la performance d’un modèle : Accuracy, recall et precision

Dans mon article sur la performance des modèles je vous présentais la démarche à suivre pour mesurer la performance de vos algorithmes. Il est temps de voir plus en détail quelques uns des indicateurs qui peuvent être utilisés pour y parvenir. Dans cet article, je vais vous présenter 3 indicateurs, adaptés pour évaluer la performance d’un modèle de classification et qui sont calculés à partir de la matrice de confusion. Ils sont assez simples à comprendre et sont très complémentaires : l’accuracy, le recall et la precision

Lire la suite de « Mesurer la performance d’un modèle : Accuracy, recall et precision »

Comment mesurer la performance d’un modèle ?

Dans cet article j’ai envie de vous parler de la performance des modèles au sens large (classification ou régression). Il y a déjà pas mal d’articles pour comprendre les algorithmes (Arbre de décision, Random Forest, Gradient Boosting, …) mais je n’avais pas encore abordé leur évaluation. Pourtant c’est un sujet essentiel. Peu importe votre projet, vous serez forcément amené(e) à devoir évaluer la performance de votre modèle pour mesurer les risques mais également pour comparer plusieurs algorithmes ou plusieurs versions de votre algorithme. Dans cet article je vais vous présenter la démarche globale de mesure de la performance des modèles puis plusieurs articles vous présenteront ensuite les indicateurs à utiliser en fonction du type de modèles.

Lire la suite de « Comment mesurer la performance d’un modèle ? »

Explorez vos données avec pandas_profiling

Dans un projet de Data Science la data prep prend beaucoup de temps par rapport à l’ensemble du projet. Et soyons honnête ce n’est pas forcément la partie la plus intéressante. Mais avant même d’en arriver à cette étape de préparation des données il faut explorer le Data Set pour commencer à appréhender les données que nous allons utiliser. Et cette partie là aussi peut être fastidieuse.

Dans cet article je vous parle de pandas_profiling 🐼 , une librairie Python que j’adore et qui va vous faire gagner un temps fou. Oui oui une librairie Python! Je n’avais pas encore fait d’article Python, seulement quelques liens pour apprendre à coder en Python mais Python prend de plus en plus de place dans mon travail de Data Scientist, j’essayerai donc de vous proposer des articles sur R et Python (pas de jaloux).

Lire la suite de « Explorez vos données avec pandas_profiling »

Interprétez vos modèles avec LIME

Avez-vous remarqué que les modèles « complexes » comme Random Forest, Gradient Boosting ou Neural Network sont de plus en plus accessibles? C’est une bonne chose puisque ces algorithmes donnent généralement de très bons résultats. En revanche, un de leur inconvénient c’est leur effet Black Box : impossible d’expliquer dans le détail les règles de calcul de ces modèles.

Bien sûr on peut calculer l’importance des variables pour expliquer un peu le modèle mais sans aide il est difficile d’aller plus loin. Et cette aide, ce sont les modèles d’interprétabilité (interpretability) qui vont nous l’apporter.

J’ai testé LIME (Local Interpretable Model-Agnostic Explanations) qui est une librairie Python et je vous en parle dans cet article.

Lire la suite de « Interprétez vos modèles avec LIME »

Règles d’association comment ça marche ?

lovely analytics règles d'association.png

Quand on parle de règles d’association on a souvent en tête l’exemple du panier de supermarché. Je suis sûre que vous avez déjà entendu qu’on avait mis en évidence que l’achat de couche pour bébé le week end impliquait aussi l’achat de bières.

En bref les règles d’association sont des règles du type A implique B. Et sont effectivement souvent utilisées dans l’analyse de paniers d’achats ou pour des outils de recommandation.

Lire la suite de « Règles d’association comment ça marche ? »

Règles d’association avec R

lovely analytics règles d'association avec R.png

Je vous propose de regarder comment utiliser les règles d’association avec R en utilisant l’algorithme apriori.

Pour cet exemple, j’ai choisi le dataset movie, disponible sur Kaggle. On a un ensemble de films notés par les utilisateurs, comme  ça pourrait être le cas par exemple sur Netflix ou sur une autre plateforme de VOD.

Au programme de ce petit tutoriel, nous allons voir les étapes suivantes :

  • Chargement et préparation des données
  • Statistiques descriptives
  • Règles d’association

Lire la suite de « Règles d’association avec R »

Classification bayésienne naïve comment ça marche?

lovely analytics classification bayésienne naive.png

Et si on s’intéressait à un nouvel algorithme de machine learning pour essayer de comprendre comment ça marche. Aujourd’hui ce sera la classification bayésienne naïve (Naive Bayes classifier), un modèle assez simple, robuste et rapide qui se base sur le théorème de Bayes. Cet algorithme est à utiliser pour les problématiques de classement avec des variables explicatives qualitatives. On peut l’utiliser par exemple pour prédire la probabilité d’acheter un produit connaissant les habitudes d’achat dans le passé.

Lire la suite de « Classification bayésienne naïve comment ça marche? »

Comment traiter les valeurs manquantes ?

lovely analytics missing value.pngDans une base de données, il arrive que des données soient manquantes : elles ne sont pas renseignées pour tous les individus. Ce qui rend les choses un peu plus complexes, c’est qu’il y a plusieurs manières de considérer et de traiter (on parle d’imputation des données) ces données manquantes selon les cas. La plus simple et la moins contraignante serait de supprimer les lignes qui contiennent une valeur manquante. Mais attention on risque vite d’éliminer beaucoup d’individus et de se retrouver avec des données qui ne sont plus représentatives.

Lire la suite de « Comment traiter les valeurs manquantes ? »

Premiers pas avec Python

Apprendre à coder avec Python

Apprendre Python.pngRécemment on m’a demandé si je prévoyais d’inclure des exemples avec Python. Good question…
Je ne vois que des points positifs sur le fait d’utiliser Python :
Python et R sont les 2 principaux langages utilisés par les data scientists pour le machine learning. Historiquement, R est issu du monde des statisticiens tandis que Python vient de l’univers des développeurs. Aujourd’hui il y a un vrai battle entre les 2. En 2017, une étude menée par KDnuggets montre même que Python est officiellement passé devant R pour le machine learning et la Data Science :

python-r-other-2016-2017

De ce que j’ai pu lire, si vous partez de zero et que vous ne connaissez ni l’un ni l’autre, il vaut mieux apprendre Python. Cela vous permettra d’être plus à l’aise sur les projets Big Data en utilisant PySpark par exemple (tandis que SparkR n’est pas très développé).
Si vous connaissez plutôt R (comme moi), on ne va pas tout jeter à la poubelle pour autant et on peut tout aussi bien faire de la data science avec R. Mais autant ne pas mourir idiot et tester la concurrence 🙂

Me voici donc, grande débutante Python à vouloir tester et commencer à apprendre.

Lire la suite de « Premiers pas avec Python »

Comment faire quand la CAH est dépassée?

3 solutions pour faire des clusters avec de gros volumes de données

lovely analytics CAH.png

La CAH permet de créer des groupes d’individus homogènes, c’est une méthode de clustering et elle donne vraiment de bons résultats. L’inconvénient de cette méthode c’est que les temps de calcul peuvent être très longs lorsque le nombre de clients à segmenter augmente. Certains outils refusent même de calculer une CAH à partir d’un certain seuil.

Problème : Comment faire un clustering efficace quand le nombre d’individus devient tellement important qu’on ne peut plus utiliser la CAH?

Lire la suite de « Comment faire quand la CAH est dépassée? »

Optimiser un modèle avec Grid Search

Grid Search 3La plupart des modèles de machine learning doivent être paramétrés pour donner les meilleurs résultats. Par exemple pour un Random Forest, on doit choisir le nombre d’arbres à créer et le nombre de variables à utiliser à chaque division d’un noeud. Si on paramètre à la main, cela peut vite s’avérer très coûteux en temps (et pas forcément très intéressant) …

C’est là que le Grid search intervient. C’est une méthode d’optimisation (hyperparameter optimization) qui va nous permettre de tester une série de paramètres et de comparer les performances pour en déduire le meilleur paramétrage.

Lire la suite de « Optimiser un modèle avec Grid Search »

Inspirez-moi, inspirez-vous

Liens utiles pour Data Scientist

Prenez mes idées j'en aurai d'autresJ’ai commencé ce blog sur l’analyse de données pour moi, puis je me suis rendue compte que je le faisais aussi pour vous. Je me suis demandée jusqu’où je pourrais aller dans mes articles avec toujours un peu d’inquiétude : « Si je publie tout ce que je sais, que me restera t-il? ». Après un peu plus d’un an, je me rends surtout compte que plus on donne et plus on progresse. Chaque article que j’écris sur un sujet que je connaissais déjà me permet d’attaquer un nouveau sujet. Je m’enrichie aussi énormément de vos commentaires et de vos messages d’encouragement.

Coco Chanel a dit « Prenez mes idées j’en aurai d’autres » et j’adore cette citation. Alors j’ai décidé de partager avec vous mes sources d’inspiration.

Chacun de ces liens mérite toute votre attention. D’ailleurs j’espère secrètement que lovelyanalytics est aussi dans votre liste de liens préférés. Alors n’attendez plus et ajoutez cette page à vos favoris, je suis sûre qu’elle vous aidera un jour ou l’autre.

Lire la suite de « Inspirez-moi, inspirez-vous »

Orange, un outil de Data Mining vitaminé

Ma participation à un challenge avec l’outil Orange

lovely analytics Orange fruitful and fun

Cela faisait un moment que j’avais envie de tester Orange, c’est un petit outil de Data Mining entièrement gratuit qui est très ludique. D’ailleurs leur slogan c’est « Data Mining Fruitful and fun » en référence à leur logo : une orange à lunette qui semble super happy de faire du Data Mining. Il n’en fallait pas plus pour attiser ma curiosité et j’ai voulu voir si la promesse d’un outil sympa et coloré était tenue ou non. J’ai donc profité d’un Challenge Data Science pour tester Orange.

Lire la suite de « Orange, un outil de Data Mining vitaminé »

Random Forest, tutoriel pas à pas avec R

Apprenez à utiliser un Random Forest avec R

lovely analytics Random Forest

L’algorithme Random Forest (forêt aléatoire) fait partie de la famille des modèles d’agrégation et donne de très bons résultats dans la plupart des problématiques de prédiction. Je vous propose dans ce tutoriel de voir comment appliquer un algorithme Random Forest avec R de la préparation des données jusqu’à la restitution des résultats.

Lire la suite de « Random Forest, tutoriel pas à pas avec R »

Vous pensez que les graphiques R ne sont pas présentables?

3 librairies R à connaitre

lovelyanalytics_graphiquesR

Si quand vous entendez parler de graphiques R, vous pensez à la fonction plot, difficile à paramétrer avec un rendu que vous n’oseriez pas présenter, alors cet article est fait pour vous. Parce que ça c’était avant. Il existe maintenant des librairies qui permettent de faire facilement des graphiques beaucoup plus visuels. Je vous parle de 3 packages : ggplot2, plotly et gganimate (qui permet de faire des GIF animés).

Lire la suite de « Vous pensez que les graphiques R ne sont pas présentables? »

Préparer ses données avec Talend : 6 composants indispensables

lovelyanalytics_Talend.pngOn dit souvent que la préparation des données représente 75% du temps de travail d’un Data Scientist. Cela comprend le Data engineering qui consiste à transformer les données pour la création du modèle mais également une partie de data management plus classique. Pour préparer un dataset, souvent à partir de plusieurs sources de données, on peut utiliser un ETL (Extract Transform Load) qui s’avère plus pratique que les outils réservés à l’analyse. Parmi les ETL, je vous propose de tester Talend qui a l’avantage d’inclure une partie complètement gratuite, bien suffisante pour nos besoins de Data management.

Lire la suite de « Préparer ses données avec Talend : 6 composants indispensables »

Faire la moyenne c’est choisir la facilité

lovelyanalytics_moyenne2.png

Combien de fois par jours calculons nous une moyenne? Le salaire moyen, la rentabilité moyenne, l’ancienneté moyenne, … On calcule tellement de moyennes qu’on ne s’en rend plus compte et on va parfois même jusqu’à calculer des moyennes de moyennes (what the fuck?) Mais dans le fond on est bien naïfs de croire que l’on peut résumer autant de situations, autant de données avec un seul et même indicateur !

Lire la suite de « Faire la moyenne c’est choisir la facilité »

Ni boîte noire Ni usine à gaz

Simplifiez la Data science !

lovelyanalytics_boite_noire

Un data scientist doit maitriser de nombreux aspects : la collecte, la préparation des données, l’analyse, les algorithmes, les outils, la dataviz, la restitution, … Les sujets ne sont pas simples, c’est sûr et cela demande un réel effort de comprendre et d’expliquer simplement le fonctionnement des algorithmes comme les réseaux de neurones ou les forêts aléatoires. Souvent face à ces difficultés on rencontre 2 comportements : la boîte noire et l’usine à gaz qui sont tous 2 de très mauvais choix. Je vous explique ce que c’est et comment éviter de tomber dans ces pièges.

Lire la suite de « Ni boîte noire Ni usine à gaz »

CAH : Classification ascendante hiérarchique

Apprenez à utiliser simplement une CAH en comprenant le fonctionnement de l’algorithme.

Exemple de dendrogramme pour une CAH

La CAH (classification ascendante hiérarchique) est un algorithme de machine learning de la catégorie non supervisée. Comme les k-means, elle permet d’identifier des groupes homogènes dans une population, on parle aussi de clustering. C’est une de mes méthodes préférées. Nous allons voir quels sont les avantages et les inconvénients de la CAH, quand l’utiliser avec des explications simples sur son fonctionnement.

Lire la suite de « CAH : Classification ascendante hiérarchique »

Comment identifier les spécificités d’une sous-population ?

L’indice base 100 est mort, vive la valeur test

lovely-analytics-sous-populationLe profiling c’est un grand classique de l’analyse de données. L’objectif est de décrire le profil d’une population et de mettre en avant ses spécificités par rapport à une population de référence. Par exemple on peut analyser le profil de nos clients par rapport à la population française pour identifier le coeur de cible de notre marque. Ou on peut comparer les différents segments d’une segmentation client (pour en savoir plus sur la segmentation : ici, ou ici )

Souvent les chargés d’études utilisent les indices base 100 pour comparer les populations. Je suis absolument contre l’utilisation de ces index qui ne prennent absolument pas en compte la significativité. J’utilise toujours les valeurs tests. Je vous dis pourquoi et comment les calculer.

Lire la suite de « Comment identifier les spécificités d’une sous-population ? »

Suivre sa segmentation client avec un diagramme de Sankey

lovely-analytics-sankey-diagram

Et si on dépoussiérait l’analyse de segmentation client? Fini les vieilles matrices de passage. Vous voyez de quoi je parle? Quand vous faites une segmentation client, il faut suivre son évolution dans le temps pour vérifier que le plan d’actions que vous avez mis en place vous permet bien d’être plus performant. Pour cela vous voudrez vérifier que les segments à faible valeur diminuent au profit d’autres segments plus importants.

Lire la suite de « Suivre sa segmentation client avec un diagramme de Sankey »

Peut-on devenir Data scientist en suivant des MOOC?

lovelyanalytics-data-scientist

Aujourd’hui tout le monde veut devenir Data scientist et pourquoi? Parce que c’est le métier le plus sexy du XXIe siècle mais surtout, avouons le, parce que le salaire moyen d’un Data scientist est bien supérieur à celui des autres métiers de la Data. Sur internet on trouve plein de conseils pour devenir Data scientist, mais qu’en est-il vraiment, et comment devenir Data scientist?

Lire la suite de « Peut-on devenir Data scientist en suivant des MOOC? »

Comment réussir sa segmentation client?

segmentation-clientUn grand classique du marketing c’est la segmentation client. Il en existe plusieurs sortes mais elles ont toutes le même objectif, celui de passer d’une vision complexe et individuelle des clients à une vision agrégée en créant des groupes de clients suivant leur ressemblance. Certains pièges sont à éviter pour construire une segmentation efficace pour les équipes marketing

Lire la suite de « Comment réussir sa segmentation client? »

Apprenez à utiliser 6 algorithmes de machine learning sur R

Apprendre à coder 6 algos avec R

Tutoriel 6 algos.png

GitHub vous connaissez? Je vous en parlais dans un article ici. J’y ai trouvé un tutoriel très intéressant qui présente 6 algorithmes d’apprentissage supervisé avec des détails pour les implémenter sur R. C’est idéal pour se former ou pour revoir ses bases. Je vous en dis un peu plus sur les 6 algorithmes en question :

Lire la suite de « Apprenez à utiliser 6 algorithmes de machine learning sur R »

Gradient Boosting, comment ça marche?

gradient-boosting

Après le Bagging et l’algorithme Random Forest j’avais envie de creuser un peu plus le boosting avec le cas particulier de l’algorithme Gradient Boosting Machine (GBM).

Il s’agit là encore d’une méthode d’agrégation de modèles et je vous propose de découvrir le principe de fonctionnement de cet algorithme.

Lire la suite de « Gradient Boosting, comment ça marche? »

k-means, comment ça marche?

k-means


Le k-means est un algorithme de clustering, en d’autres termes il permet de réaliser des analyses non supervisées, d’identifier un pattern au sein des données et de regrouper les individus ayant des caractéristiques similaires. C’est une méthode simple et rapide.

Le cas d’usage le plus classique pour les méthodes de clustering c’est la segmentation client. On peut aussi les utiliser de manière plus descriptive pour comprendre et synthétiser une population. En revanche, pour construire une segmentation client robuste, avec plusieurs axes je vous recommande plutôt d’utiliser la classifiation ascendante hiérarchique ou la méthode mixte. Lire la suite de « k-means, comment ça marche? »

Chord diagrams vous connaissez?

Chord Diagram

Je suis sûre que vous avez déjà vu ce type de graphiques qu’on appelle Chord diagram. Ils ont un air assez sophistiqué et ça change un peu des visualisations classiques : histogrammes, pie chart et cie… Mais bon encore faut-il savoir quand et comment les utiliser.

Lire la suite de « Chord diagrams vous connaissez? »

Comment créer un échantillon représentatif ?

Comment réaliser un échantillon représentatif, quelle méthode utiliser?

Echantillonnage.pngAvec les technologies Big Data il n’est plus nécessaire d’échantillonner les données, on peut utiliser directement des algorithmes distribués sur des données massives.

Est ce qu’il faut pour autant oublier les bonnes vieilles méthodes d’échantillonnage? Of course not! Il y a bien d’autres contextes pour lesquels vous serez amenés à échantillonner. Par exemple pour extraire un échantillon de client pour faire des tests sur un produit, une offre, un email, ou pour réaliser une enquête de satisfaction, un sondage, …

L’échantillonnage, un seul objectif avoir un échantillon représentatif de la population. Comment s’y prendre?

Lire la suite de « Comment créer un échantillon représentatif ? »

DSS un outil de Data Science collaboratif

 

DataikuPour mener à bien un projet de Datascience nous avons souvent besoin de plusieurs outils. Il faut tout d’abord un ETL pour extraire, agréger et préparer les données. Viens ensuite un outil d’analyse pour calculer des indicateurs, développer et déployer des modèles. On peut aussi utiliser un outil de datavisualisation pour diffuser les résultats. Si à cela vous ajouter des données multi-sources sur des environnements différents, une équipe qui doit collaborer sur un même projet,… on se retrouve vite avec un projet compliqué à gérer et time-consuming.

L’outil DSS de Dataiku est un outil de Datascience collaboratif qui permet de répondre à toutes ces problématiques

Lire la suite de « DSS un outil de Data Science collaboratif »

Et pourquoi pas un Treemap?

Les treemap permettent d’avoir une représentation hiérarchique de vos données

Treemap

Dans mon précédent article 5 conseils pour présenter vos résultats d’analyses je parlais de Treemap. De premier abord ce type de graphique peut paraître compliqué voire inutile s’il n’est pas utilisé pour la bonne problématique. Pourtant comme la plupart des visualisations, si vous savez l’utiliser à bon escient il deviendra un véritable allié de vos tableaux de bords.

Lire la suite de « Et pourquoi pas un Treemap? »

Comment bien présenter vos analyses?

presentation resultats.png

Ca y est votre analyse est presque terminée, après plusieurs jours de préparation, d’exploration et peut être même de modélisation vous avez des programmes, des lignes de code, des chiffres un peu partout et surtout des résultats.

Félicitations vous allez pouvoir passer à la phase de restitution. La plupart des Data Scientists que j’ai rencontré n’apprécient pas vraiment cette partie du projet. Je trouve au contraire que tout peu se jouer à ce moment là. Une super analyse mal restituée ça ne fonctionne pas, tout comme une mauvaise analyse bien restituée d’ailleurs. Moi j’adore cette partie de visualisation des résultats et voici mes conseils pour réussir.

Lire la suite de « Comment bien présenter vos analyses? »

Algorithmes distribués avec la librairie H2O

H2o
Librairie H2O machine learning

Algorithmes distribués avec la librairie H2O

En participant à un challenge sur Datascience.net, j’ai découvert le package H2O. Je voulais développer un réseau de neurones sous R et j’ai vite été limitée par le package Neralnet.

H2O c’est une librairie open source qui regroupe des algorithmes qui peuvent être appliqués sur des données massives et distribuées sur un environnement Hadoop. La librairie peut être utilisée directement à partir de Spark, R ou Python ce qui rend son utilisation vraiment simple pour les Data Scientists qui connaissent déjà ces langages.

Lire la suite de « Algorithmes distribués avec la librairie H2O »

Qu’est ce que le Process Mining?

Le process Mining est une combinaison des méthodes de BPM et de datamining

process-mining

Le Process Mining est une discipline qui se positionne entre l’analyse de processus (BPM) et l’analyse de données (machine learning, big data,…)

Pour faire simple c’est le fait d’utiliser des méthodes d’analyse de données sur des problématiques liées à un processus pour l’optimiser. Lire la suite de « Qu’est ce que le Process Mining? »