Les posteurs les plus actifs de la semaine
Aucun utilisateur |
Sujets les plus vus
Comparaison de classification sous R
2 participants
Page 1 sur 1
Comparaison de classification sous R
Bonjour,
Après avoir réalisé une ACM, je souhaite réaliser une classification pour une population de 50000 individus. Mais R ne pouvant calculer les distances pour autant d'individus, j'ai créé un échantillon aléatoire de 3000 individus (dont les résultats de l'ACM sont semblables à la population totale). J'utilise donc les résultats de mon ACM pour la classification de cet échantillon.
Mon probleme est que je n'obtiens pas les mêmes résultats de classification avec la fonction hclust et la fonction HCPC (du package FactomineR) pour le même échantillon, quelqu'un aurait une idée pourquoi ?
Mon code:
D'autre part, je souhaite ensuite appliquer cette classification à ma population totale, mais je ne sais pas trop comment m'y prendre ... ?
Gaëtan
Après avoir réalisé une ACM, je souhaite réaliser une classification pour une population de 50000 individus. Mais R ne pouvant calculer les distances pour autant d'individus, j'ai créé un échantillon aléatoire de 3000 individus (dont les résultats de l'ACM sont semblables à la population totale). J'utilise donc les résultats de mon ACM pour la classification de cet échantillon.
Mon probleme est que je n'obtiens pas les mêmes résultats de classification avec la fonction hclust et la fonction HCPC (du package FactomineR) pour le même échantillon, quelqu'un aurait une idée pourquoi ?
Mon code:
- Code:
#ACM
res<-MCA(data.MCA.samp, ncp=6, graph = FALSE)
# fonction HCPC
clus<-HCPC(res, nb.clust=-1, consol=TRUE, iter.max=10, min=3, max=NULL,
metric="euclidean", method="ward", order=TRUE, graph.scale="inertia",
nb.par=5, graph=TRUE)
# fonction hclust
dist<-dist(res$ind$coord,method="euclidian")
hclust.ward<-hclust(dist,method="ward")
hclas.ward<-cutree(hclust.ward,k=4)
plot(hclust.ward)
D'autre part, je souhaite ensuite appliquer cette classification à ma population totale, mais je ne sais pas trop comment m'y prendre ... ?
Gaëtan
Dernière édition par Gueguett le Jeu 26 Avr 2012 - 7:40, édité 2 fois
Gueguett- Nombre de messages : 7
Age : 34
Localisation : Rennes
Date d'inscription : 21/02/2012
Re: Comparaison de classification sous R
Bonjour,
cela peut venir de la consolidation des groupes dans la fonction HCPC.
Je m'étais déjà posé la question il y a quelques années...
Sans trop m'investir, mais du coup sans trop avoir de réponse.
Tu peux toujours envoyer un message aux développeurs de FactoMineR, qui te répondront surement.
Ils sont rennais comme toi... donc tu pourrais même aller les voir...
Cordialement
cela peut venir de la consolidation des groupes dans la fonction HCPC.
Je m'étais déjà posé la question il y a quelques années...
Sans trop m'investir, mais du coup sans trop avoir de réponse.
Tu peux toujours envoyer un message aux développeurs de FactoMineR, qui te répondront surement.
Ils sont rennais comme toi... donc tu pourrais même aller les voir...
Cordialement
Invité- Invité
Re: Comparaison de classification sous R
J'ai contacté un des développeurs qui m'a indiqué que la fonction hclust ne prend pas les bonnes distances, mais qu'il faut prendre les distances au carré. Mais je ne retrouve toujours pas les mêmes résultats ...
Gueguett- Nombre de messages : 7
Age : 34
Localisation : Rennes
Date d'inscription : 21/02/2012
Re: Comparaison de classification sous R
Bonjour,
Ayant moi-même été formé par les développeurs de FactoMineR (comme toi peut être), ils sont a priori mieux placé pour te répondre...
Leur as-tu fait part de tes résultats?
Cordialement
Ayant moi-même été formé par les développeurs de FactoMineR (comme toi peut être), ils sont a priori mieux placé pour te répondre...
Leur as-tu fait part de tes résultats?
Cordialement
Invité- Invité
Re: Comparaison de classification sous R
Je vais continuer à fouiller le code de la fonction HCPC pour essayer de trouver par moi même, et dans quel cas je recontacterai un des développeurs de FactoMineR.
Et d'autre part, une fois ma classification effectuée (sur mon échantillon), je fais une description de chaque classe, mais comment attribuer une classe au reste de ma population ?
Et d'autre part, une fois ma classification effectuée (sur mon échantillon), je fais une description de chaque classe, mais comment attribuer une classe au reste de ma population ?
Gueguett- Nombre de messages : 7
Age : 34
Localisation : Rennes
Date d'inscription : 21/02/2012
Re: Comparaison de classification sous R
Bonjour!
Au final c'est simple:
Je n'utilise pas la même méthode que toi(méthode par le hclust, avec une distance de 1-corrélation), mais le principe reste le même je pense pour attribuer une classe à chaque individu)
En espérant t'avoir aidé
Au final c'est simple:
- Code:
dist <- as.dist(1-cor(t(table[,c(...)]))) # calcul des distances
hc <- hclust(dist,method="ward") # création de la classification (pour faire un dendogramme par la suite)
table_temp <- cutree(hc,k=4) # on indique le nombre de groupes que l'on veut
table$classif <- table_temp # attribution du numéro de groupe à chaque individu/ligne
Je n'utilise pas la même méthode que toi(méthode par le hclust, avec une distance de 1-corrélation), mais le principe reste le même je pense pour attribuer une classe à chaque individu)
En espérant t'avoir aidé
Yonyon- Nombre de messages : 6
Date d'inscription : 06/04/2012
Re: Comparaison de classification sous R
Mon problème est que j'ai ma classfication pour mon échantillon (3000 individus), j'attribue donc une classe pour chaque individu mais j'aimerai appliquer cette classification pour ma population totale (50000 individus).
Cordialement,
- Code:
dist<-dist(res$ind$coord,method="euclidian")
hclust.ward<-hclust(dist^2,method="ward")
class.ward<-cutree(hclust.ward,k=3)
Cordialement,
Gueguett- Nombre de messages : 7
Age : 34
Localisation : Rennes
Date d'inscription : 21/02/2012
Re: Comparaison de classification sous R
Bonjour,
Pour ceux que ça interresse, il s'agissait bien d'un problème de consolidation et de choix de distance, il faut simplement prendre la distance au carré pour la fonction 'hclust' et désactiver la consolidation (k-means) pour la fonction 'HCPC'.
Qui est équivalent à :
Et on peut également retrouver les mêmes résultats avec la fonction 'agnes' du package 'cluster' :
Maintenant que j'ai retrouvé les bons résultats, je souhaiterai appliquer cette classification à l'ensemble de ma population. Je réalise alors une description de chaque classe grâce à la fonction 'catdes'. Mais comment attribuer une classe pour le reste de ma population ? (autre que mon échantillon). Il me semble qu'il y a une histoire de v-test des modalités, si quelqu'un a une idée je suis preneur !
Gaëtan,
Pour ceux que ça interresse, il s'agissait bien d'un problème de consolidation et de choix de distance, il faut simplement prendre la distance au carré pour la fonction 'hclust' et désactiver la consolidation (k-means) pour la fonction 'HCPC'.
- Code:
X<-res.mca$ind$coord # on récupère les coordonnées des individus sur l'ACM
dist<-dist(X,method="euclidian") # calcule des distances eunclidiennes
hclust<-hclust(dist^2,method="ward") # création de la classification
clus<-cutree(hclust,k=3) # on choisit le nombre de classes
plot.MCA(res.mca, axes=c(1, 2),col.ind=as.integer(clus),invisible=c("var"),label="") # représentation graphique
table(clus)
Qui est équivalent à :
- Code:
hcpc<-HCPC(res.mca,order=F,consol=F)
tree<-hcpc$call$t$tree
clus2<-cutree(tree,k=3)
plot.MCA(res.mca, axes=c(1, 2),col.ind=as.integer(clus2),invisible=c("var"),label="")
table(clus2)
Et on peut également retrouver les mêmes résultats avec la fonction 'agnes' du package 'cluster' :
- Code:
ag2<-agnes(X,diss=F,method="ward")
ag<-as.hclust(ag2)
clus3<-cutree(ag2,k=3)
plot.MCA(res.mca, axes=c(1, 2),col.ind=as.integer(clus3),invisible=c("var"),label="")
table(clus3)
Maintenant que j'ai retrouvé les bons résultats, je souhaiterai appliquer cette classification à l'ensemble de ma population. Je réalise alors une description de chaque classe grâce à la fonction 'catdes'. Mais comment attribuer une classe pour le reste de ma population ? (autre que mon échantillon). Il me semble qu'il y a une histoire de v-test des modalités, si quelqu'un a une idée je suis preneur !
Gaëtan,
Gueguett- Nombre de messages : 7
Age : 34
Localisation : Rennes
Date d'inscription : 21/02/2012
Sujets similaires
» ACP et classification sous R
» ACP et CLASSIFICATION sous R
» Classification
» Comparaison de moyennes deux echantillons sous R
» Classification
» ACP et CLASSIFICATION sous R
» Classification
» Comparaison de moyennes deux echantillons sous R
» Classification
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|