Aujourd’hui je vais vous montrer comment faire de la segmentation client de façon simple et rapide, grâce à la data science. Le travail que j’ai restitué à la fin de mon programme de formation portait sur la segmentation client dans le secteur bancaire.
La segmentation client va notamment vous permettre de personnaliser les offres pour délivrer la bonne offre, au bon moment et à la bonne personne.

// Le profil Linkedin de Thao //

Avec les nouveaux services de paiement que proposent les startups Tech et les GAFA (Google Pay, Amazon Pay, Lydia.…) , les banques perdent peu à peu le monopole sur ces services. Ces entreprises ont une force de frappe que n’ont pas les banques, des informations bien plus personnelles qui leurs permettent d’ultra-personnaliser leurs offres. Dans une économie où le client reprend le dessus sur ses choix les banques ne peuvent pas rester passives à ce moment mais suivre le pas.

SEGMENTATION


Avant tout, il existe différents types de segmentation : géographique, démographique, psychologique et comportementale. Dans notre cas, nous allons essayer de comprendre le comportement des clients grâce aux informations de leur carte bancaire (% des dépenses sur les revenus, solde de compte, avances de fond, plafond de paiement etc.). Nous allons donc essayer de definir des typologies de client par rapport à leurs comportement. Pour cela il existe différentes techniques pour faire de la segmentation.

TECHNIQUE DE SEGMENTATION


Le scoring RFM par exemple, utilisé en Marketing. On donne un score à chaque client par rapport à leur récence d’achat, leur fréquence d’achat et la valeur monétaire qu’il dépense sur un temps donné. Cette technique nous permet d’identifier 9 typologies de client. Malheureusement cette technique peut se révéler limité puisque vous n’utilisez que ces 3 variables. En fait, plus vous aurez de variables, plus votre analyse se rapprochera de la réalité.

Grâce à la data science il est possible de créer des clusters (regroupement) de clients avec des algorithmes simples comme le CAH, le TSNE, Les Kmeans etc.

Dans mon étude j’ai décidé d’utiliser les Kmeans, pourquoi? C’est un algo qui est souvent utilisé dans la segmentation client, moins précis que le CAH (Classification Ascendante Hiérarchique) mais plus rapide et simple. “Kmeans” est un algorithme de clustering qui permet d’identifier les patterns d’individus que l’on va regrouper selon des similarités. (Parfait pour segmenter)

DATASET


Le dataset que j’ai utilisé recense les informations de 8000 clients liés à leurs données de carte bancaire pendant 1 mois. Ces informations permettent de comprendre leurs comportements grâce à 12 variables :

  • Avance de fond
  • Minimum d’achat
  • Solde de compte
  • Fréquence d’achat (Echelle de 0 à 1)
  • Plafond de paiement
  • Total des dépenses
  • Etc

(Vous trouverez ce dataset sur Kaggle pour les interessés “Credit Card Dataset for Clustering”)

PRÉ-PROCESSING


Comme vous l’imaginez, le travail d’un data scientist ne consiste pas seulement à appliquer des algorithmes… En fait 80% de son temps, il va préparer le dataset. Autrement dit, il va le nettoyer, en vue d’appliquer l’algorithme. Il peut être risqué de ne pas travailler votre dataset, vous pourriez avoir de mauvaise surprise lors de l’apprentissage de votre modèle. Il est donc essentiel de faire un travail d’analyse sur les données avant de faire votre machine learning.

Dans le cas de mon dataset , beaucoup de données étaient des valeurs aberrantes (outsiders). Ce sont des valeurs tellement extrêmes qu’elles peuvent influencer certains paramètres statistique comme la moyenne. (par exemple, 10 personnes gagnent 10.000€ et 1 personne gagne 1 million d’€. Si vous faites la moyenne sur ce groupe, le résultat ne sera pas représentatif. Il faut donc enlever cette dernière personne).

La normalisation des données : il s’agit de mettre à la même échelle toutes les variables. Comme vous l’avez vu précédemment il y a des variables avec des valeurs en € , d’autres en fréquences etc. Il est dur pour l’algorithme de comparer ces valeurs, il faut donc les mettre sur une même unité de mesure. StandardScaler() est une fonction qui le permet. Au final vous aurez des données qui ressemblent à ca.

Dur à interpreter n’est-ce pas? Pourtant il est indispensable de le faire pour créer de bons clusters.

Je vais enfin vous parler de la réduction des dimensions.

RÉDUCTION DES DIMENSIONS


La réduction des dimensions peut vous permettre de faire plusieurs choses notamment éviter le sur-apprentissage de votre modèle. Dans mon cas, il m’a été nécessaire de faire cette réduction pour visualiser mes clusters.

En effet, vous pouvez considérer que chacune de vos variables représentent 1 dimension. Ainsi, j’ai 12 variables, donc 12 dimensions. Au delà de 3 variables il est difficile de visualiser sur un espace multi-dimensionnel.

Ces deux images représentent un graph en 3D et un autre en 2D. Imaginez donc un graph en 4D voir plus … difficile…

Pour faire cette réduction , j’ai utilisé un algorithme de réduction des dimensions (PCA = principal component analysis) qui permet de synthétiser les informations de mes 12 variables en 2 composantes principales. Généralement il peut y avoir des pertes d’informations lors de la synthétisation mais cet algorithme arrive à garder un maximum de données.

Ainsi, mes 12 variables se transforment en 2 variables

Maintenant que nous avons nos deux variables, nous allons appliquer l’algorithme de clustering Kmeans. J’ai décidé de créer 6 groupes d’individus pour pouvoir mieux analyser ces segments et au pire, si ces groupes sont trop similaires, je peux les regrouper entre eux.

Au final, voilà le résultat

L’algorithme a bien fonctionné ! J’ai bien mes 6 clusters et chaque individu est affecté à son groupe. Maintenant il ne me reste plus qu’a interpreter ces informations… Et là est le problème. Je ne peux pas. Impossible d’interpreter cette échelle de mesure qui se situe entre -6 et 6 et qui représente l’échelle de mes 12 variables synthétisées…

J’ai donc décidé d’exploiter mes données différemment et de faire un retour en arrière pour l’analyse.

EXPLOITATION DES DONNÉES


Au lieu d’utiliser le PCA pour réduire les dimensions, j’ai appliqué l’algorithme des Kmeans après avoir fait la normalisation. Au final, le PCA ne m’a seulement été utile pour visualiser le graphique, pour l’analyse, je n’en ai pas besoin.

J’ai donc appliqué l’algorithme sur mes données normalisés , ce qui m’a donné les prédictions de clusters.

La prédiction affecte chaque individu à son cluster en créant une liste de chiffre de 0 à 5. Nous pouvons alors fusionnez ces résultats avec notre dataset normalisé , ce qui nous donne ce résultat.

Un beau dataframe avec les données des individus et leur cluster. Il est important de noté que j’ai gardé l’index de chaque ligne (de chaque individu) cela va me permettre de recupérer les données d’origine de chaque personne. La normalisation ne m’a été utile que pour l’apprentissage de l’algorithme. Maintenant que j’ai mes clusters, il va falloir que j’analyse ces données. Je vais donc fusionner les données normalisées avec les données d’origines grâce à l’index.

Une fois ce dataframe créé, je n’ai plus qu’a enlever les données normalisées. Cela me donne un dataframe propre , prêt à l’analyse.

Je ne vais pas faire l’analyse dans cette article car je le trouve assez long. Je vais donc en créer un deuxième pour expliquer le résultat de mes clusters.

Encore bravo à Thao pour son projet Data Science, si vous êtes intéressé –  comme elle – à apprendre les Data Sciences, n’hésitez pas à nous contacter.