Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou...

35
J’ai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

Transcript of Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou...

Page 1: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

J’ai trop de variables : comment trouver les variables

les plus pertinentes pour expliquer ou prédire un

phénomène ?

Page 2: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

PAR

Paul Légaré de PJL Inc, Generation5, [email protected]

450-663-4151

Eugène Robitaille, Senior consultant, Eugene Robitaille & Associates, consultants. [email protected]

Page 3: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

Présentation des données de Generation5; Qu’est-ce qu’un modèle prédictif ou explicatif; Notre exemple sur SAS EM; Le choix des variables à inclure et les différents niveaux de

granularité des variables; Ce qu’il faut dans le dataset pour débuter; Attention (1) =l’erreur de type II; Brève introduction aux arbres de décision; EM Input node; Attention (2) = Les variables catégoriques qui contiennent

beaucoup de modalités; EM data partition node; EM Tree node; Attention (2) pour corriger les variables catégoriques qui

contiennent trop de modalités Attention (3) = Quelques problèmes rencontrés;

Plan de la présentation :

Page 4: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

Partie A – données de Génération 5

IntroductionCaractéristiques des données

mises à jour annuelles couverture : plus de 10 000 variables granularité des données : chaque variable est

estimés pour chaque code postal à six caractères du Canada: 790 000

Au total : matrice de 10 000 x 800 000

Page 5: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

AD 24662652

Revenu annuel moyen ménages: $ 50,266Valeur moyenne des logements : $ 196,698

Granularité des estimés au code postal : impact

Page 6: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

H2C1X5 :

Revenu : $ 63,908

Logement : $ 288,990

H2C1X2 :

Revenu : $ 36,393

Logement : $ 146,308

Page 7: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

Description des bases de données

Super census : Caractéristiques des particuliers, des ménages et des logements (n > 1,500 )

Famex : dépenses sur les habitudes de dépenses des ménages ( n > 390)

RAE/RTS BBM : données comportementales sur les habitudes de consommation et média (n > 2, 200)

Enquête PMB : données sur les préférences des consommateurs et patterns de consommation (n > 4,300)

Page 8: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

MOSAIC : Modèles de segmentation géo démographique

Classifications des codes postaux en une grille de 20 Groupes et de 150 micro segments.

Classifications basée à 80% sur les comportements et 20% sur les dimensions démographiques, sociales et économiques.

Plus de 300 variables sont utilisées pour configurer chaque Groupe et chaque micro segments.

Page 9: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

MOSAIC Modèle Assurances

Modèle Finances

Modèle commerce de détail

Modèle général

Page 10: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

J’ai une question qui doit être transformée sous forme d’une variable (colonne) binaire, nominale ou continue:

Quels sont mes clients les plus à risque de demander une réclamation d’assurance?

Parmi les patients diagnostiqués du cancer, quels sont ceux qui en mourront ?

Quel sont les clients qui achèteront un produit X? Quel sont les clients qui quitteront notre entreprise

bientôt ? Quel sont les personnes qui fraudent le plus les

impôts ? Etc.

Qu’est ce qu’un modèle prédictif ou explicatif?

Page 11: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

Qu’est ce qu’un modèle prédictif ou explicatif?

On veux prédire quelque chose ou expliquer quelque chose

On part du passé Pour expliquer ou prédire un comportement futur Je tente d’établir une relation entre la variable

dépendante (target) et les variables indépendantes (Input);

Il me faut au moins une variable dépendante (target);

et des variables indépendantes (input);

Page 12: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

Notre exemple sur SAS / EM

Mon entreprise désire trouver des nouveaux clients,

Quels sont les clients qui sont le plus enclin à acheter le produit X ?

Quelles sont les variables importantes pour expliquer ce comportement d’achat?

Page 13: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

Les variables Indépendantes : Le niveau de granularité des données

Le niveau de granularité des données est un synonyme de sa qualité. Si une variable est pertinente, plus la granularité est petite, plus elle sera discriminante.

Par exemple, le revenu exact d’une personne est plus discriminant pour expliquer son comportement d’achat que le revenu du quartier ou de la province dans lequel il habite;

Quelques granularités : La personne; Le ménage (la famille où la famille élargie,…) L’adresse ; L’immeuble (block appartement); Les voisins rapprochés; Le code postal; L’aire de diffusion; Le RTA; etc.

Si vous êtes capable de diminuer le niveau de granularité de vos données, vous pouvez améliorer grandement votre modèle

Page 14: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

ANNONCE DANS LE VOIR:

À 2 pas du métro Sauvé, 3 ½ à louer, électroménagers non fournis, , Entrée laveuse, sécheuse, 425$ / par mois.

(514)XXX-XXXX

ANNONCE DANS LA PRESSE :

Dans le secteur Ahubtic, grand split-level détaché. 4 chambre à coucher, une toilette, grand garage, construction 1940, poêle à bois au sous-sol, piscine hors terre,demande 149,000$ (514)XXX-XXXX

Le 10,851 rue Jarry, H3V-4J5Le 9749 , rue St-André, Anhuntic, H3V-4J5

Les variables Indépendantes : Le niveau de granularité des données

Page 15: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

Un exemple avec EM…

Créer un dataset spécifique pour le choix des variables;

Le dataset doit contenir assez d’observations pour être capable de traiter les variables catégoriques (20,000 observations);

Sur échantillonner au besoin : Il doit y avoir un minimum de 25 % de valeurs positives pour la variable dépendante (target)

Les clés et la variable dépendante (target) doivent être au début du dataset;

Page 16: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

Choisir les variables les plus pertinentes…ATTENTION (1) !

Nous partons d’un échantillon avec énormément de variables inutiles;

Plus il y a de variables plus il y aura de variables inutiles qui sortiront comme étant significatives (erreur de Type II);

Comment résoudre ceci : Un test d’hypothèse très petit pour chacune des variables

choisies (p < .0001); Un gros dataset (N=20,000); La construction du modèle se fait toujours sur un échantillon

différent de celui qui a été utilisé pour trouver les variables; Au bout du compte, vous devez toujours être capable

d’expliquer pourquoi une variable est importante;

Page 17: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

Un exemple avec EM

Sur EM, il y a plusieurs façons de choisir des variables. Les deux plus populaires :Le noeud « Variable selection »

(Pour plus d’information, voir dans la documentation SAS : SAS prducts\Enterprise miner\exterprise miner reference\variable selection node)

Le nœud « Tree » (arbre de décision)

Page 18: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

Propriétés des arbres de décisions

Non-paramétrique;C’est un test multi-dimentionnel;Très robuste face aux valeurs extrêmes et

aux valeurs manquantes;Pas besoin de transformations initiales, pas

besoin de linéarité et de normalisation (la structure des données peut être complexe);

Peux être utilisé avec variables catégoriques ou continues;

Page 19: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

Quand utiliser les arbres de décision

Sélection de variables; Transformer des variables continues en catégorique

ou des variables catégoriques en continues; Remplacement des valeurs manquantes (surogates); Comparer des modèles paramétriques ou autres

modèles et les expliquer (modèle neural ou autre); Suggérer des points (break points) pour transformer

des variables continues en catégoriques; Modélisation; Trouver des prédicateurs concurrents (moins

dispendieux) Découvrir les variables d’interaction;

Page 20: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

Aller chercher vos données avec le nœud « Input Data Source »; Utiliser le dataset en entier pour effectuer vos vérifications et vos tests

(Metadata sample / Size / Change / cocher use complète data as sample)

Un exemple avec EM…

Page 21: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

Définissez vos variables Target (une variable dépendante); Vérifier particulièrement les variables qui sont

automatiquement considéré ID par le système (Voir s’agit-il de variables catégoriques contenant beaucoup de modalités ?) ;

Un exemple avec EM…

Page 22: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

Vérifier l’onglet variables catégoriques afin d’identifier les variables catégoriques contenant beaucoup de modalités (Onglet Class variables / Trier par value)

Un exemple avec EM…

Page 23: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

Faire un « count distinct » des variables catégoriques les plus à risques;

Un exemple avec EM…

Page 24: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

Les variables catégoriques qui contiennent beaucoup de modalités : 309 RTA 168 villes 76 Types Mosaic sur 149 16 Groupes Mosaic 15,234 Code postaux

Comment résoudre ceci (on va le voir plus loin): Il faut pénaliser ces variables… S’il ressortent comme étant pertinentes, transformer ces

variables catégoriques en variables continues ou réduire de beaucoup les catégories en faisant des groupes;

Valider et tester le modèle,…

Choisir les variables les plus pertinentes…ATTENTION (2) !

Page 25: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

Faite une partition simple des données (data partition node)

Utiliser 65% des données pour créer le modèle et 35% des données pour le valider

Un exemple avec EM…

Page 26: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

Faire un arbre de décision qui vise à faire ressortir plus de variables que le nombre désiré dans le modèle;

Dans l’onglet « Basic », Splitting criteria = Gini reduction, nombre de surrogate = 2;

Un exemple avec EM…

Page 27: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

Dans l’onglet « advance » Model = (Gini index) Total leaf impurity Sub-tree = The most leaves;

Un exemple avec EM…

•Sauvegarder et faire rouler l’arbre

Page 28: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

Après avoir obtenu le résultat de l’arbre(result / onglet score /variable sélection), choisir plus ou moins les 50 variables plus importantes et laisser tomber les autres;

Un exemple avec EM…

Page 29: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

L’arbre ne fonctionne pas, l’ordinateur ne veut pas me donner de résultat;

J’ai des variables que je sais historiquement importantes et elles ne sont jamais ressorties;

Mon modèle me semble trop bon Les variables anachroniques; Les variables monotoniques;(pour plus d’information : Dorian Pile, Data preparation for data mining)

J’ai beaucoup de variables catégoriques qui sont ressorties comme étant pertinentes;

Choisir les variables les plus pertinentes…ATTENTION (3) !

Page 30: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

Traitement des variables catégoriques avec beaucoup de modalités

Pour corriger les variables catégoriques qui contiennent trop de modalités : Faire un nouvel arbre de décision avec ces paramètres :

Choisir seulement les variables catégoriques en tant qu’input; Onglet variable / mettre le « Status » à use pour les variables « nominal » et la

variable « target » status = don’t use pour tous les autres types de variables

Page 31: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

Onglet « advanced » / dé-cocher Kass P-value adjustment

Traitement des variables catégoriques avec beaucoup de modalités

Page 32: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

Onglet score/Data cocher Process or score : training, validation and test

Faire rouler l’arbre et vérifier le résultat;

Traitement des variables catégoriques avec beaucoup de modalités

Page 33: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

Onglet score/variables, cocher seulement leaf indentification variable ou prediction (décocher tous le reste)

Faire rouler l’arbre

Traitement des variables catégoriques avec beaucoup de modalités

Page 34: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

Création d’une nouvelle variable catégorique à 5 modalité

La nouvelle variable catégoriques à 5 modalité sera désormais utilisée dans les modèles pour remplacer toutes les autres variables catégoriques

Page 35: Jai trop de variables : comment trouver les variables les plus pertinentes pour expliquer ou prédire un phénomène ?

?