Begin'R
Les statistiques avec R
Navigation
[Retour au sommaire]
# Mise en place de classification par la méthode des centres mobiles :Objectifs {#Kmeans6} * Mettre en place une classification par la méthode des centres mobiles * Extraire les valeurs des inerties intra-classe et inter-classes * Ajouter les classes au jeu de données :Remarque : Besoin de quelques rappels pour l'importation et la préparation du jeu de données? {#rq_ACP_presentation_jeu_donnees, toggle=collapse, title-display=show} Le jeu de données utilisé dans les exemples est celui sur les données `Tomates`. Les liens ci-dessous permettent de télécharger les fichiers de données, de voir une description associée et d'obtenir les lignes de code pour importer le jeu de données sur R. | Jeu de données | Excel | CSV | Présentation | Commande R | Explication | |----------------|--------|-------------|----------------|------------|-------------| | Données Tomates | [](donnees/DonneesTomates.xlsx) | [](donnees/DonneesTomates.csv) | [Tomates](#tomatesexp) | [Importer le jeu de données](#ligne_code_importation_tomates) | [Préparation du jeu de données Tomates](#explication_preparation_importation_tomates) | :Exemple{#tomatesexp, toggle=popup, title-display=hidden} Un jeu de données considéré ici est issu d'une étude expérimentale menée sur la tomate à l'UMR 1332 Biologie du fruit et Pathologie (Centre INRA Bordeaux-Nouvelle Aquitaine). L'objectif est de repérer les facteurs qui influencent le calibre des fruits de tomate. Les données se présentent sous la forme d'un tableau Individus (en lignes) x Variables (en colonnes). Chaque individu statistique correspond à un individu-fruit dont les caractéristiques sont présentées en ligne. Les individus sont décrits par 7 variables, dont 2 qualitatives (nominales ou ordinales) et 5 quantitatives (numériques) présentées en colonnes. * La variable `Genotype` (qualitative nominale): Génotype de plante de tomate sur laquelle le fruit a été récolté. Il s'agit soit de plantes de type sauvage (C), soit de lignées transgéniques (L) ; * La variable `Stade` (qualitative ordinale): Stades de développement du fruit. Les stades 1 à 3 sont des stades de croissance (fruits verts) et les stades 4 et 5 des stades de maturité (fruits rouges); * La variable `Aire_Pericarpe` (quantitative): Aire du péricarpe, la partie charnue du fruit de tomate sans le gel (en mm²) ; * La variable `PerimetreExt_Fruit` (quantitative): Périmètre externe des fruits de tomate (en mm) ; * La variable `DiametreExt_Fruit` (quantitative): Diamètre des fruits de tomate (en mm) ; * La variable `Epaisseur_Pericarpe` (quantitative): Epaisseur du péricarpe, c'est à dire la partie charnue du fruit de tomate, sans le gel (en mm) ; * La variable `Nombre_Loge` (quantitative): Nombre de carpelles formant des loges dans le fruit de tomate, dénombrés sur une coupe transversale du fruit. :Exemple {#ligne_code_importation_vins, toggle=popup} ```r Donnees <- read.csv2("DonneesVins.csv", header = TRUE, stringsAsFactors = TRUE) X <- Donnees[, 4:11] ``` :Exemple {#ligne_code_importation_tomates, toggle=popup} ```r Donnees <- read.csv2("DonneesTomates.csv", header = TRUE, stringsAsFactors = TRUE) X <- Donnees[, 4:8] ``` :Exemple {#explication_preparation_importation_tomates, toggle=popup} Dans un premier temps, [importer le jeu de données tomates sur R Studio](caps_2_3_importation_csv.html). ```r Donnees <- read.csv2("DonneesTomates.csv", header = TRUE, stringsAsFactors = TRUE) ``` Les 6 premiers individus sont affichés ci-dessous : ``` ## Nom Genotype Stade Aire_Pericarpe PerimetreExt_Fruit DiametreExt_Fruit ## 1 C1st1_1 C1 st1 105.43 62.08 19.68 ## 2 C1st1_2 C1 st1 38.60 41.31 13.11 ## 3 C1st1_3 C1 st1 34.47 41.01 13.00 ## 4 C1st2_1 C1 st2 578.09 134.43 42.66 ## 5 C1st2_2 C1 st2 509.71 126.82 40.11 ## 6 C1st2_3 C1 st2 622.92 137.36 43.41 ## Epaisseur_Pericarpe Nombre_Loge ## 1 1.74 2 ## 2 1.00 2 ## 3 0.82 3 ## 4 4.55 3 ## 5 4.33 2 ## 6 4.95 2 ``` Pour appliquer une méthode d'analyse de données multivariées (analyse en composantes principales, classification ascendante hiérarchique, classification par la méthode des centres mobiles), il faut extraire du jeu de données uniquement les variables quantitatives. Pour ce jeu de données, comme elles se trouvent sur les colonnes 4 à 8, il faut utiliser l'instruction suivante pour [extraire les colonnes du jeu de données](caps_2_9_extraire_sous_ensemble.html): ```r X <- Donnees[, 4:8] ``` La variable `X` contient ainsi uniquement les variables quantitatives. Les 6 premiers individus sont affichés ci-dessous ``` ## Aire_Pericarpe PerimetreExt_Fruit DiametreExt_Fruit Epaisseur_Pericarpe ## 1 105.43 62.08 19.68 1.74 ## 2 38.60 41.31 13.11 1.00 ## 3 34.47 41.01 13.00 0.82 ## 4 578.09 134.43 42.66 4.55 ## 5 509.71 126.82 40.11 4.33 ## 6 622.92 137.36 43.41 4.95 ## Nombre_Loge ## 1 2 ## 2 2 ## 3 3 ## 4 3 ## 5 2 ## 6 2 ``` Le tableau ci-dessous présente les fonctions R pour mettre en place une classification par la méthode des centres mobiles (k-means). | Rôle | Commande R | Arguments | Exemple | |-------------------------------------------------------|--------------------|-------------------------|------------------------| | Mettre en place la classification par la méthode des centres mobiles | `kmeans()` | `centers`, `iter.max` et `nstart` | [ici](#exemple_kmeans) | | Ajouter les classes au jeu de données pour faire une ACP | `model$cluster` | | [ici](#exemple_ajout_classes_kmeans) | :Exemple {#exemple_kmeans, toggle=popup} La fonction `kmeans()` permet de mettre en place la classification par la méthode des centres mobiles. Le premier argument correspond au jeu de données. Pour utiliser la [métrique des inverses des variances](caps_13_2_acp_metrique.html), il faut au préalable centrer et réduire le jeu de données en utilisant la fonction `scale()`. L'argument `centers` correspond au nombre de groupes (classes) souhaités. L'argument `iter.max` indique le nombre maximum d'itérations de la méthode des centres mobiles. Comme la méthode des centres mobiles converge vers un minimum local de l'inertie intra-classe, cette méthode est généralement exécutée plusieurs fois avec plusieurs initialisations différentes. A la fin, la partition retenue est celle minimisant l'inertie intra-classe. L'argument `nstart` permet de spécifier le nombre de fois que la méthode des k-means sera exécutée. L'instruction ci-dessous permet de mettre en place la méthode des centres mobiles en utilisant la métrique des inverses des variances. La partition obtenue sera composée de 2 classes. ```r Z <- scale(X) model <- kmeans(Z, centers = 2, iter.max = 10, nstart = 10) ``` :Exemple {#exemple_ajout_classes_kmeans, toggle=popup} L'instruction `model$cluster` permet d'extraire une variable indiquant le numéro de classe affectée à chaque individu. Pour utiliser cette variable par la suite, il faut la [convertir en variable qualitative nominale](caps_2_7_corriger_type_variables.html) en utilisant la fonction `as.factor()`. ```r classe <- model$cluster Donnees$classe <- as.factor(classe) ``` Une analyse en composantes principales (ACP) peut ensuite être mise en place afin de [visualiser les classes sur le graphique des individus](caps_13_6_acp_graphique_individus.html). Pour cela, on peut colorer les individus selon les modalités de la variable qualitative `classe`. A partir du résultat de la fonction `kmeans()`, que l'on nommera `model`, il est possible d'extraire un certain nombre d'informations comme le présente le tableau ci-dessous. | Rôle | Commande R | |----------------|--------------------| | Inertie de chaque groupe | `model$withinss` | | Inertie intra-classe | `model$tot.withinss` | | Inertie inter-classes | `model$betweenss` | | Inertie totale | `model$totss` | | Nombre d'observations dans chaque groupe | `model$size` | | Coordonnées des centres de gravités | `model$centers` | :Suite Classification non supervisée :{#classif, toggle=collapse} Classification ascendante hiérarchique : [Choix de la métrique](caps_13_2_acp_metrique.html) [Mise en place de la CAH](caps_14_3_cah_dendrogramme.html) [Visualisation des classes sur le graphique des individus de l'ACP](caps_13_6_acp_graphique_individus.html) [Exercice bilan](caps_14_4_cah_exercice_bilan.html) Méthode K-means [Choix de la métrique](caps_13_2_acp_metrique.html) [Mise en place de la méthode des K-means](caps_14_6_kmeans_mise_en_oeuvre.html) [Visualisation des classes sur le graphique des individus de l'ACP](caps_13_6_acp_graphique_individus.html) [Exercice bilan](caps_14_7_kmeans_exercice_bilan.html)