Forum de Statistiques
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Les posteurs les plus actifs de la semaine
Aucun utilisateur

Le Deal du moment :
Pokémon Évolutions Prismatiques : ...
Voir le deal

Affectation d'individus après clustering

4 participants

Aller en bas

Affectation d'individus après clustering Empty Affectation d'individus après clustering

Message par 12010929 Ven 28 Aoû 2015 - 12:46

Hello,

Voici ma problématique,
J'ai fait une classification mixte.
J'ai construit des pré-classes avec l'algorithme de k-means avec les composantes en facteurs issues d'une ACM.
Une fois mes pré-classes obtenues je fais une CAH dessus par la méthode de Ward.
avec l'aide de la décomposition de l'inertie et le dendrogramme j'obtiens 3 segments homogènes
Maintenant, je voudrai automatiser ce process de sorte que, pour chaque nouvel individu entrant dans ma base, qu'il soit affecté automatiquement, au cluster adapté à son profil.

Connaissez vous une technique particulière pour faire çà ? sans relancer tout l'algorithme bien sûr?
Merci



12010929

Nombre de messages : 45
Date d'inscription : 24/06/2014

Revenir en haut Aller en bas

Affectation d'individus après clustering Empty Re: Affectation d'individus après clustering

Message par joyeux_lapin13 Ven 28 Aoû 2015 - 13:09

Je pense que tu veux une réponse syntaxique pour un logiciel précis non?

Car sinon la procédure est assez simple, il te suffit de prendre les coordonnées de ton individu, calculer la matrice de distance par rapport à tous les autres et en fonction de ton paramètre k de plus proches voisins à considérer, déterminer la classe par vote majoritaire.
joyeux_lapin13
joyeux_lapin13

Nombre de messages : 1927
Age : 41
Localisation : Mayotte
Date d'inscription : 21/04/2010

https://lemakistatheux.wordpress.com/

Revenir en haut Aller en bas

Affectation d'individus après clustering Empty Re: Affectation d'individus après clustering

Message par 12010929 Ven 28 Aoû 2015 - 13:21

Oui je serais preneur si çà existe dans un logiciel particulier.
joyeux_lapin13 a écrit: il te suffit de prendre les coordonnées de ton individu, calculer la matrice de distance par rapport à tous les autres et en fonction de ton paramètre k de plus proches voisins à considérer, déterminer la classe par vote majoritaire
.

Cela suppose que je relance l'acm sur tous les individus en incluant le nouvel individu du coup les distances initiales vont changer et par conséquent les clusters définit en amont.

Je pensais à un truc du genre faire un logit sur les segments définit et prédire en fonction de l'estimation obtenue. mais je suis pas sûr que ce soit solide comme méthode.

Merci de ton aide

12010929

Nombre de messages : 45
Date d'inscription : 24/06/2014

Revenir en haut Aller en bas

Affectation d'individus après clustering Empty Re: Affectation d'individus après clustering

Message par joyeux_lapin13 Ven 28 Aoû 2015 - 13:49

Non pas du tout, tu as les axes factoriels de ton ACM, il te suffit de projeter ton nouvel individu sur le plan construit par l'ACM grâce aux axes et appliquer la méthode des k-means derrière pour savoir à quel groupe il appartient.
joyeux_lapin13
joyeux_lapin13

Nombre de messages : 1927
Age : 41
Localisation : Mayotte
Date d'inscription : 21/04/2010

https://lemakistatheux.wordpress.com/

Revenir en haut Aller en bas

Affectation d'individus après clustering Empty Re: Affectation d'individus après clustering

Message par 12010929 Ven 28 Aoû 2015 - 14:23

Je vois un peu ce que tu veux dire mais il  y a un point que je comprends pas.
quand tu dis
joyeux_lapin13 a écrit:appliquer la méthode des k-means derrière pour savoir à quel groupe il appartient.
comment faire çà sans que cela n'affecte les clusters initiaux
l'idée c'est que je me retrouve pas avec des clusters dynamiques ; suite à chaque nouvel individu entrant dans la bdd.

je ne sais pas si je suis assez clair?!!
Merci

12010929

Nombre de messages : 45
Date d'inscription : 24/06/2014

Revenir en haut Aller en bas

Affectation d'individus après clustering Empty Re: Affectation d'individus après clustering

Message par niaboc Ven 28 Aoû 2015 - 14:42

Tu pourrais aussi passer par une analyse discriminante sinon, qui te permettra de reclasser un individu facilement.
niaboc
niaboc

Nombre de messages : 1001
Age : 37
Localisation : Paris
Date d'inscription : 05/05/2008

Revenir en haut Aller en bas

Affectation d'individus après clustering Empty Re: Affectation d'individus après clustering

Message par 12010929 Ven 28 Aoû 2015 - 15:03

Okay,

pourquoi pas une régression logistique qui elle aussi, comme l'analyse discriminante me fournit des coefficients à re-appliquer sur les nouveaux individus ? je maîtrise pas trop l'analyse discriminante.

Merci

12010929

Nombre de messages : 45
Date d'inscription : 24/06/2014

Revenir en haut Aller en bas

Affectation d'individus après clustering Empty Re: Affectation d'individus après clustering

Message par niaboc Ven 28 Aoû 2015 - 16:23

Tu peux faire une régression logistique également qui sera plus facile à mettre en oeuvre si tu as des variables qualitatives (ce qui est le cas car tu passes par une ACM). De plus la reg logistique nécessite moins d'hypothèses contraignantes que l'analyse discriminante pour des résultats similaires.
niaboc
niaboc

Nombre de messages : 1001
Age : 37
Localisation : Paris
Date d'inscription : 05/05/2008

Revenir en haut Aller en bas

Affectation d'individus après clustering Empty Re: Affectation d'individus après clustering

Message par 12010929 Ven 28 Aoû 2015 - 17:33

C'est très clair!

Merci beaucoup!

12010929

Nombre de messages : 45
Date d'inscription : 24/06/2014

Revenir en haut Aller en bas

Affectation d'individus après clustering Empty Re: Affectation d'individus après clustering

Message par Plumss Sam 29 Aoû 2015 - 14:48

joyeux_lapin13 a écrit:Non pas du tout, tu as les axes factoriels de ton ACM, il te suffit de projeter ton nouvel individu sur le plan construit par l'ACM grâce aux axes et appliquer la méthode des k-means derrière pour savoir à quel groupe il appartient.

Je m’apprêtais à ouvrir un nouveau sujet pour poser exactement la question à laquelle tu réponds !
J'ai lancé une ACP sous SAS justement, et je n'arrive pas à récupérer les coordonnées de nouveaux individus..

Je m'explique :
Pour vérifier que j'arrivais à trouver les bons résultats, j'ai essayé de calculer les coordonnées d'un des individus qui était dans l'échantillon sur lequel j'ai lancé mon ACM (pour ensuite les comparer aux coordonnées que SAS donne en sortie)
Pour l'exemple : j'ai utilisé les variables X1, ..., Xn dans mon ACP
- je considère l'individu n°i, pour lequel X1 vaut x1 et toutes les autres variables 0
- je normalise x1 (j'enlève la moyenne et je divise par l'écart type)
- je multiplie x1 par la 1ère cordonnée du vecteur propre de la variable X1 (sous SAS j'ai supposé que c'était la valeur "prin1" associé à X1)

Ainsi je devrai obtenir les coordonnées de l'individu i sur l'axe 1, non ?

Merci pour votre aide !

Plumss

Nombre de messages : 6
Date d'inscription : 29/08/2015

Revenir en haut Aller en bas

Affectation d'individus après clustering Empty Re: Affectation d'individus après clustering

Message par niaboc Dim 30 Aoû 2015 - 10:09

Pour ton calcul, je l'avais déjà fait une fois. J'étais passé par les valeurs des coordonnées des variables (car avec la proc corresp de SAS (pour faire une ACM), tu n'as pas les vecteurs propres il me semble. Juste les valeurs propres associées à chacun des axes)

Cij est la coodonnée de l'individu i sur l'axe j :
Cij=XMuj

avec M la métrique utilisée en ACM, qui est l'inverse de la matrice diagonale :
Dp=n.j/nQ (poids de la modalité)
et X = Zij/Q avec Q le nombre de variables de ton ACM et Zij l'indicatrice du tableau disjoctif complet

or Uj=Dp/(racine valeur propre)*Dj
avec Dj=coordonnées des variables sur l'axes factorielles j dans R[n],

Je ne sais pas si c'est très clair, avec toutes mes notations, mais
au final j'avais utilisé et validé numériquement la formule :
Donc Cij=Zi/Q*Dj/racine(valeur propre axe j)

avec Zi vecteur de 1 et de 0 en fonction des modalités prises par l'individu i
Q le nombre de variables
Dj les coordonnées des variables sur l'axe factorielle j (SAS te le donne)

Niaboc
niaboc
niaboc

Nombre de messages : 1001
Age : 37
Localisation : Paris
Date d'inscription : 05/05/2008

Revenir en haut Aller en bas

Affectation d'individus après clustering Empty Re: Affectation d'individus après clustering

Message par niaboc Dim 30 Aoû 2015 - 10:42

Ah mais je viens de voir que tu avais fait une ACP et pas une ACM et effectivement tu peux récupérer les vecteurs propres.


Dans ce cas ta démarche est la bonne. Vérifie manuellement tes calculs en prenant un individu qui a participé à l'élaboration des axes.

Niaboc
niaboc
niaboc

Nombre de messages : 1001
Age : 37
Localisation : Paris
Date d'inscription : 05/05/2008

Revenir en haut Aller en bas

Affectation d'individus après clustering Empty Re: Affectation d'individus après clustering

Message par Plumss Dim 30 Aoû 2015 - 12:52

niaboc a écrit:Ah mais je viens de voir que tu avais fait une ACP et pas une ACM et effectivement tu peux récupérer les vecteurs propres.


Dans ce cas ta démarche est la bonne. Vérifie manuellement tes calculs en prenant un individu qui a participé à l'élaboration des axes.

Niaboc

Oups oui j'ai fait un lapsus, oui j'ai lancé une ACP pas une ACM !

Merci beaucoup pour le détail de la formule de ton précédent message, mais en effet avec l'ACP c'est + direct.
Mais j'ai toujours un problème ; j'avais déjà appliqué ton conseil : j'ai calculé les coordonnées d'un individu qui a participé à l'élaboration des axes, et j'ai comparé les résultats à ce que SAS me donne, et je ne trouve pas la même chose !

Plumss

Nombre de messages : 6
Date d'inscription : 29/08/2015

Revenir en haut Aller en bas

Affectation d'individus après clustering Empty Re: Affectation d'individus après clustering

Message par niaboc Dim 30 Aoû 2015 - 16:52

Quelques remarques/questions :

Plumss a écrit:- je considère l'individu n°i, pour lequel X1 vaut x1 et toutes les autres variables 0

Il ne faut pas remettre les autres variables à 0. Toutes les variables de l'individu doivent être prises en compte dans le calcul de ses nouvelles coordonnées.
Je ne sais pas si tu pensais remettre à 0 toutes les autres variables ou si c'est l'individu qui est comme ça.

Plumss a écrit:- je normalise x1 (j'enlève la moyenne et je divise par l'écart type)

Idem que précédemment. Tu normalises donc toutes les variables.


Plumss a écrit:- je multiplie x1 par la 1ère cordonnée du vecteur propre de la variable X1 (sous SAS j'ai supposé que c'était la valeur "prin1" associé à X1)

Tu fais un calcul vectoriel C11=X1*U1=x11*u11+x12*u21+x13*u31+...

Ton raisonnement est bon si et seulement si ton individu a réellement toutes ses variables, hors X1, à 0.

Niaboc
niaboc
niaboc

Nombre de messages : 1001
Age : 37
Localisation : Paris
Date d'inscription : 05/05/2008

Revenir en haut Aller en bas

Affectation d'individus après clustering Empty Re: Affectation d'individus après clustering

Message par Plumss Dim 30 Aoû 2015 - 18:25

Pardon, je me suis très mal exprimée !
En effet, pour mon individu, l'ensemble des variables valent 0, exceptée x1 qui vaut 100 (j'ai pris cet individu en exemple car il était très simple de vérifier ses coordonnées du coup). Je ne comprends donc pas l'écart de résultat...

Plumss

Nombre de messages : 6
Date d'inscription : 29/08/2015

Revenir en haut Aller en bas

Affectation d'individus après clustering Empty Re: Affectation d'individus après clustering

Message par niaboc Dim 30 Aoû 2015 - 21:29

Bonsoir,

j'ai trouvé des exemples sur Internet qui fonctionnent très bien.
en utilisant la formule simple Cj=XMuj, on retrouve bien les coordonnées des individus.

Quelques remarques :
- M est la matrice identité ici, donc nous avons Cj=Xuj.
- On utilise pas de poids ici. En as-tu dans ton ACP? Il faut le prendre en compte en conséquences sinon.
- SAS utilise les variances non biaisées par défaut (sinon il faut rajouter l'option
Code:
vardef=n
).

Si tu n'as pas beaucoup d'individus, c'est peut-être la variance que tu calcules à la "mano" qui n'est pas la même que SAS. Multiplie tes résultats par racine(n/(n-1)) si tu n'as pas mis l'option vardef de SAS pour le vérifier.

Niaboc
niaboc
niaboc

Nombre de messages : 1001
Age : 37
Localisation : Paris
Date d'inscription : 05/05/2008

Revenir en haut Aller en bas

Affectation d'individus après clustering Empty Re: Affectation d'individus après clustering

Message par Plumss Lun 31 Aoû 2015 - 8:17

niaboc a écrit:Bonsoir,

j'ai trouvé des exemples sur Internet qui fonctionnent très bien.
en utilisant la formule simple Cj=XMuj, on retrouve bien les coordonnées des individus.

Quelques remarques :
- M est la matrice identité ici, donc nous avons Cj=Xuj.
- On utilise pas de poids ici. En as-tu dans ton ACP? Il faut le prendre en compte en conséquences sinon.
- SAS utilise les variances non biaisées par défaut (sinon il faut rajouter l'option
Code:
vardef=n
).

Si tu n'as pas beaucoup d'individus, c'est peut-être la variance que tu calcules à la "mano" qui n'est pas la même que SAS. Multiplie tes résultats par racine(n/(n-1)) si tu n'as pas mis l'option vardef de SAS pour le vérifier.

Niaboc


Alors pour ce qui est des résultats avec la variance biaisée/sans biais, j'avais fouillé sur le net et déjà testé en multipliant par racine(n/(n-1)), mais je travaille sur 300 000 individus donc ça n'a pas d'influence sur les résultats.
Pour ce qui est des poids je n'en ai pas.

Pour résumer (on va finir pas trouver ce que je fais de mal !) :
Mon code est le suivant :

Code:
proc princomp data=table outstat=stat out=sortie;
   var X1--X70;
RUN;

Prenons toujours mon individu qui a X1=100 et les autres variables à 0.
J'ai moy(X1)=1.99 et std(X1)=7.24, donc X1 normalisée vaut 13.54

Dans la table "Stat", je récupère
- les vecteurs propres sur les axes 1, 2, 3 (etc) et en particulier pour la variable X1 : Prin1=0.16,   Prin2=0.10,   Prin3=0.05 ...
- ainsi que que valeurs propres Lamba1=1.82  Lamba2=1.62  Lambda3=1.58 ...

Donc pour moi, les coordonnées de l'individu en question valent : coord1=2.17 (13.54*0.16),  coord2=1.41,  coord3=0.68

Sauf que dans la table "Sortie", je récupère les vraies coordonnées, qui valent : Prin1=2.18,   Prin2=1.33,   Prin3=0.75 ...

Merci beaucoup pour le temps que tu passes à me répondre !

Plumss

Nombre de messages : 6
Date d'inscription : 29/08/2015

Revenir en haut Aller en bas

Affectation d'individus après clustering Empty Re: Affectation d'individus après clustering

Message par niaboc Lun 31 Aoû 2015 - 8:59

Pourrais-tu joindre la sortie complète de SAS. Ca sera plus simple.

Merci
niaboc
niaboc

Nombre de messages : 1001
Age : 37
Localisation : Paris
Date d'inscription : 05/05/2008

Revenir en haut Aller en bas

Affectation d'individus après clustering Empty Re: Affectation d'individus après clustering

Message par Plumss Lun 31 Aoû 2015 - 12:00

Oui, ci joint le doc avec :
- la sortie "Stat" avec les valeurs et les vecteurs propres
- un extrait de la sortie "Sortie" (pour 2 individus, dans la sortie il y en a + de 300000) avec jusqu'en colonne BT les variables utilisées dans l'ACP, puis jusqu'en CD les coordonnées des individus sur les différents axes

Et dans le dernier onglet, ma tentative de calcul des coordonnées pour le 1er individu (en bleu).

Merci !
Fichiers joints
Affectation d'individus après clustering Attachment
Sorties ACP.xlsx Vous n'avez pas la permission de télécharger les fichiers joints.(37 Ko) Téléchargé 5 fois

Plumss

Nombre de messages : 6
Date d'inscription : 29/08/2015

Revenir en haut Aller en bas

Affectation d'individus après clustering Empty Re: Affectation d'individus après clustering

Message par niaboc Lun 31 Aoû 2015 - 14:50

Ok je vois où est le problème...on est bêtes  Very Happy   hihihi

Quand tu centres/réduits les données, tu le fais bien sur X1, mais ce n'est pas parce que X2 vaut 0 pour l'individu 1 que la variable centrée réduite vaut 0 aussi! héhé!

Imagine qu'un panéliste avait pour valeur 0 pour X1, alors sa valeur centrée-réduite aurait été (0-1.99)/7.24=-0.2748

Je te laisse faire les calculs pour vérifier ça!

Niaboc
niaboc
niaboc

Nombre de messages : 1001
Age : 37
Localisation : Paris
Date d'inscription : 05/05/2008

Revenir en haut Aller en bas

Affectation d'individus après clustering Empty Re: Affectation d'individus après clustering

Message par Plumss Lun 31 Aoû 2015 - 16:32

Ahhh mais oui que je suis bête ! Ca marche nickel, enfin !
Merci mille fois Very Happy

Plumss

Nombre de messages : 6
Date d'inscription : 29/08/2015

Revenir en haut Aller en bas

Affectation d'individus après clustering Empty Re: Affectation d'individus après clustering

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