Les posteurs les plus actifs de la semaine
Aucun utilisateur |
Sujets les plus vus
Classification
2 participants
Page 1 sur 1
Classification
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
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
Re: Classification
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
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- Nombre de messages : 93
Date d'inscription : 15/03/2018
Re: Classification
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
Re: Classification
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" , ]
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- Nombre de messages : 93
Date d'inscription : 15/03/2018
Re: Classification
C'est moi qui je suis désolé pour la mauvaise explication, oui c'est exactement ça
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 ?
.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
Re: Classification
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
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- Nombre de messages : 93
Date d'inscription : 15/03/2018
Re: Classification
Merci beaucoup Adrien votre exemple est très claire et pratique. Merci infiniment.
FMarwen- Nombre de messages : 226
Date d'inscription : 17/04/2013
Sujets similaires
» Classification
» Classification sur R
» classification SVM
» Classification R
» ACM et classification
» Classification sur R
» classification SVM
» Classification R
» ACM et classification
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum