Regrouper des libellés avec kmeans

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Abdel-aziz Traoré
Messages : 5
Enregistré le : 13 Mar 2017, 11:08

Regrouper des libellés avec kmeans

Messagepar Abdel-aziz Traoré » 19 Mar 2018, 10:58

Bonjour,

Je fais appel à votre aide car je sèche.

J'essaie de reduire la taille de ma base de données en regroupant les données semblables mais qui ne sont pas de vrais doublons.

J'ai par exemple :

CANCELLATION DATE
CANCELATION DATE
CANCELLATON DATE

que j'aimerais regrouper comme :

CANCELLATION DATE, par exemple

Impossible à faire en excel, j'essaie donc d'utiliser les kmeans et de regrouper en fonction de clusters sur R, j'ai l'impression de m'y prendre mal parce que mon code ne donne aucune erreur mais ne fonctionne pourtant pas.

Code : Tout sélectionner


headers = unique(modelTable$HEADERS)

modelTable[, CLUSTER:=integer(nrow(modelTable))]


for (h in headers){
#dt = modelTable
 
  dt = modelTable[h==modelTable$HEADERS]
  header = dt$HEADERS
  headersu = unique(header)
  d = stringdistmatrix(headersu, headersu, method="jw")
 
  distmat = as.dist(d, diag = T)
  if (length(headersu)<=2 ){
    dt[, CLUSTER:=(1:nrow(dt))]
  }else{
   
    k = kmeans(distmat, min(nrow(d)-1, length(headersu)))
    i = 1
    for (a in headersu){
      dt[a==header, CLUSTER:= k$cluster[i]]
      i = i+1
    }
   
  }
  modelTable[h==modelTable$HEADERS, CLUSTER:=dt$CLUSTER]
 
}

groupTable = unique(modelTable, by=c("HEADERS", "CLUSTER"))
groupTable[, NBCLUSTERS:=max(CLUSTER), by= "HEADERS"]



Auriez-vous des pistes ? ou des corrections ?

Merci par avance

Guillaume Devailly
Messages : 28
Enregistré le : 22 Déc 2017, 12:31

Re: Regrouper des libellés avec kmeans

Messagepar Guillaume Devailly » 19 Mar 2018, 12:43

Sans répondre directement à la question, j'aimerai vous suggérer de jeter un œil au package 'fuzzyjoin' qui semble faire cela (et notamment la fonction stringdist_inner_join).
https://cran.r-project.org/web/packages/fuzzyjoin/index.html

Abdel-aziz Traoré
Messages : 5
Enregistré le : 13 Mar 2017, 11:08

Re: Regrouper des libellés avec kmeans

Messagepar Abdel-aziz Traoré » 19 Mar 2018, 12:45

Guillaume Devailly a écrit :
Sans répondre directement à la question, j'aimerai vous suggérer de jeter un œil au package 'fuzzyjoin' qui semble faire cela (et notamment la fonction stringdist_inner_join)



Merci pour votre réponse.

J'y jette un oeil de ce pas.

Abdel-aziz Traoré
Messages : 5
Enregistré le : 13 Mar 2017, 11:08

Re: Regrouper des libellés avec kmeans

Messagepar Abdel-aziz Traoré » 19 Mar 2018, 15:27

Guillaume,

j'ai du mal à adapter cela à mon cas. J'ai près de 1000 lignes à traiter et en terme de levels (de lignes uniques), je devrais être à peu près à 950. je ne peux donc pas m'aider d'une autre table pour pouvoir regrouper mes lignes.

Je ne sais pas si je me fais comprendre


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité