[Data & crise] Saison #2 E4 — Super Monkey voyage dans l’univers du marketing
Vous savez maintenant que Super Monkey sait reconnaître les caractéristiques des musiques sur lesquelles il danse 🕺👇
Ce que vous ne savez pas encore, c’est qu’il est prêt à rejoindre votre équipe marketing ! Un singe codeur ET marketeur, ça vous étonne ? Pourtant, Super Monkey met tout simplement à profit ses connaissances en data au service d’une meilleure compréhension des clients et de leurs besoins.
Dans cet épisode, Super Monkey va apprendre à repérer des clusters de consommateurs, c’est-à-dire des groupes d’individus dont les comportements sont similaires. Ainsi, il pourra conseiller au mieux les équipes marketing et communication sur les actions à mener pour cibler au mieux chacun de ces groupes.
Pour cette nouvelle mission, il travaille pour une entreprise de e-commerce brésilienne qui a rendu public des milliers d’informations encodées sur ses consommateurs et leurs habitudes (https://www.kaggle.com/olistbr/brazilian-ecommerce).
>> Sa première réflexion est la suivante : “Aie, il me manque des données”.
1. Le traitement des valeurs manquantes
Une des approches possibles est l’imputation par la moyenne ou la médiane. Kézako ? Exemple :
Dans notre jeu de données, il nous manque des informations sur la longueur de la description de chaque produit. Pour contourner cela, nous utilisons les valeurs moyennes des descriptions des produits par catégorie. Ainsi, pour la catégorie “Beauté”, si en moyenne la description est de 100 caractères, alors j’étends cette valeur à tous les produits de la catégorie “Beauté”. On se base ainsi sur toute l’information à disposition pour remplir celles manquantes.
#je crée une fonction dédiée qui récupère les indices des lignes pour lesquelles j'ai des cases vides#et qui va attribuer la valeur en moyenne de la catégorie du produitdef fill_cat(column):
df[column] = df[column].fillna(df.groupby("product_category_name")[column].transform('mean'))
return df[column]#j'applique ma fonctiondf['product_description_lenght'] = fill_cat('product_description_lenght')
Vous êtes toujours avec nous ? ✊🏽 Car maintenant que notre jeu de données est davantage rempli*, nous allons passer à l’étape de la modélisation, qui est le cœur du travail d’un Data Scientist et ce qui le distingue de ses confrères en data.
2. Modélisation
Nous avons choisi l’algorithme non supervisé de clustering suivant : le K-means. “Non supervisé” renvoie au fait que l’algorithme ne connaît pas à l’avance les étiquettes des données, et que précisément il va nous permettre d’étiqueter les données.
Pour faire simple, le K-means regroupe dans des catégories distinctes des données ayant un degré de similarité proche. Une donnée n’appartient qu’à un seul cluster. Le degré de similarité est basé sur des calculs mathématiques comme la distance euclidienne (celle qu’on apprend tous au collège! 🤓).
3. Visualisation : exemple du t-SNE
Pour visualiser les clusters définis par le K-means, il existe des algorithmes de réduction de la dimensionnalité i.e. des outils qui vont permettre de simplifier les données pour les visualiser en 2 dimensions.
Par exemple, le t-SNE permet de visualiser des données non-linéaires (ne pouvant pas être séparées par une ligne droite).
model = TSNE(n_components=2, perplexity=40, n_iter=300)
tsne_data = model.fit_transform(X.values)X['tsne-2d-one'] = tsne_data[:,0]
X['tsne-2d-two'] = tsne_data[:,1]
plt.figure(figsize=(16,10))
sns.scatterplot(
x="tsne-2d-one", y="tsne-2d-two",
hue=legend,
palette=sns.color_palette("hls", 5),
data=X,
legend="full",
alpha=0.3
)
plt.legend(fontsize='x-large', title_fontsize='30')
***
NB: Les noms des clusters qui suivent ont été déterminés manuellement par l’analyse des données agrégées de chaque cluster.
***
Ce qui nous saute aux yeux, c’est la démarcation du cluster des spécialistes (vert) et du cluster des fashionistas (rouge). On voit que la représentation dans l’espace de ces deux groupes est bien homogène, et qu’ainsi cela se retrouve en termes d’habitus chez chacun de ces clusters. A l’inverse, les points représentants les “dépensiers” et les “occasionnels” sont plus éparses, sous-entendant ainsi que ces clusters ont des habitus et comportements plus hétérogènes.
En termes d’application pour la stratégie marketing et de communication, on remarque grâce à cette visualisation que le ciblage des “spécialistes” se fera aisément en observant les comportements fréquents de ce cluster, quand pour les “occasionnels” il nous faut un autre degré de lecture.
Nous pouvons par exemple étudier les coordonnées parallèles qui pour chaque variable associent une valeur à chaque centre de cluster (dit “centroïd”).
Continuons avec notre cluster des “occasionnels”. Nous remarquons ici qu’ils sont peu sensibles aux variations des variables, et en particulier qu’ils sont les moins sensibles au type de produit. Nous comprenons alors que dans la stratégie marketing et de communication, il conviendra de mettre en avant des valeurs et un lifestyle plutôt que des bénéfices produit.
💪 C’est à vous
D’après le graphe précédent, quelle est la variable qui caractérise le plus le comportement d’achat du segment des “spécialistes” ? Cela vous paraît-il cohérent?
*** Question Bonus pour les Super Marketeurs en herbe : Comment comprenez-vous la place du segment des “fashionistas” et comment répondre le mieux à leurs attentes ? ***
Nous attendons avec impatience vos réponses !
D’ici là, portez-vous bien et à dans deux semaines pour la dernière aventure de Super Monkey ! 🐒
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
*Avant de pouvoir passer à la modélisation, il est primordial que le jeu de données soit le plus propre possible. Pour des raisons de format et de clarté, nous avons fait l’omission sur les autres étapes nécessaires qui précèdent la modélisation : traitement des doublons, choix optimal du format de données, standardisation…)