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.

Et si on jetait un coup d’œil à quelques cas standards avec un exemple simple :

données valeurs manquantes

Parfois, le fait que la donnée soit manquante est une information en soit. Si la variable n’est pas renseignée pour certains individus parce qu’ils ne sont pas concernés alors on ne cherchera pas à imputer statistiquement une valeur. Par exemple la variable date de résiliation ne sera pas renseignée pour les clients actifs. Dans ce cas, vous n’aurez pas besoin de compléter les valeurs manquantes, ça n’aurait tout simplement pas de sens.

Imputation de données manquantes

  • Supprimer les individus qui comportent des données manquantes

C’est tentant de se débarrasser tout simplement des individus ayant des valeurs manquantes. Certains outils le font automatiquement lorsqu’on exécute un algorithme, attention donc à ne pas se retrouver avec un tout petit échantillon.

N’utilisez cette méthode que si vous avez vraiment peu de données manquantes sinon vous risquez de biaiser les données.

  •  Remplacer les données manquantes par une valeur fixe

La méthode la plus simple consiste à remplacer toutes les valeurs manquantes d’une variable par une valeur fixe. Pour choisir cette valeur, on analyse la variable pour les individus ayant des valeurs renseignées, il peut s’agir de : la moyenne, la médiane, la valeur la plus fréquente, valeur fixe, …

Cette méthode est à privilégier s’il y a peu de données manquantes et que vous êtes vraiment pressé.

Dans notre exemple, l’âge moyen, calculé pour les valeurs renseignées est de 11 mois.

Imputation valeur fixe.png

  •  Remplacer les données manquantes avec un arbre de décision

Avec cette méthode, les choses commencent à se préciser un peu plus. Au lieu d’attribuer toujours la même valeur pour tous les individus on va affecter une valeur personnalisée en fonction des autres données existantes. Vous pouvez donc utiliser pour cela un arbre de décision .

Imputation arbre de décision.png

Pour aller plus loin, il existe d’ailleurs un package R MissForest qui permet d’imputer les valeurs manquantes grâce à une méthode basée sur des forêts aléatoires (à tester).

  • Remplacer les données manquantes par les valeurs les plus proches

On peut aussi utiliser la méthode KNN (k- plus proches voisins) pour estimer les valeurs manquantes. Pour cela, pour chaque individu ayant une valeur manquante, on recherche les k-individus les plus proches (en calculant la distance sur les autres variables renseignées) puis on remplace la valeur manquante par la moyenne de ces k-individus.

Dans l’exemple, on regarde les 2 plus proches voisins.

Imputation k plus proches voisins.png

  • Remplacer les données manquantes avec des algorithmes dédiés

La problématique des données manquantes est telle que des algorithmes spécifiques on été développés pour y répondre. Vous retrouverez ces algorithmes implémentés dans certains outils. Dans R, on retrouvera par exemple AMELIA qui est basé sur l’estimation du maximum de vraissemblance et des échantillons bootstrap. Le package Hmsic permet également d’utiliser plusieurs méthodes à base de régression et de bootstrap.

 

Dans tous les cas,  que vous utilisiez une méthode simple ou plus compliquée, le traitement des valeurs manquantes est une partie importante du travail de préparation des données … A ne pas négliger 😉 

 

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 »