CNAM - 16 mars 2016

Informations

Plan

  1. Problème de classification
    • Partition
    • Hiérarchie
  2. Modèles de mélange
    • Algorithmes EM et CEM
  3. Nombre de classes
    • Critères de choix
  4. Applications
    • avec code R

Librairies R utilisées

library(mclust)
library(knitr)
library(Rmixmod)
library(ggplot2)
library(reshape2)
library(NbClust)
library(gridExtra)

Classification

  • Réduction d'un nuage de points d’un espace quelconque en un ensemble de représentants moins nombreux
  • Représentation simplifiée des données initiales : Méthode de réduction des données
  • Applications nombreuses
  • Deux grandes familles de classification :
    • par partitionnement
    • par hiérarchie

Notation : Soit \(x\) une matrice de données \(n \times d\) définie par \(x = {x^j_i ; i \in I; j \in J}\), où \(I\) est un ensemble de \(n\) objets (lignes, observations, instances, individus) et \(J\) est un ensemble de \(d\) variables (colonnes, attributs).

Partition

Définition : Une partition de \(I\) en \(s\) classes (\(s\) est supposé connu) est un ensemble de parties non vides \(z_1,\dots,z_s\) vérifiant :

  • \(\forall k, k' = 1,\ldots,s , k \neq k', z_k \cap z_{k'} = \emptyset\),
  • \(\cup^s_{k = 1} z_k = I\)

  • Nombre de partitions possibles très important
    • 1701 partitions possibles de 8 objets répartis en 4 classes
  • Meilleure partition : problème très complexe
  • Partition optimale localement

On se place ici dans le cadre de partitions dites non-recouvrantes : un individu appartient à une et une seule classe

Partitionnement

  • Classification directe
  • Algorithme
    1. Initialisation : \(s\) points tirés au hasard pour les centres de gravité de chaque classe,
    2. Affectation : On affecte les points à la classe la plus proche,
    3. Représentation : On recalcule les nouveaux centres de gravité,
    4. On répète les étapes d’affectation et de représentation jusqu’à la convergence de l’algorithme (i. e. plus de changement de le partition).
  • Résultats dépendant de l'initialisation
  • Nombre de classes devant être connu
  • Complexité linéaire

\(k\)-means

  • Critère à minimiser : \[ W(z,g) = \sum_{k=1}^s \sum_{i \in z_k} d^2(x_i,g_k) \]
  • Somme des inerties intra-classes
  • Basé sur la distance euclidienne
  • Très rapide dans la convergence et dans le calcul
    • Convergence assez rapide (moins de 20 itérations généralement)
  • Connu et très utilisé
  • Variables devant avoir la même échelle
    • Standardisation éventuellement nécessaire

Inconvénients

  • Données continues : \(k\)-means
    • Classes sphériques, et de même taille
    • Classes petites vidées
  • Données binaires :
    • Adaptation du critère de \(k\)-means
    • Contrainte sur les centres des classes (pas de moyenne, mais valeur \(0\) ou \(1\) la plus présente)
  • Données catégorielles : \(k\)-modes
    • \(k\)-means avec la métrique du \(\chi^2\)
    • Problèmes similaires à \(k\)-means

Fuzzy \(c\)-means

  • Critère à minimiser : \[ J_m(\mu,g) = \sum_{k=1}^s \sum_{i=1}^n (\mu_{ik})^m d^2(x_i,g_k) \]
  • \(\mu = [\mu_{ik}]\) : degré d'appartenance de \(i\) à la classe \(k\) (entre 0 et 1)
  • Un individu peut donc appartenir à plusieurs classes, avec un degré spécifique
    • \(\sum_k \mu_{ik} = 1\)
  • Problèmes similaires à \(k\)-means pour les formes des classes et les proportions

Hiérarchie

Définition : Un ensemble \(H\) de parties non vides de \(I\) est une hiérarchie sur \(I\) si

  • \(I \in H\)
  • \(\forall i \in I, {i} \in H\)
  • \(\forall h, h' \in H\), on a un des trois cas :
    • \(h \cap h' = \emptyset\)
    • \(h \subset h'\)
    • \(h' \subset h\)
  • Ensemble de partitions emboîtées

On se place ici dans le cadre de la Classification ascendante hiérarchique (CAH) considérée ici

Classification hiérarchique

  • Algorithme
    1. Chaque objet est dans sa propre classe
    2. Calcul des distances entre les classes
    3. Regroupement des deux classes les plus proches
      • Mise à jour des nouvelles distances
    4. Répétition de l'étape 3 jusqu'à n'avoir plus qu'une seule classe
  • Pas de nécessité de connaître le nombre de classes
  • Algorithme déterministe
  • Complexité quadratique

CAH

  • Critères d'aggrégation à définir : simple, complet, médian, moyen, centroïde
  • Le plus utilisé : Critère de Ward \[ \delta_{Ward} (z_h, z_{h'}) = \frac{\#z_h \times \#z_{h'}}{\#z_h + \#z_{h'}} d^2(z_h, z_{h'}) \]
  • Basé sur la distance euclidienne (ou autre distance si besoin)
  • Temps de calcul pouvant être long si \(n\) grand
  • Nouvelles distances calculées à partir des anciennes dans certains cas (dont Ward)

Modèles de mélange

  • Distribution de probabilité : mélange de \(s\) distributions associées aux classes
  • Cas d’une variable continue, avec deux classes présentes

Densité de probabilité

  • Tableau de données \(x\) considéré comme échantillon \((x_1, \ldots,x_n)\) i.i.d. de taille \(n\) d’une variable aléatoire avec la densité \(\varphi(x,\theta)\) définie par : \[ \varphi(x_i;\theta) = \sum_{k=1}^s p_k \varphi_k (x_i;\alpha_k) \]
  • \(\varphi_k(x_i, \alpha_k)\) : densité de probabilité de la classe \(k\)
  • \(p_k\) : probabilité qu’un élément de l’échantillon suive la loi \(\varphi_k\) (proportions du mélange)
    • \(\forall k=1,\ldots,n, p_k \in ]0,1[\)
    • \(\sum_{k=1}^s p_k = 1\)
  • \(\theta = (p_1, \ldots ,p_s; \alpha_1, \ldots ,\alpha_s)\) : paramètre du modèle de mélange

Vraissemblance

  • Problème statistique : estimer les proportions des composants ( les \((p_k)\)) et les paramètres (les \((\alpha_k)\))
  • Utilisation de la log-vraisemblance : \[ L(x_1,\ldots,x_n;\theta) = \sum_{i=1}^n \log \left( \sum_{k=1}^s p_k \varphi_k (x_i;\alpha_k) \right) \]
  • Pour la classification, chaque \(x_i\) appartiendra à une classe \(k\), tel que \(z_{ik} = 1\) (et 0 sinon)
  • Log-vraissemblance complétée (ou classifiante) : \[ L_c(x_1,\ldots,x_n; z, \theta) = \sum_{i=1}^n \sum_{k=1}^s z_{ik} \log\left( p_k \varphi_k (x_i;\alpha_k) \right) \]

Trois approches

  • Approche Estimation
    • Estimation des paramètres du mélange
    • Déduction de la partition, avec la méthode du maximum a posteriori MAP
    • Maximisation de la log-vraisemblance \(L(x; \theta)\)
    • Utilisation de l'lagorithme EM
  • Approche Classification
    • Estimation conjointe des paramètres et de la partition
    • Maximisation de la log-vraisemblance classifiante \(L_C(x; z, \theta)\)
    • Utilisation de l'algorithme CEM
  • Approche Hiérarchique
    • Utilisation de la log-vraisemblance classifiante \(L_C(x; z, \theta)\)

Algorithme EM

  • EM : Estimation-Maximisation
  • Algorithme :
    1. Déterminer une situation initiale
    2. Estimation des probabilités a posteriori \[ t_{ik} = \frac{p_k \varphi_k (x_i;\alpha_k)}{\sum_{\ell=1}^s p_\ell \varphi_\ell (x_i;\alpha_\ell)} \]
    3. Maximisation : calcul des paramètres du mélange \[ \begin{aligned} p_k &= \frac{\sum_{i=1}^n t_{ik}}{n} \\ \alpha_k &= \mbox{dépendant du modèle} \end{aligned} \]
    4. Itérer les étapes 2 et 3, jusqu'à la convergence (évolution très faible de \(L\))

Algorithme CEM

  • CEM : Classification EM
  • Ajout d'une étape de classification dans EM
    1. Déterminer une situation initiale
    2. Estimation des probabilités a posteriori \(t_{ik}\) (identique)
    3. Classification des individus avec la méthode du MAP \[ z_k = \{ i | t_{ik} = max_{\ell=1,\ldots,s} t_{i\ell} \} \]
    4. Maximisation : calcul des paramètres du mélange \[ \begin{aligned} p_k &= \frac{Card(z_k)}{n} \\ \alpha_k &= \mbox{dépendant du modèle} \end{aligned} \]
    5. Itérer les étapes 2 à 4, jusqu'à la convergence (évolution très faible de \(L_c\))

Compléments sur EM et CEM

  • Résultats dépendant fortement de l'initialisation
    • Lancement avec des initialisations différentes
    • Récupération de la meilleure solution, selon \(L\) (ou \(L_c\))
    • Initialisation de EM avec la meilleure solution de CEM (ou autre)
    • SEM : Version stochastique (étape de classification : affectation stochastique)
  • Cas gaussien
    • Fuzzy \(c\)-means : EM avc contraintes sur le modèle
    • \(k\)-means : CEM avec contraintes sur le modèle
  • Cas qualitatif :
    • \(k\)-modes : CEM avec contraintes sur le modèle

Approche hiérarchique

  • Utilisation de la log-vraisemblance classifiante \[ L_C(x; z, \theta) = \sum_{k=1}^s L_(z_k, \theta_k) \]
  • Distance entre deux classes définie par \[ d(z_k, z_{k'}) = L_C(z_k, \theta_k) + L_C(Z_{k'}, \theta_{k'}) - L_C(z_{k \cup k'}, \theta_{k \cup k'}) \]
    • Evolution de la log-vraissemblance lors de la fusion des deux classes
  • Cas gaussien :
    • CAH avec Ward : CAH avec modèles de mélange + contraintes sur le modèle

Données quantitatives

  • En présence de données continues, utilisation du modèle gaussien
  • Densité de probabilité de la classe \(k\) : \[ \varphi(x_i;g_k,\Sigma_k) = (2\pi)^{-d/2} |\Sigma_k|^{-1/2} \exp \left( -\frac{1}{2} (x_i - g_k)' \Sigma_k^{-1} (x_i - g_k) \right) \]
  • \(g_k\) : moyenne des variables pour la classe \(k\)
  • \(\Sigma_k\) : matrice de variance-covariance de la classe \(k\)

Décomposition de la matrice de variance

Expression de la matrice de variance en fonction de sa décomposition en valeurs propres \[ \Sigma_k = \lambda_k D_k A_k' D_k' \]

  • \(\lambda_k = |\Sigma_k|^{1/d}\), détermine le volume de la classe
  • \(D_k\) : matrice des vecteurs propres, détermine l'orientation de la classe
  • \(A_k\) : matrice diagonale (tel \(|A_k|=1\)), avec les valeurs propres de \(\Sigma_k\), détermine la forme de la classe

En imposant des contraintes sur ces valeurs, utilisation de modèles plus ou moins parcimonieux

14 modèles gaussiens retreints

  • Famille générale
    • Volumes différents (\(\lambda_k\)) ou identiques (\(\lambda\))
    • Formes différentes (\(A_k\)) ou identiques (\(A\))
    • Orientations différentes (\(D_k\)) ou identiques (\(D\))
  • Famille diagonale
    • Matrices \(\Sigma_k\) diagonales
    • \(D_k\) : matrices de permutation
  • Famille sphérique
    • \(A_k\) : matrice identité (\(I_k\))
    • Formes sphériques

Proportions \(p_k\) pouvant être contraintes à être identiques (donc 28 modèles en tout)

14 modèles gaussiens retreints

14 modèles de décomposition

Données qualitatives

  • Utilisation du modèle des classes latentes
  • Densité de probabilité de la classe \(k\) \[ \varphi(x_i;\alpha_k) = \prod_{j=1}^d \prod_{e=1}^{c_j} \left( a_k^{je} \right)^{x_i^{je}} \]
  • Variable \(j\) à \(c_j\) modalités
  • \(x_i^{je} = 1\) si l'individu \(i\) a la modalité \(e\) pour la variable \(j\)
  • \(a_k^{je}\) : probabilité de la modalité \(e\) de la variable \(j\) pour la classe \(z_k\)

Restriction sur les paramètres

  • De manière identique au cas gaussien, possibilité de créer des modèles restreints
  • Modèle générale : une probabilité pour chaque modalité de chaque variable dans chaque classe
  • Restriction première :
    • \(m_k^j\) : modalité majoritaire pour la variable \(j\) dans la classe \(k\)
    • \(\varepsilon_k^j\) : probabilité d'erreur
    • \(\delta(x,y) = 0\) si \(x=y\), et \(1\) sinon \[ \varphi(x_i;\alpha_k) = \prod_{j=1}^d (1 - \varepsilon_k^j)^{1 - \delta(x_i^j,m_k^j)} \left( \frac{\varepsilon_k^j}{c_j - 1} \right)^{\delta(x_i^j,m_k^j)} \]

10 modèles des classes latentes restreints

  • \(\alpha_k^{je}\) : une probabilité pour chaque modalité
  • \(\varepsilon_k^j\) : erreur spécifique à une classe et une variable
  • \(\varepsilon_k\) : erreur spécifique à une classe (et identique pour toutes les variables)
  • \(\varepsilon^j\) : erreur spécifique à une variable (et identique pour toutes les classes)
  • \(\varepsilon\) : erreur identique pour toutes les variables dans toutes les classes
  • \(p_k\) : proportions des classes différentes
  • \(p\) : proportions des classes identiques

10 modèles des classes latentes restreints

Modèles restreints

Nombre de classes

Dans toutes ces méthodes, le nombre de classes doit être connu.

  • Choix fait par un expert métier
  • Méthodes de recherche du nombre de classes
    • Utilisation de la vraisemblance seule impossible
    • Classification hiérarchique (inutilisable si trop d'objets)
    • Critères de choix de modèles
      • (ici) basé sur une pénalisation de la vraisemblance \[ C(s) = -2 \left( L_{max}(s) + \gamma_C \times \nu(s) \right) \]
      • \(L_{max}(s)\) : vraisemblance maximum pour \(s\) classes
      • \(\gamma_C\) : coefficient de pénalisation, spécifique à chaque critère \(C\)
      • \(\nu(s)\) : nombre de paramètres libres du modèle considéré

\(AIC\) et dérivés

  • \(AIC\) : critère d'information d'Akaike (\(\gamma_{AIC} = 1\)) \[ AIC(s) = -2L(s) + 2 \nu(s) \]
  • \(AIC3\) : version modifiée (\(\gamma_{AIC3} = \frac{3}{2}\)) \[ AIC3(s) = -2L(s) + 3 \nu(s) \]
  • \(AWE\) : approximation de la solution exacte (\(\gamma_{AWE} = \frac{1}{2}\left( \frac{3}{2} + \log n\right)\)) \[ AWE(s) = -2L(s) + \nu(s) \left( \frac{3}{2} + \log n\right) \]
  • Critères finalement peu utilisés, mais pouvant donner de bons résultats (notemment \(AIC3\))

Critères bayésiens

  • \(BIC\) : estimation de la vraisemblance intégrée (et similaire aux précédents avec \(\gamma_{BIC}=\frac{\log n}{2}\)) \[ BIC(s) = L(s) - \frac{\nu(s)}{2} \log n \]
  • \(ICL\) : basée sur la vraissemblance intégrée complétée \[ ICL(s) = L_C(s) - n\sum_{k=1}^s p_k \log p_k - \frac{\nu(s)}{2} \log n + S(np_1, \ldots, np_s) \]
  • \(ICL\) et principalement \(BIC\) sont les plus utilisés (comparaison de ces deux critères dans la suite)

Exemple d'applications

  • Old Faithful Geyser
    • avec mclust
    • Données quantitatives
    • EM, avec BIC et ICL
  • Iris
    • avec Rmixmod
    • Données quantitatives, avec une variable qualitative
    • EM (initialisé par EM rapide), avec BIC et ICL
    • Comparaison EM et CEM, avec \(s=3\)
  • Birds
    • avec Rmixmod
    • Données qualitatives
    • 2 classes présentes (mais non connues)
    • EM (initialisé par EM rapide), avec BIC

Old Faithful Geyser - Données

  • Utilisation de la librairie mclust
plot(faithful)

Old Faithful Geyser - Application

faithful.mclust = Mclust(faithful)
summary(faithful.mclust)
## ----------------------------------------------------
## Gaussian finite mixture model fitted by EM algorithm 
## ----------------------------------------------------
## 
## Mclust VEV (ellipsoidal, equal shape) model with 4 components:
## 
##  log.likelihood   n df       BIC       ICL
##       -1047.959 272 33 -2280.909 -2302.185
## 
## Clustering table:
##  1  2  3  4 
## 86 63 34 89

Old Faithful Geyser - BIC

summary(faithful.mclust$BIC)
## Best BIC values:
##              VEV,4       VEV,3     VEV,2
## BIC      -2280.909 -2352.17517 -2442.719
## BIC diff     0.000   -71.26606  -161.810

Old Faithful Geyser - BIC

plot(faithful.mclust, what = "BIC")

Old Faithful Geyser - BIC

EII VII EEI VEI EVI VVI EEE EVE VEE VVE EEV VEV EVV VVV
s=1 -5706 -5706 -3674 -3674 -3674 -3674 -3141 -3141 -3141 -3141 -3141 -3141 -3141 -3141
s=2 -4679 -4684 -2948 -2865 NA NA -2744 -2616 -2718 NA -2637 -2443 NA NA
s=3 -4485 -4415 NA NA NA NA NA NA NA NA -2553 -2352 NA NA
s=4 -4199 -4208 NA NA NA NA NA NA NA NA NA -2281 NA NA
s=5 -4039 -4010 NA NA NA NA NA NA NA NA NA NA NA NA
s=6 -3903 -3869 NA NA NA NA NA NA NA NA NA NA NA NA
s=7 -3742 -3723 NA NA NA NA NA NA NA NA NA NA NA NA
s=8 -3641 -3623 NA NA NA NA NA NA NA NA NA NA NA NA
s=9 -3591 -3600 NA NA NA NA NA NA NA NA NA NA NA NA

Old Faithful Geyser - BIC

Old Faithful Geyser - Classification

plot(faithful.mclust, what = "classification")

Old Faithful Geyser - Incertitude

plot(faithful.mclust, what = "uncertainty")

Old Faithful Geyser - et ICL ?

faithful.mclustICL = mclustICL(faithful)
summary(faithful.mclustICL)
## Best ICL values:
##              VEV,4       VEV,3      VEV,2
## ICL      -2302.185 -2366.01042 -2442.7192
## ICL diff     0.000   -63.82568  -140.5344

Old Faithful Geyser - et ICL ?

plot(faithful.mclustICL)

Old Faithful Geyser - et ICL ?

Iris - Données

Iris - Application

iris.mixmod = mixmodCluster(iris[-5], nbCluster = 1:9,
                            model = mixmodGaussianModel())
summary(iris.mixmod)
## **************************************************************
## * Number of samples    =  150 
## * Problem dimension    =  4 
## **************************************************************
## *       Number of cluster =  2 
## *              Model Type =  Gaussian_pk_Lk_Dk_A_Dk 
## *               Criterion =  BIC(561.7285)
## *              Parameters =  list by cluster
## *                  Cluster  1 : 
##                          Proportion =  0.6667 
##                               Means =  6.2620 2.8720 4.9060 1.6760 
##                           Variances = |     0.4000     0.1087     0.3994     0.1437 |
##                                       |     0.1087     0.1093     0.1239     0.0728 |
##                                       |     0.3994     0.1239     0.6109     0.2574 |
##                                       |     0.1437     0.0728     0.2574     0.1681 |
## *                  Cluster  2 : 
##                          Proportion =  0.3333 
##                               Means =  5.0060 3.4280 1.4620 0.2460 
##                           Variances = |     0.1507     0.1308     0.0208     0.0131 |
##                                       |     0.1308     0.1760     0.0160     0.0122 |
##                                       |     0.0208     0.0160     0.0281     0.0060 |
##                                       |     0.0131     0.0122     0.0060     0.0104 |
## *          Log-likelihood =  -215.7260 
## **************************************************************

Iris - Evolution du critère

Iris - Evolution du critère

Iris - Densité par classe

histCluster(iris.mixmod["bestResult"], iris[-5])

Iris - Classification

plot(iris.mixmod)

Iris - Classification

plotCluster(iris.mixmod["bestResult"], iris[-5], variable1 = 1, variable2 = 2)

Iris - ICL

iris.mixmodICL = mixmodCluster(iris[-5], nbCluster = 1:9,
                               criterion = "ICL",
                               model = mixmodGaussianModel())
summary(iris.mixmodICL)
## **************************************************************
## * Number of samples    =  150 
## * Problem dimension    =  4 
## **************************************************************
## *       Number of cluster =  8 
## *              Model Type =  Gaussian_p_Lk_Ck 
## *               Criterion =  ICL(-1180.0578)
## *              Parameters =  list by cluster
## *                  Cluster  1 : 
##                          Proportion =  0.1250 
##                               Means =  4.9724 3.3793 1.4448 0.2000 
##                           Variances = |     0.1213     0.0767     0.0030    -0.0000 |
##                                       |     0.0767     0.0913    -0.0053     0.0000 |
##                                       |     0.0030    -0.0053     0.0287    -0.0000 |
##                                       |    -0.0000     0.0000    -0.0000     0.0000 |
## *                  Cluster  2 : 
##                          Proportion =  0.1250 
##                               Means =  5.0524 3.4952 1.4857 0.3095 
##                           Variances = |     0.1187     0.1202     0.0322     0.0190 |
##                                       |     0.1202     0.2014     0.0318     0.0143 |
##                                       |     0.0322     0.0318     0.0298     0.0116 |
##                                       |     0.0190     0.0143     0.0116     0.0190 |
## *                  Cluster  3 : 
##                          Proportion =  0.1250 
##                               Means =  5.9015 2.8924 4.8122 1.7653 
##                           Variances = |     0.1480     0.0332     0.0288     0.0054 |
##                                       |     0.0332     0.0687    -0.0243    -0.0241 |
##                                       |     0.0288    -0.0243     0.0536     0.0326 |
##                                       |     0.0054    -0.0241     0.0326     0.0273 |
## *                  Cluster  4 : 
##                          Proportion =  0.1250 
##                               Means =  5.9973 2.7639 4.0178 1.2359 
##                           Variances = |     0.4160     0.1668     0.3279     0.0966 |
##                                       |     0.1668     0.0770     0.1260     0.0440 |
##                                       |     0.3279     0.1260     0.2816     0.0772 |
##                                       |     0.0966     0.0440     0.0772     0.0280 |
## *                  Cluster  5 : 
##                          Proportion =  0.1250 
##                               Means =  6.5800 3.1468 5.4968 2.1740 
##                           Variances = |     0.0561    -0.0100    -0.0045     0.0057 |
##                                       |    -0.0100     0.0214     0.0096     0.0201 |
##                                       |    -0.0045     0.0096     0.0612     0.0146 |
##                                       |     0.0057     0.0201     0.0146     0.0514 |
## *                  Cluster  6 : 
##                          Proportion =  0.1250 
##                               Means =  6.5541 2.8241 5.3387 1.6535 
##                           Variances = |     0.5843     0.0166     0.6375     0.2514 |
##                                       |     0.0166     0.0262    -0.0202     0.0057 |
##                                       |     0.6375    -0.0202     0.7940     0.2748 |
##                                       |     0.2514     0.0057     0.2748     0.1242 |
## *                  Cluster  7 : 
##                          Proportion =  0.1250 
##                               Means =  5.8437 2.5994 4.1926 1.2845 
##                           Variances = |     0.2289     0.0423     0.1482     0.0403 |
##                                       |     0.0423     0.1050     0.0524     0.0262 |
##                                       |     0.1482     0.0524     0.1120     0.0424 |
##                                       |     0.0403     0.0262     0.0424     0.0310 |
## *                  Cluster  8 : 
##                          Proportion =  0.1250 
##                               Means =  6.7553 3.0330 5.6956 2.0142 
##                           Variances = |     0.3903     0.2621     0.3010     0.0221 |
##                                       |     0.2621     0.2230     0.2328     0.0817 |
##                                       |     0.3010     0.2328     0.2773     0.0699 |
##                                       |     0.0221     0.0817     0.0699     0.1066 |
## *          Log-likelihood =  887.3860 
## **************************************************************

Iris - Comparaison EM et CEM

iris.EM = mixmodCluster(iris[-5], 3, strategy = mixmodStrategy("EM", 20, "random"))
iris.CEM = mixmodCluster(iris[-5], 3, strategy = mixmodStrategy("CEM", 20, "random"))

Birds - Données

gender eyebrow collar sub-caudal border
1 male poor pronounced dotted white few
2 female none dotted black none
3 female pronounced none white none
4 male pronounced dotted white none
5 male pronounced dotted white none
6 male pronounced dotted white none
7 female pronounced dotted white none
8 female poor pronounced dotted white none
9 female poor pronounced dotted white none
10 female poor pronounced dotted white none
11 female poor pronounced dotted black none
12 male pronounced dotted white none
13 female poor pronounced dotted black none
14 male poor pronounced dotted black & white none
15 female poor pronounced dotted white none
16 female poor pronounced dotted black none
17 female poor pronounced dotted black none
18 male poor pronounced dotted black none
19 female poor pronounced dotted white none
20 female none dotted white none
21 male poor pronounced dotted black none
22 male pronounced dotted white none
23 male poor pronounced dotted black & white none
24 male poor pronounced dotted black none
25 male poor pronounced dotted black none
26 female poor pronounced none black none
27 female poor pronounced dotted black & white none
28 male poor pronounced dotted black & WHITE none
29 male none dotted black none
30 male none none white none
31 male poor pronounced dotted white none
32 male none none white none
33 female poor pronounced dotted white few
34 male none none white none
35 female pronounced none white none
36 female pronounced none white none
37 female pronounced none white none
38 male pronounced none white none
39 male pronounced none white none
40 female pronounced none white none
41 female pronounced none white none
42 male pronounced none white none
43 female pronounced none white none
44 female pronounced none white none
45 female pronounced none white none
46 female pronounced none white none
47 male pronounced none white none
48 male pronounced none white none
49 female pronounced none white none
50 female very pronounced none black & WHITE none
51 female pronounced none white none
52 male pronounced none white none
53 male pronounced none white many
54 female pronounced none white none
55 male pronounced none white none
56 female pronounced none white none
57 female very pronounced none white few
58 female very pronounced none white none
59 male pronounced none white none
60 female pronounced none white none
61 male pronounced none white none
62 male pronounced none white none
63 male pronounced none white none
64 male pronounced none white none
65 female pronounced none white none
66 female pronounced none white none
67 female pronounced none white none
68 male very pronounced none white none
69 male pronounced none white none

Birds - Application

birds.mixmod = mixmodCluster(birds, 2,
                             models = mixmodMultinomialModel())
summary(birds.mixmod)
## **************************************************************
## * Number of samples    =  69 
## * Problem dimension    =  5 
## **************************************************************
## *       Number of cluster =  2 
## *              Model Type =  Binary_p_Ej 
## *               Criterion =  BIC(485.2675)
## *              Parameters =  list by cluster
## *                  Cluster  1 : 
##                          Proportion =  0.5000 
##                              Center =  2.0000 3.0000 1.0000 1.0000 1.0000 
##                             Scatter = |     0.4681     0.4681 |
##                                       |     0.0851     0.0851     0.2554     0.0851 |
##                                       |     0.0301     0.0075     0.0075     0.0075     0.0075 |
##                                       |     0.2479     0.0620     0.0620     0.0620     0.0620 |
##                                       |     0.0751     0.0376     0.0376 |
## *                  Cluster  2 : 
##                          Proportion =  0.5000 
##                              Center =  1.0000 2.0000 2.0000 1.0000 1.0000 
##                             Scatter = |     0.4681     0.4681 |
##                                       |     0.0851     0.2554     0.0851     0.0851 |
##                                       |     0.0075     0.0301     0.0075     0.0075     0.0075 |
##                                       |     0.2479     0.0620     0.0620     0.0620     0.0620 |
##                                       |     0.0751     0.0376     0.0376 |
## *          Log-likelihood =  -232.0485 
## **************************************************************

Birds - Représentation via MCA

plot(birds.mixmod)
## round digits : 6NULL
## duplicated individuals : 46NULL

Birds - Répartition par classes

barplot(birds.mixmod)

Quelques liens