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

-20%
Le deal à ne pas rater :
-20% sur le Lot de 2 écrans PC GIGABYTE 27″ LED M27Q
429 € 539 €
Voir le deal

Classification

2 participants

Aller en bas

Classification  Empty Classification

Message par FMarwen Lun 10 Sep 2018 - 14:32

Bonjour tout le monde,

Après avoir appliquer la classification une première fois sur les données de base, comment peut on s'il vous plaît appliquer la classification une deuxième fois sur les classes obtenues à la première classification ?
Merci à vous

FMarwen

Nombre de messages : 226
Date d'inscription : 17/04/2013

Revenir en haut Aller en bas

Classification  Empty Re: Classification

Message par AdrienC Lun 10 Sep 2018 - 18:46

Bonjour. Je ne suis pas sûr de comprendre ce que vous dites. Vous avez fait du clustering sur votre base, ensuite vous avez des centres de classes et vous aimerez refaire du clustering mais en partant comme « initialisation » ces centres de classes ?

Si c’est ça tout dépend de l’algorithme que vous avez utilisé pour la première classification. Ce que je vous conseille c’est d’appliquer une Classification ascendante hiérarchique pour le premier clustering et ensuite d’utiliser un K-means avec les centres de classes trouvées. La commande knn de R peut le faire très facilement.

La commande HCPC fait tout ça en une seule fois (package factomineR). Cependant ces méthodes de clustering ne marchent pas tjr bien et il faudrait peut être penser à utiliser les modèles de mélanges gaussiens avec un critère BIC avec le package Mclust
AdrienC
AdrienC

Nombre de messages : 93
Date d'inscription : 15/03/2018

Revenir en haut Aller en bas

Classification  Empty Re: Classification

Message par FMarwen Mar 11 Sep 2018 - 7:42

Bonjour Adrien, supposant que j'ai appliqué la commande HCPC sur ma base de données, donc je vais avoir un nombre de classe n finis. Ce que je voulais faire par la suite c'est de réappliquer la commande HCPC mais cette fois ci sur les données de classe i ( ça veut dire les données des individus qui sont dans classe i). J'espère que c'est plus claire ( ce n'ai pas le problème d'initialisation des centres de classes).

FMarwen

Nombre de messages : 226
Date d'inscription : 17/04/2013

Revenir en haut Aller en bas

Classification  Empty Re: Classification

Message par AdrienC Mar 11 Sep 2018 - 9:20

Quand vous dites de "classe i" c'est votre ième classe ? Je suis désolé d'insister mais ce n'est pas clair du tout.


C'est à dire que vous obtenez K classes. Ensuite vous avez une classe qui s'appelle "i". Et vous aimeriez appliquer une classification sur uniquement les individus dans la classe "i" ?

Si c'est ça c'est très simple, il suffit de selectionner dans votre data ceux de la classe "i"

data[ data[,"classe"] == "i" , ]

AdrienC
AdrienC

Nombre de messages : 93
Date d'inscription : 15/03/2018

Revenir en haut Aller en bas

Classification  Empty Re: Classification

Message par FMarwen Mar 11 Sep 2018 - 10:40

C'est moi qui je suis désolé pour la mauvaise explication, oui c'est exactement ça
C'est à dire que vous obtenez K classes. Ensuite vous avez une classe qui s'appelle "i". Et vous aimeriez appliquer une classification sur uniquement les individus dans la classe "i" a écrit:
.

En faite je vois l'idée de la solution, mais comment on peut ajouter une colonne classe à notre base de données d'origine ?


FMarwen

Nombre de messages : 226
Date d'inscription : 17/04/2013

Revenir en haut Aller en bas

Classification  Empty Re: Classification

Message par AdrienC Mar 11 Sep 2018 - 11:04

Alors ce n'est pas dur du tout. Tout dépend de l'algorithme que vous avez utilisé pour faire la première classification. Imaginons que ce soit un modèle de mélange gaussien (ce que je vous conseille vraiment car c'est souvent le meilleur algorithme non supervisé dans les cas simples).
Cette technique va vous trouver automatiquement (selon un critère de selection de modèle BIC) le nombre de classes optimales. Les données sont distribuées selon une loi normale multivariée dans chacune des classes. Evidemment ces lois normales sont différentes les unes des autres.



# Supposons que votre data s'appelle data (il vous faudra changer le nom)

installed.packages("mclust")
library("mclust")

p <- length(data[1,])                    # p est le nombre de variables dans la base de données

Fit.GMM <- Mclust( data , G =1:9) # Il va choisir le nombre de classe optimale pour votre jeu de
                                                  #données.

Classe <- Fit.GMM$classification    # je récupère la classe de chaque données

data <- cbind( data , Classe )       # J'ajoute la colonne Classe à ma base de données : "data"

idx_Classe5 <- data[,"Classe"]=="5"   # Je sélectionne les individus de la 5ème classe (c'est un
                                                      #exemple vous choisissez la classe qui vous arrange.

data_Classe5 <- data[idx_Classe5   ,  1:p]   # Je crée un tableau "data_Classe5" qui ne conserve
                                                               #que les individus de la classe 5.

################## 2ème classification

#J'applique un HCPC sur data_Classe5

fit.hcpc <- HCPC(data_Classe5, method="ward" , nb.clust = -1) # on met -1 à nb.clust car ça vous
                                                                                             #choisira automatiquement le nb
                                                                                             #de classes idéales (vous pouvez
                                                                                             #choisir =2 si vous voulez que 2
                                                                                             #classes)
On récupère la classification avec :

fit.hcpc$data.clust



Selon la méthode que vous utilisez knn, cah, kohonen, hcpc, Mclust ... Cela ne sera pas la même commande pour récupérer le vecteur des classes, il faut donc toujours bien regarder l'aide de la fonction en faisant par exemple pour Mclust :

?Mclust
AdrienC
AdrienC

Nombre de messages : 93
Date d'inscription : 15/03/2018

Revenir en haut Aller en bas

Classification  Empty Re: Classification

Message par FMarwen Mar 11 Sep 2018 - 11:58

Merci beaucoup Adrien cheers votre exemple est très claire et pratique. Merci infiniment.

FMarwen

Nombre de messages : 226
Date d'inscription : 17/04/2013

Revenir en haut Aller en bas

Classification  Empty Re: Classification

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