Les posteurs les plus actifs de la semaine
c@ssoulet
 
maplej0e
 


Classification - grand nombre d'individus & de variables

Aller en bas

Classification - grand nombre d'individus & de variables

Message par HDKalit le Jeu 10 Jan 2013 - 9:53

Bonjour tout le monde,

Voilà j'ai un problématique qui me parait assez "simple" (pour un premier jet) : segmenter une population d'individus en plusieurs catégories (non spécifiées) pour avoir après un "panel" sur cette population & détecter/mettre en évidence les variables les plus représentatives pour cette segmentation.
J'ai à ma disposition une population de plus d'1 million d'individus sur plusieurs dizaines de variables (qui ne sont peut être pas forcément toutes utiles).

J'ai pensé à faire une classification non supervisée (en utilisant k-means) car avec une classification hiérarchique (type CAH) en temps de calcul je vais exploser.
Avant cela je souhaitais faire une analyse factorielle pour avoir une "idée" des variables intéressantes et également une idée du nombre de classe et visualisation de la population sur un plan.

Problème sur le graphique il y a trop de points du coup ça couvre quasiment toute l'hypersphère (enfin le cercle unité en dimension 2) et impossible d'en tirer quoi que ce soit comme conclusion.

Là je pense pourquoi pas à faire tout de suite une classification en fixant le nombre de classes à 100 (peut être trop grand? trop petit par rapport à ma population?) pour après faire une analyse factorielle sur les barycentres des classes obtenues ... mais vais-je avoir une bonne "visualisation" des variables et de la population?
Je pensais après également faire une CAH sur les 100 barycentres pour avoir une idée d'un nombre de classes optimales pour après refaire une classification avec allocation dynamique ...

Tout ceci étant que des idées est-ce que quelqu'un aurait une idée de comment procéder intelligemment vis à vis de cette problématique? Un bon conseil à suivre?

Cordialement,

KaliHD

PS: je suis sous R et j'espère que le logiciel supportera ce "data set" car là j'ai découpé de façon aléatoire un échantillon (de 100 000 individus avec toutes les variables).

HDKalit

Nombre de messages : 85
Date d'inscription : 10/01/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Classification - grand nombre d'individus & de variables

Message par niaboc le Jeu 10 Jan 2013 - 11:19

Tu peux prendre un échantillon de 1 000 individus tirés aléatoirement et faire ton ACP là-dessus si tu veux repérer les variables intéressantes.
Tu peux même le faire plusieurs fois pour vérifier que ce sont biens les mêmes variables qui ressortent à chaque fois. Si c'est le cas, ces variables te serviront pour les kmeans.

K-means suivies d'une CAH est une bonne méthode.
Après tu peux prendre plus de 100 centres je pense. Tu pourrais en prendre 1000 puis tu lances la CAH sur ces 1000 centres.

Une fois les groupes réalisés, tu peux lancer une analyse factorielle discriminante pour avoir une bonne visualisation graphique de tes classes et des variables importantes.
avatar
niaboc

Nombre de messages : 944
Age : 31
Localisation : Paris
Date d'inscription : 05/05/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Classification - grand nombre d'individus & de variables

Message par HDKalit le Jeu 10 Jan 2013 - 13:28

niaboc a écrit:Tu peux prendre un échantillon de 1 000 individus tirés aléatoirement et faire ton ACP là-dessus si tu veux repérer les variables intéressantes.
Tu peux même le faire plusieurs fois pour vérifier que ce sont biens les mêmes variables qui ressortent à chaque fois. Si c'est le cas, ces variables te serviront pour les kmeans.

K-means suivies d'une CAH est une bonne méthode.
Après tu peux prendre plus de 100 centres je pense. Tu pourrais en prendre 1000 puis tu lances la CAH sur ces 1000 centres.

Une fois les groupes réalisés, tu peux lancer une analyse factorielle discriminante pour avoir une bonne visualisation graphique de tes classes et des variables importantes.

Merci pour la réponse niaboc.

Effectivement faire un tirage aléatoire successif me parait une très bonne idée pour vérifier les résultats sans exploser le temps de calcul.
Après je bloque souvent lors de l'ACP pour justement voir quelles sont les variables qui me serviront pour le kmeans. Concrètement j'ai 2 axes principaux (qui j'espère représente au maximum la variabilité) mais j'arrive pas à voir à quoi correspond ces axes par rapport à mes variables.
Et du coup comment les ré-utiliser ces variables dans le kmeans (pour le moment je bourrine un peu pour le kmeans en prenant toutes les variables et j'essaye de repérer des individus "caractéristiques" pour comprendre les axes). Je sais pas si j'ai été très clair en fait.

En gros pour toutes ces méthodes descriptives (ACP, AFC, AFCM, Classif',etc.) j'ai toujours du mal à me dire ce que représente concrètement les axes principaux que j'obtiens ... j'ai toujours fait du prédictif en fait donc pas habitué du tout à ces méthodes qui là répondent parfaitement à ma demande.

Cordialement,

KaliHD

HDKalit

Nombre de messages : 85
Date d'inscription : 10/01/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Classification - grand nombre d'individus & de variables

Message par niaboc le Jeu 10 Jan 2013 - 15:11

Toutes les variables contributives aux premiers axes de l'ACP sont les variables qui résument le mieux l'information de l'ensemble de tes données.

Donc tu peux ne garder que les variables les plus contributives aux premiers axes pour les k-means. (tu peux te fixer une règle comme le critère du coude, contribution > moyenne des contributions, etc).
Dans ton cas tu n'as pas grand intérêt à analyser la signification des axes, puisque tu pourras caractériser ta segmentation par la suite à l'aide des variables d'origine.

Ou alors, et ce qui est mieux je pense c'est de faire la méthode des k-means sur les x (2?) premiers axes factorielles, qui sont simplement une combinaison linaire de tes variables d'origine.


La segmentation réalisée, tu peux caractériser les groupes via les variables d'origine, avec des tests stats appropriés et même représenter le tout à l'aide d'une analyse factorielle discriminante.

j'espère bien répondre à tes questions bounce
avatar
niaboc

Nombre de messages : 944
Age : 31
Localisation : Paris
Date d'inscription : 05/05/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Classification - grand nombre d'individus & de variables

Message par HDKalit le Jeu 10 Jan 2013 - 16:03

niaboc a écrit:Toutes les variables contributives aux premiers axes de l'ACP sont les variables qui résument le mieux l'information de l'ensemble de tes données.

Donc tu peux ne garder que les variables les plus contributives aux premiers axes pour les k-means. (tu peux te fixer une règle comme le critère du coude, contribution > moyenne des dontribution, etc).
Dans ton cas tu n'as pas grand intérêt à analyser la signification des axes, puisque tu pourras caractérisés ta segmentation par la suite à l'aide des variables d'origine.

Ou alors, et ce qui est mieux je pense c'est de faire la méthode des k-means sur les x (2?) premiers axes factorielles, qui sont simplement une combinaison linaire de tes variables d'origine.


La segmentation réalisée, tu peux caractériser les groupes via les variables d'origine, avec des tests stats appropriés et même représenter le tout à l'aide d'une analyse factorielle discriminante.

j'espère bien répondre à tes questions bounce

Merci niaboc!

J'ai mieux saisit les possibilités. En fait oui je pense faire le k-means sur les x (j'avais pas pensé que je pourrai en avoir plus de 2 ... Embarassed ) premiers axes factoriels sans perte d'informations à priori (combinaison linéaire donc probablement pas le même poids m'enfin utile dans ce cas je pense).

Après effectivement je pense faire des tests (je ferai une petite recherche biblio là dessus mais ça semble une bonne idée) pour caractériser les groupes en fonction des variables d'origine. Idem pour l'analyse discriminante qui peut être utile.

Ceci dit je viens de me rendre compte (j'ai pas relancé l'algo depuis ce matin) que mes variables sont souvent qualitatives (peu de modalités voir 2 seulement pour certaines du style Oui/Non) et quelques unes continues (temps, âge, etc.).
J'avais pensé à tout rendre quantitatif de façon à garder mes individus tels quels (ne surtout pas les regrouper car je veux pouvoir y ré-accéder facilement une fois la segmentation faite) mais c'est pas un peu "barbare" de considérer quantitatif des variables qualitatives en leurs attribuant un code numérique (1 = enfant, 2 = adulte-femme, 3 = adulte-homme, 4 = grand-parents par exemple?)?

Encore merci pour tes réponses qui m'ont bien éclairées!

Cordialement,

KaliHD

HDKalit

Nombre de messages : 85
Date d'inscription : 10/01/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Classification - grand nombre d'individus & de variables

Message par niaboc le Jeu 10 Jan 2013 - 16:20

HDKalit a écrit: (1 = enfant, 2 = adulte-femme, 3 = adulte-homme, 4 = grand-parents par exemple?)?

Oulala! surtout pas! ça n'a aucun sens de faire ça.

Il te faut transformer toutes tes variables en variables qualitatives et faire une ACM plutôt qu'une ACP.
Avec 2 règles à respecter :
- toutes les variables doivent avoir à peu près le même nombre de modalité ( entre 2 et 5 dans ton cas par exemple)
- toutes les modalités doivent être à peu près bien réparties en effectif (pas de répartition 3% , 75%, 22% par exemple)

Et contrairement à l'ACP tu auras un plus grand nombre d'axe à retenir pour récupérer au moins 50% de l'information de ta base de données d'origine (entre 5 et 10 généralement).
avatar
niaboc

Nombre de messages : 944
Age : 31
Localisation : Paris
Date d'inscription : 05/05/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Classification - grand nombre d'individus & de variables

Message par HDKalit le Jeu 10 Jan 2013 - 17:09

C'est bien ce que je pensais Smile

Donc ok pour une ACM (ou peut être AFM??) mais si j'ai bien suivi on fait l'ACM avec les effectifs des modalités des variables?
Du coup on aura bien une représentation des variables intéressantes mais plus des individus?

Or à la fin c'est pouvoir dire Monsieur X fait partie de ce groupe (cluster) là et du coup globalement il est définit par ce cluster.

Je suis un peu "confus" du coup là dessus ...

Encore merci,

KaliHD

HDKalit

Nombre de messages : 85
Date d'inscription : 10/01/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Classification - grand nombre d'individus & de variables

Message par niaboc le Jeu 10 Jan 2013 - 17:26

Si si l'ACM reste au niveau individu... sauf que toutes ses variables sont rangées dans "des cases". Il va y avoir que des 1 ou 0 comme valeur pour toutes les modalités de toutes les variables.

exemple:

individu | age | sexe
individu | 0-15 15-40 40-80 | F H
1 | 0 1 0 | 1 0
2 | 1 0 0 | 0 1
3 | 0 0 1 | 1 0

Après ça fonctionne pareil que pour l'ACP, tu fais tes classes sur les axes factoriels obtenus, tu fais les k-means et la CAH.

Ainsi chaque individu sera relié à un groupe.

Et rien empêche de caractériser les groupes à l'aide des variables d'origine (qualitatives et quantitatives).
avatar
niaboc

Nombre de messages : 944
Age : 31
Localisation : Paris
Date d'inscription : 05/05/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Classification - grand nombre d'individus & de variables

Message par HDKalit le Ven 11 Jan 2013 - 8:39

niaboc a écrit:Si si l'ACM reste au niveau individu... sauf que toutes ses variables sont rangées dans "des cases". Il va y avoir que des 1 ou 0 comme valeur pour toutes les modalités de toutes les variables.

exemple:

individu | age | sexe
individu | 0-15 15-40 40-80 | F H
1 | 0 1 0 | 1 0
2 | 1 0 0 | 0 1
3 | 0 0 1 | 1 0

Après ça fonctionne pareil que pour l'ACP, tu fais tes classes sur les axes factoriels obtenus, tu fais les k-means et la CAH.

Ainsi chaque individu sera relié à un groupe.

Et rien empêche de caractériser les groupes à l'aide des variables d'origine (qualitatives et quantitatives).

Ah ok!! Va falloir que je teste ça car là ça me semble flou Smile
Je pensais vraiment qu'il fallait compter les effectifs par modalité de chaque variable quali. pour pouvoir faire une ACM. Plutôt bon d'entendre que je me trompais Smile

Du coup je vais regarder comment faire ça proprement, idem pour l'AFCM que je ne connais pas trop et qui à priori gère les deux types de variables.
Encore merci!!!

Bonne journée,

KaliHD

HDKalit

Nombre de messages : 85
Date d'inscription : 10/01/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Classification - grand nombre d'individus & de variables

Message par HDKalit le Jeu 17 Jan 2013 - 13:22

Bonjour tout le monde,

Je reviens vers vous après avoir un peu exploré les techniques d'Analyse Factorielle.
Donc j'ai transformé toutes mes variables quantitatives en variables qualitatives (couper en classes) et donc en gros j'ai bien une homogénéité dans le type de variables.
Une ACM par dessus tout ça me donne les axes principaux dont j'aimerai me servir pour ma méthode de classification (clustering) avec par exemple un algorithme de type K-means.

Le problème que je rencontre est que je ne comprends pas trop si je dois "réécrire" mes données en fonction de ces axes et si oui comment le faire? En fonction des coordonnées des individus ou des variables?

Un second problème (plus relatif à R je pense) est qu'on a une notion de distance entre les variables ou les individus. Or là je lui donne une matrice avec des modalités dedans (donc pas de valeur numérique) et du coup impossible de lancer mon k-means (via R tout du moins). Dois-je écrire mes données sous une autre forme (indépendamment de ma question précédente)? Du style tableau de Burt? ou quelque chose dans le genre? L'idée étant de ne jamais perdre de vue mes individus (où leur numéro) pour pouvoir dire l'individu "X" est proche/éloigné de l'individu "Y" donc on peut dire que ...

Encore merci par avance pour l'aide et les précisions apportées,

Cdlt,

KaliHD

HDKalit

Nombre de messages : 85
Date d'inscription : 10/01/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Classification - grand nombre d'individus & de variables

Message par niaboc le Jeu 17 Jan 2013 - 15:39

HDKalit a écrit:Une ACM par dessus tout ça me donne les axes principaux dont j'aimerai me servir pour ma méthode de classification (clustering) avec par exemple un algorithme de type K-means.

Le problème que je rencontre est que je ne comprends pas trop si je dois "réécrire" mes données en fonction de ces axes et si oui comment le faire? En fonction des coordonnées des individus ou des variables?

Un second problème (plus relatif à R je pense) est qu'on a une notion de distance entre les variables ou les individus. Cdlt,

KaliHD

Bonjour,

En fait il faut récupérer les coordonnées de tes individus sur les axes factorielles.

Tu peux ensuite lancer les k-means sur ces coordonnées qui sont de type quantitatives et tu peux donc lancer les k-means dessus.
avatar
niaboc

Nombre de messages : 944
Age : 31
Localisation : Paris
Date d'inscription : 05/05/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Classification - grand nombre d'individus & de variables

Message par HDKalit le Jeu 17 Jan 2013 - 17:07

niaboc a écrit:
HDKalit a écrit:Une ACM par dessus tout ça me donne les axes principaux dont j'aimerai me servir pour ma méthode de classification (clustering) avec par exemple un algorithme de type K-means.

Le problème que je rencontre est que je ne comprends pas trop si je dois "réécrire" mes données en fonction de ces axes et si oui comment le faire? En fonction des coordonnées des individus ou des variables?

Un second problème (plus relatif à R je pense) est qu'on a une notion de distance entre les variables ou les individus. Cdlt,

KaliHD

Bonjour,

En fait il faut récupérer les coordonnées de tes individus sur les axes factorielles.

Tu peux ensuite lancer les k-means sur ces coordonnées qui sont de type quantitatives et tu peux donc lancer les k-means dessus.

Bonsoir,

Effectivement c'est ce que j'ai pensé.
Après j'ai toujours l'impression que je dois "modifier" mes données pour avoir plus de facilité à faire le traitement. Par exemple créer un tableau disjonctif en amont ou un tableau - matrice - des dissemblances (distances) entre les individus avant le k-means (ou même analyse factorielle)?

Encore merci pour les infos Wink

Cdlt,

KaliHD

HDKalit

Nombre de messages : 85
Date d'inscription : 10/01/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Classification - grand nombre d'individus & de variables

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum