Data Mining - Étude de cas

English

Vérifiez régulièrement cette page pour d'éventuelles mises à jour, corrections et réponses à vos questions !

Introduction

Le "Data mining" est un processus qui permet de découvrir dans de grosses bases de données consolidées des informations jusque là inconnues, mais qui peuvent être utiles et lucratives, et d'utiliser ces informations pour soutenir des décisions commerciales tactiques et stratégiques.

Les techniques statistiques du data mining sont bien connues. Il s'agit notamment de la régression linéaire et logistique, de l'analyse multivariée, de l'analyse des principales composantes, des arbres décisionnels et des réseaux de neurones. Cependant, les approches traditionnelles de l'inférence statistique échouent avec les grosses bases de données, car en présence de milliers ou de millions de cas et de centaines ou de milliers de variables, on trouvera forcément un niveau élevé de redondance parmi les variables, certaines relations seront fausses, et mêmes les relations les plus faibles paraîtront statistiquement importantes dans tout test statistique. L'objectif est de construire un modèle dont le pouvoir de prédiction soit satisfaisant. Il ne suffit pas de savoir quelles relations sont statistiquement importantes.

Prenez le cas d'une campagne qui offre à la vente un produit ou un service et qui cible une base de clientèle donnée. En règle générale, environ 1% de la base de clientèle "réagiront", c'est-à-dire achèteront le produit ou le service s'il leur est proposé. Un publipostage envoyé à 100 000 clients choisis au hasard générera ainsi environ 1 000 ventes. Les techniques de data mining permettent un marketing fondé sur la relation avec la clientèle, en identifiant quels clients risquent le plus de réagir à la campagne. Si le taux de réponse peut être augmenté ("lift value") de 1% à 1,5%, par exemple, alors 1 000 ventes pourront être réalisées avec 66 666 envois seulement, ce qui réduit le coût du publipostage d'un tiers.

Données

Cet exemple nous a été fourni par Gary Saarenvirta, anciennement de The Loyalty Group, maintenant chez IBM Canada.

Chaque cas représente un compte. Les numéros de compte ont été supprimés.

La variable objective est une variable de réponse indiquant si un consommateur a réagi ou non à une campagne de mailing direct pour un produit spécifique. "Vrai" ou "réponse" est représenté par 1, "Faux" or "non-réponse" par 0.

Les données sont extraites d'un jeu de données beaucoup plus large dont le taux de réponse était d'environ 1%. Nous avons utilisé les 1 079 personnes de ce groupe ayant réagi, ainsi que 1 079 personnes n'ayant pas réagi, choisies au hasard, soit un total de 2 158 cas.

Le fichier contient 200 variables explicatives : v137, v141 et v200 sont des indicateurs de sexe "homme," "femme" ou "inconnu," respectivement, et v1-v24, v138-v140 et v142-v144 sont la récence, la fréquence et des données de type monétaire pour les comptes spécifiques ; v25-v136 sont des variables de recensement et v145-v199 sont des variables démographiques "taxfiler" provenant des contribuables. La majorité des variables ont été normalisées.

Une table contenant certaines descriptions de variables est jointe. Certaines variables spécifiques au produit ont été masquées. "p##" signifie produit, "rcy" signifie la récence (nombre de mois depuis la transaction la plus récente), "trans" signifie le nombre de transactions, "spend" signifie le montant dépensé en dollars. Par exemple : p01rcy signifie récence du produit 1. Notez qu'une récence zéro signifie que le compte était actif pour le produit en question au cours du mois le plus récent. "Jamais actif" serait indiqué par la plus grande valeur de récence possible, sur la base du premier mois pour lequel l'entreprise a recueilli des données.

Les variables de recensement et de contribuables sont des statistiques sommaires pour la zone de dénombrement dans laquelle l'adresse du titulaire du compte est située. Elles indiquent généralement les nombres totaux ou moyens d'individus ou de familles ou de dollars comprises dans les catégories indiquées. Une table contenant certaines descriptions de variables de contribuables est jointe. Vous devriez pouvoir deviner la plupart des variables de recensement d'après leurs noms, mais des tables contenant des descriptions plus longues des variables sont jointes : le Groupe "a" et le Groupe "b" sont présentés séparément. N'hésitez pas à nous contacter si vous avez des doutes.

Vous pouvez télécharger les données sous forme de classeur Excel 97/98 gary.xls (5.9 Mo), sous forme de classeur Excel 97/98 comprimé en archive ZIP gary_xls.zip (2.4 Mo), or sous la forme de fichiers texte dans une archive ZIP gary.zip (1.3 Mo).

gary.zip contient deux fichiers texte. Les données sont présentées dans un fichier ASCII à largeur fixe Sasvar.txt et la description des fichiers de données est dans un fichier imtrans.txt. Si vous décidez de travailler avec les fichiers texte, vous DEVEZ utiliser les positions de colonnes du fichier imtrans.txt pour importer les données dans SAS ou Splus car certaines colonnes sont contiguës. Faites attention aux fins de lignes ; si par exemple, vous dézippez les fichiers texte sous UNIX vous devrez tenir compte de la présence d'un caractère de changement de ligne à la fin de chaque ligne lorsque vous calculerez la longueur de l'enregistrement.

Suggestions d'analyse

Nous vous demandons d'utiliser Splus ou SAS pour cette analyse, cependant les méthodes suggérées ici ne sont pas toutes disponibles sous Splus. Si vous disposez d'une licence SAS, le module Enterprise Miner automatisera la plupart des analyses. Vous pouvez probablement obtenir un exemplaire d'essai à peu de frais de SAS. Nous recommandons également le produit Intelligent Miner d'IBM, mais il est moins probable que vous y ayez accès.

Pour toutes les analyses ci-dessous, vous devez créer un ensemble d'apprentissage et un ensemble de validation. Comme les données ont été stratifiées à 50/50, vous devez créer un ensemble de validation non stratifié avec la proportion originale de 1% "Vrai" pour la variable objective. Vous obtiendriez bien entendu de meilleurs ensembles de validation si vous disposiez de l'échantillon complet d'environ 100 000 comptes, dont 99% de personnes n'ayant pas réagi, mais ce fichier est trop gros pour être distribué de façon pratique. Les ensembles de validation construits à partir de l'échantillon stratifié 50/50 devraient suffire pour les besoins de cet exercice.

Tous les résultats doivent être reportés à l'aide d'un tableau de gains tabulaire ou graphique. Un tableau de gains est une fonction représentant le % de personnes incluses dans la campagne ayant réagi (en ordonnée) par rapport au % de clients contactés (en abscisse). Si la campagne vise des individus choisis au hasard, le tracé sera une ligne droite de pente unitaire passant par l'origine. Si la campagne cible de préférence les personnes qui risquent le plus de réagir, la courbe de gains sera située au-dessus de la diagonale sauf, bien entendu, à 0% et 100% où elle chevauchera forcément la droite.

La performance d'un modèle de prévision est mesurée en examinant le % de personnes ayant réagi lorsque 10%, 20% ou 30% des clients ont été contactés. Un bon modèle obtiendra des résultats de 1,5 à 3,5 fois supérieurs aux campagnes aléatoires sur cette tranche si bien que, par exemple, un contact de 10% des clients atteindra 15% à 35% des personnes qui réagiront. À moins que cela, les données n'ont pas un très bon pouvoir de prévision, à plus que cela, il est possible que vous ayez un problème d'"overfitting" ou que les données ne soient fortement faussées.

Voici quelques suggestions de traitement pour ces données :

  1. Essayez des corrélations linéaires simples, Spearman et Pearson, contre la variable objective et réduisez le nombre de variables. Avec ce jeu réduit de variables, construisez des modèles de régression logistiques. N'oubliez pas de supprimer les variables colinéaires.
  2. Divisez les variables en blocs de 10-20 et construisez des modèles logistiques pour chacun des blocs. Une fois les modèles construits, regroupez les variables restant dans les modèles et créez de nouveaux blocs de 10-20, puis recommencez jusqu'à ce qu'il ne reste plus qu'un bloc de variables. N'oubliez pas de supprimer les variables colinéaires.
  3. Créez des facteurs PCA à partir du jeu de variables (n'y incluez pas la variable objective !). Sélectionnez un jeu réduit de variables à partir des facteurs PCA (en utilisant le % cumulatif de la variation expliquée) et construisez un modèle à partir des facteurs. Comparez ce résultat au résultat obtenu en utilisant tous les facteurs, et notez l'effet de l'"overfitting" (apprentissage par coeur). N'oubliez pas de supprimer les variables colinéaires.
  4. Exécutez un "varclus" avec toutes les variables. Cette procédure regroupes les variables en groupes hiérarchiques en utilisant les facteurs PCA. Sélectionnez des variables du niveau inférieur des groupes hiérarchiques et construisez un modèle logistique. N'oubliez pas de supprimer les variables colinéaires.
  5. Créez des échantillons d'apprentissage et de test multiples. Utilisez le "bootstrap" pour évaluer les limites d'erreur sur les coefficients de modèles et la performance du tableau de gains. Essayez d'échantillonner avec et sans remplacement pour évaluer la sensibilité de la régression logistique à la configuration du jeu de données.
  6. Utilisez SAS pour construire une régression "Radial Basis Function". Utilisez toutes les méthodes décrites ci-dessus pour réduire le jeu de variables et comparez les résultats RBF aux résultats logistiques.
  7. Il est possible d'implémenter un arbre de décisions avec SAS à l'aide de l'algorithme CART. Exécutez cet algorithme pour toutes les variables. Construisez des ensembles d'apprentissage multiples en utilisant l'échantillonnage avec remplacement. Cela devrait améliorer les performances de l'arbre de quelques points de pourcentage.
  8. Vous pouvez également essayer d'autres techniques de modélisation y compris les réseaux de neurones et les algorithmes génétiques.

Tous les résultats de modèle doivent être analysés quant à la performance de la table de gains à l'aide des critères suivants :

  1. Quel est le rapport du taux de réponse (en % des clients contactés) par rapport à une campagne non ciblée pour des campagnes contactant 10%, 20% ou 30% des clients ? À ces seuils, une campagne aléatoire donnerait des taux de réponse de 10%, 20% ou 30% respectivement. La plupart des campagnes contactent 10% à 30% de la clientèle potentielle. De bons modèles peuvent obtenir des résultats de 1,5 à 3,5 meilleurs au taux de réponse aléatoire dans cette tranche.
  2. Monotonicité et régularité : les taux de réponse d'un groupe quantile forment-ils un profil en baisse régulière ? Toute ondulation est preuve de distorsion, d'"overfitting" ou d'effets non modélisés.
  3. Facilité d'expliquer le modèle. Il est très important pour les clients potentiels de pouvoir comprendre pourquoi le modèle fonctionne !

Ressources

Vous pouvez vous procurer un exemplaire des travaux de Gary Saarenvirta en ligne à l'adresse http://www.db2mag.com/. Il est également l'auteur du livre The Intelligent Miner for Data Applications Guide, que vous pouvez trouver à l'adresse http://www.redbooks.ibm.com/.

En lançant une recherche Internet sur le terme "data mining", vous trouverez plusieurs produits commerciaux similaires à Intelligent Miner et Enterprise Miner.


Retour aux Études de cas SSC 2000
Dernière modification le 2000-11-13 17:12