IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Algorithme de clusturing


Sujet :

R

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2017
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Algorithme de clusturing
    Bonsoir,

    Je suis nouveau dans R, j'ai une image auquelle je voudrais appliquer l'algorithme de clustering PCA. J'essie à l'appliquer sous R mais je trouve des difficultés. Quelqu'un peut m'aider.

    Merci, bonne soirée.

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur en études décisionnelles
    Inscrit en
    Février 2013
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur en études décisionnelles

    Informations forums :
    Inscription : Février 2013
    Messages : 134
    Points : 351
    Points
    351
    Par défaut
    Bonjour,

    Je sais pas trop si on peut parler d'algorithme de clustering mais bon.

    Regarde du côté du package Factoshiny, qui est lui-même basé sur FactoMineR.
    A voir l'article R Bloggers et la vidéo intégrée.

    Ca te permet de visualiser les résultats de l'ACP et de les manipuler facilement (ajout variables / observations supplémentaires en particulier).

    Si tu as des messages d'erreur plus précis, poste les ici.

    Bon courage.

    Emmanuel

  3. #3
    Membre éclairé
    Homme Profil pro
    Chercheur
    Inscrit en
    Décembre 2015
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2015
    Messages : 327
    Points : 793
    Points
    793
    Par défaut
    Bien entendu on peut appliquer l'ACP à une image comme à n'importe quelle matrice mais pour faire quoi ? Les applications de l'ACP (ou de dérivées de l'ACP) que je connais pour l'imagerie concernent des séries temporelles, c'est-à-dire que selon les cas, le temps est en colonne ou en ligne. Pour avoir de l'aide, il faudrait beaucoup plus de précisions sur le problème (les données, les hypothèses, le critère de regroupement...) et rien ne ditqu'une approche de type ACP + clustering sur les résultats de l'ACP réponde au problème.

  4. #4
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2017
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour votre réponse Emmanuel R
    voila mon code je ne sais pas comment appliquer cet algorithme sur mon image

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    library(FactoMineR)
    library(jpeg)
    # save it as "Image.jpg" in the directory
    img <- readJPEG("lena30.jpg") # Read the image
     
    # Obtain the dimension
    imgDm <- dim(img)
     
    # Assign RGB channels to data frame
    imgRGB <- data.frame(
      x = rep(1:imgDm[2], each = imgDm[1]),
      y = rep(imgDm[1]:1, imgDm[2]),
      R = as.vector(img[,,1]),
      G = as.vector(img[,,2]),
      B = as.vector(img[,,3])
      )
     
    library(ggplot2)
     
    # ggplot theme to be used
    plotTheme <- function() {
      theme(
        panel.background = element_rect(
          size = 3,
          colour = "black",
          fill = "white"),
        axis.ticks = element_line(
          size = 2),
        panel.grid.major = element_line(
          colour = "gray80",
          linetype = "dotted"),
        panel.grid.minor = element_line(
          colour = "gray90",
          linetype = "dashed"),
        axis.title.x = element_text(
          size = rel(1.2),
          face = "bold"),
        axis.title.y = element_text(
          size = rel(1.2),
          face = "bold"),
        plot.title = element_text(
          size = 20,
          face = "bold",
          vjust = 1.5)
      )
    }
     
    # Plot the image
    ggplot(data = imgRGB, aes(x = x, y = y)) + 
      geom_point(colour = rgb(imgRGB[c("R", "G", "B")])) +
      labs(title = "Original Image: Colorful Bird") +
      xlab("x") +
      ylab("y") +
      theme()
     
    # Apply PCA clustering on the image
    pc <- PCA(imgRGB[, c("R", "G", "B")])
    #kColours <- rgb(pc$centers[pc$cluster,])
    summary(pc)
    res.HCPC<-HCPC(pc)
    tu peut m'aider et merci

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2017
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour votre réponse faubry
    je voudrais segmenter l'image par l'algorithme PCA

  6. #6
    Membre éclairé
    Homme Profil pro
    Chercheur
    Inscrit en
    Décembre 2015
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2015
    Messages : 327
    Points : 793
    Points
    793
    Par défaut
    La question essentielle est quel est le problème et quelle est la justification de l'approche par ACP. Si c'est un clustering sur une base colorimétrique, un codage RGB n'est peut-être pas la meilleure solution.

  7. #7
    Membre averti
    Homme Profil pro
    Ingénieur en études décisionnelles
    Inscrit en
    Février 2013
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur en études décisionnelles

    Informations forums :
    Inscription : Février 2013
    Messages : 134
    Points : 351
    Points
    351
    Par défaut
    C'est un TP, non ? J'ai souvenir d'avoir déjà effectué une PCA sur la photo de Mlle Lena Soderberg (NSW) pendant mes études moi aussi...
    Je ne vois pas un autre intérêt que le pédagogique pour cette approche, mais quelque part je ne suis pas trop à l'aise avec les algos de traitement d'image.

    Bref. Je pense que ton cluster est fourni de cette ligne :
    Pas de chance : elle ne s'exécute pas chez moi ("cannot allocate vector of size 9.5 Gb", purement un souci de ma machine). Mais j'imagine que ça marche de ton côté.
    Une consultation de l'aide de la fonction HCPC m'indique que cette dernière retourne une liste, contenant notamment cela :

    data.clust
    The original data with a supplementary column called clust containing the partition.
    Ca doit être ce qui t'intéresse.

    Essaie de récupérer cette colonne avec cette instruction :


    A toi de voir ce que tu dois en faire derrière...


    ----

    Une autre idée serait de récupérer la liste des pixels les mieux représentés en cos² sur le plan factoriel, et de n'afficher que ces pixels sur l'image.
    J'avoue ne pas savoir ce que ça ferait, mais qui sait ? Ca peut être une bonne surprise.

  8. #8
    Membre éclairé
    Homme Profil pro
    Chercheur
    Inscrit en
    Décembre 2015
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2015
    Messages : 327
    Points : 793
    Points
    793
    Par défaut
    Bon, ce serait un TP mais il existe alors des problèmes beaucoup mieux adaptés que ce bidouillage pour s'initier au clustering en général, et au clustering suite à l'ACP en particulier.
    1) les données à analyser sont 3D, l'ACP ne trouvera au maximum que 3 axes ;
    2) si le clustering est fait sur les 3 axes de l'ACP par une méthode basée sur un calcul de distance euclidienne, alors prendre les 3 axes résultant de l'ACP ou prendre les données initiales conduira au même résultat ;
    3) une analyse sérieuse des résultats de l'ACP sur lena, mais encore faut-il savoir ce qu'est une ACP et comment manipuler ses résultats, montre qu'il ne faut conserver qu'un seul axe, ce qui signifie qu'il fut relancer l'ACP de FactoMineR en ne demandant qu'un seul axe puis faire HCPC ensuite.

Discussions similaires

  1. Algorithme de clusturing.
    Par arniisto dans le forum R
    Réponses: 1
    Dernier message: 14/03/2017, 22h41
  2. Algorithme de randomisation ... ( Hasard ...? )
    Par Anonymous dans le forum Assembleur
    Réponses: 8
    Dernier message: 06/09/2002, 14h25
  3. recherches des cours ou des explications sur les algorithmes
    Par Marcus2211 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/05/2002, 22h18
  4. Recherche de documentation complète en algorithmes
    Par Anonymous dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 29/03/2002, 12h09
  5. Algorithme génétique
    Par Stephane.P_(dis Postef) dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 15/03/2002, 17h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo