Données
Nous allons travailler sur les données Pen Digits de l’UCI Machine Learning Repository (cf Pen-Based Recognition of Handwritten Digits Data Set). Nous disposons de deux fichiers
Ces données sont composées de :
- Coordonnées \((X_i,Y_i)\) de huit points (\(i=1,\ldots,8\)) dans le tracé du chiffre écrit par le scripteur
 
- Chiffre normalement écrit par le scripteur (parmi \(0, 1, \ldots, 9\))
 
Il y a en tout 10992 tracés (un millier environ par chiffre).
 
Fonction spécifique
La fonction suivante permet de dessiner le chiffre dela première ligne d’une table passée en paramètre :
dessineChiffre <- function(v, titre = NULL) {
    if (is.data.frame(v))
        v = unlist(v)
    don = data.frame(
        x = v[seq(1,15,by=2)],
        y = v[seq(2,16,by=2)],
        position = 1:8
    )
    g = ggplot(don, aes(x, y)) + xlim(0, 100) + ylim(0, 100) +
        geom_path() +
        geom_text(aes(label = position)) + 
        theme_void() 
    if (!is.null(titre))
        g = g + ggtitle(titre)
    g
}
Cette fonction peut donc être utilisée à n’importe quel moment det vous pouvez voir le résultat de son exécution en testant (après avoir importer correctement les données) :
dessineChiffre(pen.tra[1,1:16], pen.tra[1,17])
 
Travail
- Importer les deux fichiers
 
- Assembler les deux tables en une seule, et renommer les variables comme suit :
V1, V3, V5, …, V15 : Xi (i de 1 à 8) 
V2, V4, V6, …, V16 : Yi (idem pour i) 
V17 : chiffre 
 
- Trouver combien il y a de tracés pour chaque chiffre de \(0\) à \(9\)
 
- Dessiner le premier exemple de chaque chiffre, en utilisant la fonction ci-dessus
 
- Calculer les moyennes pour chaque variable, pour chaque chiffre
 
- Représenter les tracés moyens pour chaque chiffre, à l’aide de la fonction
 
- Comparer les \(X\) et les \(Y\) pour chaque chiffre
- une manipulation des données est peut-être utile pour représenter de manière à pouvoir comparer les chiffres
 
 
- Faire une ACP sur les données et représenter le premier plan factoriel, en ajoutant l’information du chiffre pour chaque point, via une couleur par exemple
 
- Représenter, sur le plan factoriel, les points pour chaque chiffre séparemment, et repèrer les chiffres pour lesquels un découpage en partition est judicieuse
 
- Faire une classification sur les chiffres nécessitant un partitionnement
- Faire une CAH et choisir un nombre de classes
 
- Effectuer un \(k\)-means avec ce nombre de classes (pour affiner la partition)
 
- Représenter les points sur le premier plan factoriel pour chaque classe
 
- Représenter les tracés moyens de chaque classe