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 ? »

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 »

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é »

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 ? »

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 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? »

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? »

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 »

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 »