{"word_count": 228, "character_count": 2565}
Vendredi, on continuera en cours la classification (non supervisée) et en particulier les méthodes hiérarchiques, et les arbres. On va utiliser la base suivante, avec les résultats des élections présidentielles (premier tour) de 2012,elections2012 &#60;- read.csv("http://komodo.regardscitoyens.org/public/presidentielles2012/resultats/resultats_departements_final_T1.csv",sep=";",header=TRUE,dec=",")La base qu'on garde contient juste les voix exprimées, en pourcentagevoix &#60;- which(substr(names(elections2012),1,12)=="X..Voix.Exp.")X &#60;- as.matrix(elections2012[,voix])colnames(X) &#60;- substr(names(elections2012)[voix],13,nchar(names(elections2012)[voix]))rownames(X) &#60;- elections2012[,3]Parfois, il convient de normaliser les données. Ici, sur les département, ça n'est pas nécessaire. Par contre, sur les candidats, ça le serait (comme pour l'ACP en fait).  Pour visualiser les distances (entre départements), on peut utiliserheatmap(X)On peut faire une CAH, sur notre matrice de distance entre rangscah &#60;- hclust(dist(X))plot(cah,cex=.6)et si on souhaite garder 5 groupes (par exemple) on utiliserect.hclust(cah,k=5)groups.5 &#60;- cutree(cah,5)On peut aussi visualiser les classes avec la fonctionlibrary(dendroextras)plot(colour_clusters(cah,k=5))Pour comprendre qui se trouve dans nos groupes, on peut utiliseraggregate(X,list(groups.5),mean)qui va nous renvoyer les "votes  moyens" pour chaque candidat, dans chaque groupe. Maintenant, pour en finir avec la visualisation, on peut utiliser le code suivant (un peu long, certes) qui permettra de visualiser sur un carte les différents groupescarte_classe &#60;- function(groupes){library(stringr)elections2012$dep &#60;- elections2012$Libellé.du.départementelections2012$dep &#60;- tolower(elections2012$dep)elections2012$dep &#60;- str_replace_all(elections2012$dep, pattern = " |-|'|/", replacement = "")library(maps)france&#60;-map(database="france")france$dep &#60;- france$namesfrance$dep &#60;- tolower(france$dep)france$dep &#60;- str_replace_all(france$dep, pattern = " |-|'|/", replacement = "")corresp_noms &#60;- elections2012[, c("Libellé.du.département", "dep")]corresp_noms$dep[which(corresp_noms$dep %in% "corsesud")] &#60;- "corsedusud"col2001&#60;-groupes+1names(col2001) &#60;- corresp_noms$dep[match(names(col2001), corresp_noms$Libellé.du.département)]color &#60;- col2001[match(france$dep, names(col2001))]map(database="france", fill=TRUE, col=color)}carte_classe(groups.5)Avec ces fonctions, on devrait pouvoir tester différentes méthodes pour constituer des groupes.