R Et La Fouille de Données: M. Ledmi M - Ledmi@esi - DZ
R Et La Fouille de Données: M. Ledmi M - Ledmi@esi - DZ
Arbres de décision
Règles d’association
Clustering
R et la fouille de données
M. Ledmi
[email protected]
Département d’Informatique Khenchela
2020/2021
Plan
1 Introduction en R
Démarrer R
Syntaxe et manipulation de données
Structures de contrôle et Fonctions
2 Arbres de décision
3 Règles d’association
4 Clustering
1 Introduction en R
Démarrer R
Syntaxe et manipulation de données
Structures de contrôle et Fonctions
2 Arbres de décision
3 Règles d’association
4 Clustering
Démarrer R
R est un logiciel pour l’analyse statistique. C’est un logiciel libre ; il est
disponible gratuitement et tourne sur différent système (PC Linux, PC
Windows, Mac).
Commandes
Vous pouvez le télécharger ici : http ://cran.r-project.org/
Le signe > en début de ligne est l’invite de commande de R.
Pour quitter R : > q()
Astuce
Lorsque l’on utilise R, il est possible de reprendre la ligne de commande tapée précédemment en appuyant sur la
flèche du haut du clavier. Appuyer plusieurs fois permet de récupérer des lignes plus anciennes.
Commentaires
Variables
R manipule que les tableaux de données. Ces tableaux sont stockés dans
des variables, ce qui permet de leur donner un nom.
Le nom des variables doit commencer par une lettre et peut contenir
des lettres, des chiffres, des points et des caractères de soulignement
(_), mais surtout pas d’espace.
L’opérateur = est utilisé pour donner une valeur à une variable ; il
peut se lire prend la valeur de
on trouve aussi l’opérateur <- qui a exactement la même signification.
> age = 28
Pour afficher la valeur de la variable âge, il suffit de taper le nom de la
variable :
> age
[1] 28
M. Ledmi Introduction à la fouille de données
Introduction en R
Démarrer R
Arbres de décision
Syntaxe et manipulation de données
Règles d’association
Structures de contrôle et Fonctions
Clustering
Types de donnée
Tableaux-Vecteurs
Un vecteur est un tableau à une dimension. Toutes les cases du vecteur
doivent contenir des données du même type (des entiers, des chaînes de
caractère,...). La fonction c() permet de créer un vecteur :
> ages = c(28, 25, 23, 24, 26, 23, 21, 22, 24, 29, 24,
26, 31, 28, 27, 24, 23, 25, 27, 25, 24, 21, 24, 23, 25, 31,
28, 27, 24, 23)
> ages
[1] 28 25 23 24 26 23 21 22 24 29 24 26 31 28 27 24 23
[17] 25 27 25 24 21 24 23 25 31 28 27 24 23
[1] indique que ce qui suit est la première valeur du vecteur, et
[17] que la deuxième ligne commence à la 17ème valeur ;
[1] et [17] ne sont pas des éléments du vecteur.
Tableaux-Vecteurs
La fonction c() permet aussi de concaténer ( mettre bout à bout) des
vecteurs :
> poids_groupe_temoin = c(75.0, 69.2, 75.4, 87.3)
> poids_groupe_intervention = c(70.5, 64.2, 76.4, 81.6)
> poids = c(poids_groupe_temoin,
poids_groupe_intervention)
> poids
[1] 75.0 69.2 75.4 87.3 70.5 64.2 76.4 81.6
Il est possible d’accéder à un élément du vecteur avec des crochets. Par
exemple pour accéder au second élément du vecteur poids :
> poids[2]
[1] 69.2
M. Ledmi Introduction à la fouille de données
Introduction en R
Démarrer R
Arbres de décision
Syntaxe et manipulation de données
Règles d’association
Structures de contrôle et Fonctions
Clustering
Tableaux-Vecteurs
Tableaux-Vecteurs
Tableaux-Matrices
Une matrice est un tableau à deux dimensions, toutes les cases doivent
contenir des données du même type.
Une matrice est créée à partir d’un vecteur contenant les valeurs, et d’un
nombre de ligne (nr, pour Number of Row) et de colonne (nc, pour
Number of Column) :
> ma_matrice = matrix(c(1.5, 2.1, 3.2, 1.6, 1.4,
1.5),nr=3, nc=2)
> ma_matrice
[,1] [,2]
[1,] 1.5 1.6
[2,] 2.1 1.4
[3,] 3.2 1.5
Tableaux-Matrices
Tableaux-Liste,Data frames
Une liste est un tableau à une dimension, qui peut contenir des données de
différents types (contrairement au vecteur).
> ma_liste = list("JB", 28)
Tableaux de données (data frame)
Un tableau de donnée est un tableau où chaque colonne correspond à un
attribut différents (âge, taille, poids par exemple) et chaque ligne à un
individu différent.
Il est possible de créer des tableaux de données dans R, cependant il est
beaucoup plus facile de les charger à partir d’un fichier. On utilise pour
cela la fonction read.table().
Tableaux-Data frames
Tableaux-Data frames
Les noms des colonnes sont disponibles via la fonction names() :
> names(t)
[1] "nom" "taille" "poids"
Comme pour les matrices, il est possible d’accéder aux cases, lignes et
colonnes d’un tableau. Les noms des colonnes peuvent être utilisés à la
place de leurs index :
> t[1, 2] # taille du premier individu
[1] 1.7
> t[1, "taille"] # Pareil
[1] 1.7
> t[1,] # Première ligne
nom taille poids
1 NgoBaoCho 1.7 64
M. Ledmi Introduction à la fouille de données
Introduction en R
Démarrer R
Arbres de décision
Syntaxe et manipulation de données
Règles d’association
Structures de contrôle et Fonctions
Clustering
Tableaux-Data frames
> t[,"taille"] # Colonne taille
[1] 1.70 1.80 1.67 1.69 1.75
> t$taille # Notation raccourci pour la colonne taille
[1] 1.70 1.80 1.67 1.69 1.75
Il est aussi possible d’indexer avec une condition : par exemple, pour
obtenir un tableau avec seulement les individus dont la taille est
supérieure à 1m70 (ne pas oublier la virgule, qui sert à indiquer que l’on
veut récupérer toutes les colonnes !) :
> t[t$taille > 1.7,]
nom taille poids
2 NgoBaoCho 1.80 63
5 M. Z 1.75 NA
M. Ledmi Introduction à la fouille de données
Introduction en R
Démarrer R
Arbres de décision
Syntaxe et manipulation de données
Règles d’association
Structures de contrôle et Fonctions
Clustering
Opérateur et calcul
R permet de réaliser la plupart des opérations courantes à l’aide des
opérateurs suivants : + (addition), - (soustraction), * (multiplication), /
(division), ˆ(puissance).
> 2 * 3 + 1
[1] 7
Les opérations sont réalisées sur chaque élément des tableaux. Par
exemple, pour calculer l’Indice de Masse Corporelle (IMC) sur chaque
individu du tableau de donnée chargé précédemment, en appliquant la
poid
formule IM C = taille 2 :
Opérateur et calcul
Il est possible d’ajouter une quatrième colonne avec l’IMC à notre tableau
de la manière suivante : > t$IMC = t$poids / (t$tailleˆ2)
> t
nom taille poids IMC
1 NgoBaocho 1.70 64.0 22.14533
2 NgoBaoCho 1.80 63.0 19.44444
3 M. X 1.67 70.5 25.27878
4 M. Y 1.69 95.0 33.26214
5 M. Z 1.75 NA NA
Comparaison
Les comparaisons se font avec les opérateurs <, >, <= (inférieur ou égal)
, >= (suppérieur ou égal), == (égal), != (différent de). Ils retournent
une (ou plusieurs) valeur(s) booléenne(s).
> 1 < 3
[1] TRUE
> t$IMC > 25
[1] FALSE FALSE TRUE TRUE NA
Il est possible de combiner plusieurs comparaisons avec des & (et) ou des
|(ou)
Fonctions
R définit un grand nombre de fonctions ; nous en avons déjà vu quelques
unes. La fonction help() permet d’obtenir de l’aide sur une fonction :
>help(mean)
Voici une liste des principales fonctions :
summary(tableau) affiche un résumé du tableau
length(vecteur) retourne le nombre de case d’un vecteur
ncol(tableau) retourne le nombre de colonne d’un tableau
nrow(tableau) retourne le nombre de ligne d’un tableau
q() quitte R
min(vecteur) retourne la plus petite valeur d’un vecteur
max(vecteur) retourne la plus grande valeur d’un vecteur
sort(vecteur) retourne une copie d’un vecteur après l’avoir trié
M. Ledmi Introduction à la fouille de données
Introduction en R
Démarrer R
Arbres de décision
Syntaxe et manipulation de données
Règles d’association
Structures de contrôle et Fonctions
Clustering
Fonctions
Structures de contrôle
Structures de contrôle
Les alternatives ont pour but d’exécuter des instructions seulement si une
certaine condition est satisfaite.
Écriture générale
if (condition) {
instructions
} else {
instructions
}
Exemple
if (x>0) y=x*log(x) else y=0
M. Ledmi Introduction à la fouille de données
Introduction en R
Démarrer R
Arbres de décision
Syntaxe et manipulation de données
Règles d’association
Structures de contrôle et Fonctions
Clustering
Structures de contrôle
Les boucles ont pour but de répéter des instructions à plusieurs reprises.
Écriture générale
for (i in ensemble ) {
instructions
}
Exemple
for (i in 1:10 ) {
print(i)
}
Structures de contrôle
Les boucles ont pour but de répéter des instructions à plusieurs reprises.
Écriture générale
while (condition ) {
instructions
}
Exemple
while (i <11 ) {
print(i)
i=i+1
}
M. Ledmi Introduction à la fouille de données
Introduction en R
Démarrer R
Arbres de décision
Syntaxe et manipulation de données
Règles d’association
Structures de contrôle et Fonctions
Clustering
Structures de contrôle
Les boucles ont pour but de répéter des instructions à plusieurs reprises.
Écriture générale
repeat {
instructions
if (condition) break
}
Exemple
repeat { print(i)
if (i<10) { i=i+1} else {break}
}
M. Ledmi Introduction à la fouille de données
Introduction en R
Démarrer R
Arbres de décision
Syntaxe et manipulation de données
Règles d’association
Structures de contrôle et Fonctions
Clustering
Fonctions
Écriture générale
Pour créer une fonction en R, on utilise la fonction nommée function
en respectant la syntaxe suivante :
nomFonction <- function(arg1, arg2, arg3) {
# corps de la fonction }
Fonctions
Exemple
exemple=function(n=10)
{ sample=runif(n)
m = mean(sample) ; v =var(sample)
list(serie=sample,moyenne=m, variance=v)
}
Les trois commandes suivantes :
exemple(10) ou exemple(n=10) ou exemple() retournent le même
résultat.
1 Introduction en R
2 Arbres de décision
3 Règles d’association
4 Clustering
Arbre de décision
Installer le package rpart : install.packages("rpart", dep=TRUE)
Charger le package rpart : library(rpart)
Charger les données kyphosis : data(kyphosis)
La variable Kyphosis indique si l’enfant a subi une déformation de la colonne
vertébrale après une opération chirurgicale ;
La variable Age donne l’âge de l’enfant (en mois) ;
La variable Number indique le nombre de vertèbres concernées par l’opération ;
La variable Start indique le numéro de la première vertèbre opérée.
Arbre de décision
Installer le package rpart : install.packages("rpart", dep=TRUE)
Charger le package rpart : library(rpart)
Charger les données kyphosis : data(kyphosis)
La variable Kyphosis indique si l’enfant a subi une déformation de la colonne
vertébrale après une opération chirurgicale ;
La variable Age donne l’âge de l’enfant (en mois) ;
La variable Number indique le nombre de vertèbres concernées par l’opération ;
La variable Start indique le numéro de la première vertèbre opérée.
Arbre de décision
Installer le package rpart : install.packages("rpart", dep=TRUE)
Charger le package rpart : library(rpart)
Charger les données kyphosis : data(kyphosis)
La variable Kyphosis indique si l’enfant a subi une déformation de la colonne
vertébrale après une opération chirurgicale ;
La variable Age donne l’âge de l’enfant (en mois) ;
La variable Number indique le nombre de vertèbres concernées par l’opération ;
La variable Start indique le numéro de la première vertèbre opérée.
Arbre de décision
Installer le package rpart : install.packages("rpart", dep=TRUE)
Charger le package rpart : library(rpart)
Charger les données kyphosis : data(kyphosis)
La variable Kyphosis indique si l’enfant a subi une déformation de la colonne
vertébrale après une opération chirurgicale ;
La variable Age donne l’âge de l’enfant (en mois) ;
La variable Number indique le nombre de vertèbres concernées par l’opération ;
La variable Start indique le numéro de la première vertèbre opérée.
Arbre de décision
Installer le package rpart : install.packages("rpart", dep=TRUE)
Charger le package rpart : library(rpart)
Charger les données kyphosis : data(kyphosis)
La variable Kyphosis indique si l’enfant a subi une déformation de la colonne
vertébrale après une opération chirurgicale ;
La variable Age donne l’âge de l’enfant (en mois) ;
La variable Number indique le nombre de vertèbres concernées par l’opération ;
La variable Start indique le numéro de la première vertèbre opérée.
Arbre de décision
Installer le package rpart : install.packages("rpart", dep=TRUE)
Charger le package rpart : library(rpart)
Charger les données kyphosis : data(kyphosis)
La variable Kyphosis indique si l’enfant a subi une déformation de la colonne
vertébrale après une opération chirurgicale ;
La variable Age donne l’âge de l’enfant (en mois) ;
La variable Number indique le nombre de vertèbres concernées par l’opération ;
La variable Start indique le numéro de la première vertèbre opérée.
Arbre de décision
Installer le package rpart : install.packages("rpart", dep=TRUE)
Charger le package rpart : library(rpart)
Charger les données kyphosis : data(kyphosis)
La variable Kyphosis indique si l’enfant a subi une déformation de la colonne
vertébrale après une opération chirurgicale ;
La variable Age donne l’âge de l’enfant (en mois) ;
La variable Number indique le nombre de vertèbres concernées par l’opération ;
La variable Start indique le numéro de la première vertèbre opérée.
Exemple
On peut se demander si l’âge de l’enfant, le nombre de vertèbres
opérées et la position des vertèbres opérées permettent d’évaluer le
risque de survenue d’une cyphose à l’issue de l’opération.
M. Ledmi Introduction à la fouille de données
Introduction en R
Arbres de décision
Règles d’association
Clustering
1 Introduction en R
2 Arbres de décision
3 Règles d’association
4 Clustering
Package arules
Package arules
Jeu de transactions
Nous allons utiliser une implantation en R de l’algorithme Apriori
disponible dans le package arules de R. Nous allons travailler sur le jeu de
transaction Adult :
data("Adult")
inspect(Adult[1:2])
Combien y a-t-il de transactions ?
Combien y a-t-il d’items ?
Quel est la longueur des transactions ?
Pourquoi certaines transactions ont-elles moins de 13 items ?
Jeu de transactions
Nous allons utiliser une implantation en R de l’algorithme Apriori
disponible dans le package arules de R. Nous allons travailler sur le jeu de
transaction Adult :
data("Adult")
inspect(Adult[1:2])
Combien y a-t-il de transactions ?
Combien y a-t-il d’items ?
Quel est la longueur des transactions ?
Pourquoi certaines transactions ont-elles moins de 13 items ?
Jeu de transactions
Nous allons utiliser une implantation en R de l’algorithme Apriori
disponible dans le package arules de R. Nous allons travailler sur le jeu de
transaction Adult :
data("Adult")
inspect(Adult[1:2])
Combien y a-t-il de transactions ?
Combien y a-t-il d’items ?
Quel est la longueur des transactions ?
Pourquoi certaines transactions ont-elles moins de 13 items ?
Jeu de transactions
Nous allons utiliser une implantation en R de l’algorithme Apriori
disponible dans le package arules de R. Nous allons travailler sur le jeu de
transaction Adult :
data("Adult")
inspect(Adult[1:2])
Combien y a-t-il de transactions ?
Combien y a-t-il d’items ?
Quel est la longueur des transactions ?
Pourquoi certaines transactions ont-elles moins de 13 items ?
Jeu de transactions
Nous allons utiliser une implantation en R de l’algorithme Apriori
disponible dans le package arules de R. Nous allons travailler sur le jeu de
transaction Adult :
data("Adult")
inspect(Adult[1:2])
Combien y a-t-il de transactions ?
Combien y a-t-il d’items ?
Quel est la longueur des transactions ?
Pourquoi certaines transactions ont-elles moins de 13 items ?
Regardez l’aide sur les fonctions itemFrequency() et
itemFrequencyPlot().
Affichez le graphique des items de support supérieur à 0.2.
Affichez le graphique des 10 items les plus fréquents.
M. Ledmi Introduction à la fouille de données
Introduction en R
Arbres de décision
Règles d’association
Clustering
Jeu de transactions
Nous allons utiliser une implantation en R de l’algorithme Apriori
disponible dans le package arules de R. Nous allons travailler sur le jeu de
transaction Adult :
data("Adult")
inspect(Adult[1:2])
Combien y a-t-il de transactions ?
Combien y a-t-il d’items ?
Quel est la longueur des transactions ?
Pourquoi certaines transactions ont-elles moins de 13 items ?
Regardez l’aide sur les fonctions itemFrequency() et
itemFrequencyPlot().
Affichez le graphique des items de support supérieur à 0.2.
Affichez le graphique des 10 items les plus fréquents.
M. Ledmi Introduction à la fouille de données
Introduction en R
Arbres de décision
Règles d’association
Clustering
La fonction apriori()
Regardez l’aide sur cette fonction apriori().
Par exemple pour obtenir les règles ayant un support d’au moins 1%
et une confiance supérieure à 60%, il suffit de lancer la commande :
rules<-apriori(Adult,parameter=list(support=0.01,confidence=0.6)
Comprenez les messages affichés lors de l’exécution de l’algorithme.
Vous pouvez utiliser les fonctions summary() et inspect() pour
répondre aux questions suivantes :
Combien de règles ?
Pour combien de transactions ?
Affichez les dix premières règles obtenues.
Diminuez la valeur de la confiance (par exemple 0.1) et du support
(par exemple 0.001, 0.0001, 0.00001) et regardez l’évolution du nombre
de règles.
M. Ledmi Introduction à la fouille de données
Introduction en R
Arbres de décision
Règles d’association
Clustering
La fonction apriori()
Regardez l’aide sur cette fonction apriori().
Par exemple pour obtenir les règles ayant un support d’au moins 1%
et une confiance supérieure à 60%, il suffit de lancer la commande :
rules<-apriori(Adult,parameter=list(support=0.01,confidence=0.6)
Comprenez les messages affichés lors de l’exécution de l’algorithme.
Vous pouvez utiliser les fonctions summary() et inspect() pour
répondre aux questions suivantes :
Combien de règles ?
Pour combien de transactions ?
Affichez les dix premières règles obtenues.
Diminuez la valeur de la confiance (par exemple 0.1) et du support
(par exemple 0.001, 0.0001, 0.00001) et regardez l’évolution du nombre
de règles.
M. Ledmi Introduction à la fouille de données
Introduction en R
Arbres de décision
Règles d’association
Clustering
La fonction apriori()
Regardez l’aide sur cette fonction apriori().
Par exemple pour obtenir les règles ayant un support d’au moins 1%
et une confiance supérieure à 60%, il suffit de lancer la commande :
rules<-apriori(Adult,parameter=list(support=0.01,confidence=0.6)
Comprenez les messages affichés lors de l’exécution de l’algorithme.
Vous pouvez utiliser les fonctions summary() et inspect() pour
répondre aux questions suivantes :
Combien de règles ?
Pour combien de transactions ?
Affichez les dix premières règles obtenues.
Diminuez la valeur de la confiance (par exemple 0.1) et du support
(par exemple 0.001, 0.0001, 0.00001) et regardez l’évolution du nombre
de règles.
M. Ledmi Introduction à la fouille de données
Introduction en R
Arbres de décision
Règles d’association
Clustering
La fonction apriori()
Regardez l’aide sur cette fonction apriori().
Par exemple pour obtenir les règles ayant un support d’au moins 1%
et une confiance supérieure à 60%, il suffit de lancer la commande :
rules<-apriori(Adult,parameter=list(support=0.01,confidence=0.6)
Comprenez les messages affichés lors de l’exécution de l’algorithme.
Vous pouvez utiliser les fonctions summary() et inspect() pour
répondre aux questions suivantes :
Combien de règles ?
Pour combien de transactions ?
Affichez les dix premières règles obtenues.
Diminuez la valeur de la confiance (par exemple 0.1) et du support
(par exemple 0.001, 0.0001, 0.00001) et regardez l’évolution du nombre
de règles.
M. Ledmi Introduction à la fouille de données
Introduction en R
Arbres de décision
Règles d’association
Clustering
La fonction apriori()
Regardez l’aide sur cette fonction apriori().
Par exemple pour obtenir les règles ayant un support d’au moins 1%
et une confiance supérieure à 60%, il suffit de lancer la commande :
rules<-apriori(Adult,parameter=list(support=0.01,confidence=0.6)
Comprenez les messages affichés lors de l’exécution de l’algorithme.
Vous pouvez utiliser les fonctions summary() et inspect() pour
répondre aux questions suivantes :
Combien de règles ?
Pour combien de transactions ?
Affichez les dix premières règles obtenues.
Diminuez la valeur de la confiance (par exemple 0.1) et du support
(par exemple 0.001, 0.0001, 0.00001) et regardez l’évolution du nombre
de règles.
M. Ledmi Introduction à la fouille de données
Introduction en R
Arbres de décision
Règles d’association
Clustering
La fonction apriori()
Regardez l’aide sur cette fonction apriori().
Par exemple pour obtenir les règles ayant un support d’au moins 1%
et une confiance supérieure à 60%, il suffit de lancer la commande :
rules<-apriori(Adult,parameter=list(support=0.01,confidence=0.6)
Comprenez les messages affichés lors de l’exécution de l’algorithme.
Vous pouvez utiliser les fonctions summary() et inspect() pour
répondre aux questions suivantes :
Combien de règles ?
Pour combien de transactions ?
Affichez les dix premières règles obtenues.
Diminuez la valeur de la confiance (par exemple 0.1) et du support
(par exemple 0.001, 0.0001, 0.00001) et regardez l’évolution du nombre
de règles.
M. Ledmi Introduction à la fouille de données
Introduction en R
Arbres de décision
Règles d’association
Clustering
La fonction apriori()
Regardez l’aide sur cette fonction apriori().
Par exemple pour obtenir les règles ayant un support d’au moins 1%
et une confiance supérieure à 60%, il suffit de lancer la commande :
rules<-apriori(Adult,parameter=list(support=0.01,confidence=0.6)
Comprenez les messages affichés lors de l’exécution de l’algorithme.
Vous pouvez utiliser les fonctions summary() et inspect() pour
répondre aux questions suivantes :
Combien de règles ?
Pour combien de transactions ?
Affichez les dix premières règles obtenues.
Diminuez la valeur de la confiance (par exemple 0.1) et du support
(par exemple 0.001, 0.0001, 0.00001) et regardez l’évolution du nombre
de règles.
M. Ledmi Introduction à la fouille de données
Introduction en R
Arbres de décision
Règles d’association
Clustering
1 Introduction en R
2 Arbres de décision
3 Règles d’association
4 Clustering
Package cluster
Package cluster
Package cluster
Package cluster
Package cluster
Trouver K optimal
Trouver K optimal
Trouver K optimal
Trouver K optimal
Trouver K optimal