Master IBM 2011-2012
TP 2: Apprentissage non Supervisé

Familiarisation avec les algorithmes vus en cours

Le bootstrap et la validation:

Méthode de Monté Carlo: On qualifie de méthode de Monté Carlo tout algorithme de calcul reposant sur des tirages aléatoires, dont le résultat change selon ces tirage, et dont le résultat est d'autant plus précis que le nombre de tirages est élevé. Par exemple, on peut calculer une valeur approchée de Pi de la manière suivante : on prend des points au hasard (uniformément) dans le carré [0,1]x[0,1] et on regarde combien sont dans le quart de disque de centre O et de rayon 1. Le rapport du nombre de points à l'intérieur sur le nombre de points total est proche de Pi/4. Faite l'experience dans R.

pi.monte.carlo.plot <- function (n=10000, pch='.', ...) {
  x <- runif(n)
  y <- runif(n)
  interieur <- x^2 + y^2 <= 1
  p <- 4*sum(interieur)/n
  xc <- seq(0,1,length=200)
  yc <- sqrt(1-xc^2)
  plot( xc, yc, type='l' )
  lines( c(0,1,1,0,0), c(0,0,1,1,0) )
  abline(h=0, lty=3)
  abline(v=0, lty=3)
  points(x[interieur], y[interieur], col='red', pch=pch, ...)
  points(x[!interieur], y[!interieur], pch=pch, ...)
  title(main=paste("Simulation de Monté Carlo : pi=",p,sep=''))
}
pi.monte.carlo.plot(100, pch='+', cex=3)

pi.monte.carlo.plot()

La notion de corrélation

Algorithme de Clustering

Coder la base donnée en cours (tennis attributs et données ) et tester les applet suivante :

Apple Carte de Kohonen

Carte de Kohonen

K-means

Bayesian SOM

Single Linkage CAH

TP/TD sous R

Clustering de données simulées

1. Exemple de clustering en utilisant l'algorithme kmeans

a) Entrer chacune des commandes en donnant un commentaire sur ce quÕelle fait.

# Cette commande.

library(cluster)

# Cette commande permet deÉ

set.seed(19)

#

data <- rbind(matrix(rnorm(100, sd = 0.3), ncol = 2),

#

matrix(rnorm(100, mean = 1, sd = 0.3), ncol = 2))

#

colnames(data) <- c("x", "y")

# K corresponds ˆ

K <- 2

#

cl1 <- kmeans(data, K) 

#

plot(data, col = cl1$cluster)

#

points(cl1$centers, col = 1:2, pch = 8, cex=2)

 

b) Que donnerait le mme calcul pour k=3 ? k= 4 ?

 

c) Comparer la silhouette obtenue pour k=2, k=3 et k=4.

 

2. Réaliser la même analyse en utilisant un algorithme de clustering hiérarchique

á    Pour cela utiliser la fonction hclust() en imposant une dŽcoupe de l'arbre ˆ 2 clusters: fonction cutree ()

 

á    Imprimer l'arbre de clusters en utilisant la fonction plot(

 

3. Calculer la silhouette des partitions ainsi obtenues et comparez les 

á    utilisez pour cela la fonction silhouette(tree_cut, dist=distance_matrix) du package cluster

 

Clustering de profils d'expression transcriptionnelle

DonnŽes d'expression issues de la comparaison des profils transcriptomiques du tissu adipeux chez des obeses massifs versus des sujets normopondŽraux:

library(FunNet)
data(obese)

 

On peut lister les objects crŽŽs avec objects(). Les donnŽes ˆ utiliser sont down.frame qui contient les gnes down-rŽgulŽs, et up.frame qui contient les gnes up-rŽgulŽs.

 

á    Faire une ACP des donnŽes avec la librairie FactoMineR (fonction PCA). Que remarquez-vous sur les graphiques.

á    Faire une analyse de clustering des patients en utilisant un algorithme de clustering hiŽrarchique et identifiez la partition optimale ˆ l'aide d'un calcul itŽratif de la silhouette. ReprŽsenter cette partition sur le graphe PCA des individus.

á    Faire de mme avec un algorithme de k-means. 

Si vous avez encore du temps:

  • Concernant l'éditeur sed, voici un lien