SlideShare une entreprise Scribd logo
1  sur  56
Télécharger pour lire hors ligne
Exploration et visualisation
des données en R
(Partie 2)
Master Big Data & Cloud Computing
2021/2022
Département Informatique
What is R?
• R est un langage de programmation utilise pour l’analyse statistique. L’analyse des
données et la recherché scientifique.
• R est populaire pour les statisticiens, l’analystes des donnes, etc… pour récupérer,
nettoyer, analyser, visualiser, et présenter les données
Why R?
• R est largement utilisé dans les milieux universitaires et industriels.
• R est l’un des outils les plus populaires en matière de science des données et
d’analyse, classé n ° 1 de 2011 à 2016, mais malheureusement dépassé par Python
depuis 2017.
• Apprentissage automatique et apprentissage statistique
• Analyse de grappes et modèles de mélanges finis
• Analyse des séries chronologiques
• Statistiques multivariées
• Analyse de données spatiales
• . . .
What is R?
Le logiciel R (disponible sur http://www.r-project.org/) est un logiciel de
Statistique libre ayant un certain nombre d’atouts :
• il permet l’utilisation des méthodes statistiques classiques à l’aide de fonctions prédéfinies,
• il permet d’utiliser des techniques statistiques innovantes et récentes à l’aide de package
développés par les chercheurs et mis à disposition sur le site du CRAN (http://cran.r-
project.org/).
Nous proposons ici de travailler avec l’interface RStudio,
http://www.rstudio.com/
RStudio
• Un environnement de développement intégré (IDE) pour R.
• Fonctionne sur différents systèmes d'exploitation tels que Windows, Mac OS X
• et Linux.
• Suggestion: toujours en utilisant un projet RStudio, avec des sous-dossiers
• code: code source
• données: données brutes, données nettoyées
• figures: tableaux et graphiques
• docs: documents et rapports
• modèles: modèles d'analyse
RStudio
R Console
R Script
R Environment
R Graphic
Basic Computations in R
N.B. : En R, l'assignation peut se faire avec le symbole <- ou =, qui sont équivalents
Objects de R
R a cinq classes d’objets de base ou «atomiques».
Wait, what is an object ?
Tout ce que vous voyez ou créez dans R est un objet (vecteur, matrice, data frame
même une variable) est un objet.
• Character
• Numeric (Real Numbers)
• Integer (Whole Numbers)
• Complex
• Logical (True / False)
Les types de données
en R
Où le Data Mining est-il utilisé?
§ Vecteur
§ Matrices
§ Data frame
§ Liste
Vecteurs
On appelle vecteur toute séquence d'éléments de même type.
• Logical
• Integer
• Double
• complex
• character
Exemple
Syntaxe :
paste(string1, string2,string3, sep = " ", collapse = NULL)
String1, string2, string3: Les strings a concaténer
sep : Séparateur
Collapse : supprimer les espace entre les strings
Vecteurs
Syntaxe :
toupper(x) ou tolower(x)
nchar(x)
substring(x,premier, dernier)]
Vecteurs
Vecteurs
Exercice 1
x <- c(4,2,6)
y <- c(1,0,-1)
• Donner le résultat de:
(a) length(x)
(b) sum(x)
(c) sum(x^2)
(d) x+y
(e) x*y
(f) x-2
(g) x^2
Vecteurs (suite)
Exercice 2
• Donner le résultat de:
(a) 7:11
(b) seq(2,9)
(c) seq(4,10,by=2)
(d) seq(3,30,length=10)
(e) seq(6,-4,by=-2)
Exercice 3
• Donner le résultat de:
(a) rep(2,4)
(b) rep(c(1,2),4)
(c) rep(c(1,2),c(4,4))
(d) rep(1:4,4)
(e) rep(1:4,rep(3,4))
Vecteurs (suite)
Exercice 4
x<- c(5,9,2,3,4,6,7,0,8,12,2,9)
Donner le résultat de:
(a) x[2]
(b) x[2:4]
(c) x[c(2,3,6)]
(d) x[c(1:5,10:12)]
(e) x[-(10:12)]
Il y’a plusieurs façon pour crée une matrice dans R
Matrices
Matrices (suite)
# affiche les lignes 1 & 2 et les colonnes 2 & 3
# affiche les colonnes 3 & 1
# affiche tous les lignes sauf la première
dim() dans les matrices R
Matrices (suite)
Operations mathématiques
Plusieurs opérations peuvent être établie sur les matrices. Mais la dimension des
matrices doivent être la même.
# addition de 2 matrices
# soustraction de 2 matrices
Matrices (suite)
Operations mathématiques
Exercice
Créer dans R les matrices suivantes:
𝑥 =
3 2
−1 1
𝑦 =
1 4 0
0 1 −1
(a) 2*x
(b) x*x
(d) x*y
(e) t(y)
(f) solve(x)
(a) x[1,]
(b) x[2,]
(c) x[,2]
(d) y[1,2]
(e) y[,2:3]
Tableaux de données
(Data Frame)
• C'est le plus couramment utilisé
• Il est utilisé pour stocker des données tabulaires. C'est différent de la matrice.
• Dans une matrice, chaque élément doit avoir la même classe.
• Dans un data frame, vous pouvez mettre une liste de vecteurs contenant différentes
classes.
• Cela signifie que chaque colonne d'un cadre de données agit comme une liste.
Chaque fois que vous lirez des données dans R, elles seront stockées sous la forme
d’une trame de données.
Tableaux de données
(Data Frame)
etudiant.data <- data.frame(
rollid = c (11:15),
nom_etud = c("Ahmed","Hind","Ali","safae","Mark"),
note_etud = c(13,16,15,11,15),
date_nais = as.Date(c("2000-01-24","1997-09-23","1999-11-
15","1998-05-11","2000-03-27"))
)
Data Frame(suite)
Extraction d’information depuis une table de donnée
result <-
data.frame(etudiant.data$nom_etud,e
tudiant.data$note_etud)
result <- etudiant.data[1,]
result <- etudiant.data[1:2,3]
Data Frame(suite)
Ajouter une ligne dans une table de donnée
etudiant.data2 <- data.frame(
rollid = c (16:17),
nom_etud = c ("sara","ayoub"),
note_etud = c (14,16),
date_nais = as.Date(c("1997-01-01", "1996-09-23")),
)
Data Frame(suite)
Ajouter une colonne dans une table de données
Créer un vecteur et l’ajouter dans la table de données
etudiant.data$cours<-
c("datamining","bigdata","BI","ML","Statistique")
List
Une liste est un type spécial de vecteur qui contient des éléments de différents types
de données.
rollno <- c(2,3,4)
names <- c("A","B","C")
location <- c("India", "US","UK")
x=list(rollno,names,location)
Liste(suite)
# ajouter un elemet comme location
mylist[5]<-"Kenitra"
mylist
#supprimer le dernier element
mylist[5] <- NULL
#Changer la valeur du 4eme element
mylist[4]<- 8
Liste(suite)
La fonction apply()
lapply(): applique une fonction pour chaque élément d’une liste ou vecteur et
retourne une liste.
sapply(): comme lapply() mais retourne un vecteur ou une matrice.
vapply(): comme sapply() mais faut spécifier a l'avance le type de variable de
retourne
Apply(x,1,sum)
• Le 1er argument X et un data frame ou une matrice
• Le 2eme argument 1 indique traiter par ligne .si 2 alors ont traite par colonne
• Le 3eme argument est une des fonctions d’agregation comme sum, mean etc ou
d’autre fonctions définie par l’utilisateur
La fonction apply()
Exemple
Age<-c(56,34,67,33,25,28)
Poids<-c(78,67,56,44,56,89)
Hauteur<-c(165, 171,167,167,166,181)
DM <-data.frame(Age,Poids,Hauteur)
DM
Age Poids Hauteur
1 56 78 165
2 34 67 171
3 67 56 167
4 33 44 167
5 25 56 166
6 28 89 181
apply(DM,1,sum)
For vs apply()
x<-1:10
y<-rep(NA,10)
for(i in 1:length(x))
{
y[i]<-log(x[i])
}
tmp <- lapply(x, log)
vs
Les fonctions
average <- function(x) {
y <- sum(x)
n <- length(x)
z <- y / n
return(z)
}
## calculer la moyenne de 1:10
average(1:10)
Calculer la moyenne
Les fonctions(suite)
som <- function (x, y)
{
r <- x + y
r
}
som(5, 10)
Créez une fonction qui renverra la somme de 2 entiers.
Les fonctions
repeat - Il exécute une boucle infinie
break - Interrompt l'exécution d'une boucle
next - Permet de sauter une itération dans une boucle
return - aide à quitter une fonction
Data Import/Export
Lire et écrire les données de:
• R native formats (incl. Rdata et RDS)
• CSV files
• EXCEL files
• ODBC databases
• SAS databases
Data Import/Export
save(): enregistrer les objets R dans un fichier .Rdata
load(): lire des objets R depuis un fichier .Rdatarm(): supprime les objets de R
exemple
a <- 1:10
save(a, file= "path/test.Rdata")
load("path/test.Rdata")
Data Import/Export
save.image(): enregistre le workspace dans un fichier It saves everything!
readRDS(): lire un seul objets R depuis un fichier .rds
saveRDS(): enregistre un seul objet R dans un fichier .rds
• Avantage of readRDS() and saveRDS():
Permet de restaurer des données sous diffèrent nom d’objet
• Avantage of load() and save():
Permet d’enregister plusieurs objets dans le même fichier
Data Import/Export
.csv
# creation d'un data frame
var1 <- 1:5
var2 <- (1:5) / 10
var3 <- c("R", "and", "Data Mining", "Examples", "Case Studies")
df1 <- data.frame(var1, var2, var3)
names(df1) <- c("VarInt", "VarReal", "VarChar")
# sauvgarder dans un fichier csv
write.csv(df1, "path/Data.csv", row.names = FALSE)
# lire un fichier csv
df2 <- read.csv("path/Data.csv")
Le dataset iris
Le dataset iris [Frank et Asuncion, 2010] comprend 50 échantillons de chacune des
trois classes de fleurs d'iris. Il y a cinq attributs dans le dataset:
• sepal length en cm,
• sepal width en cm,
• petal length en cm,
• petal width en cm
• Species: Iris Setosa, Iris Versicolour, et Iris Virginica.
https://archive.ics.uci.edu/ml/datasets/Iris
Taille et nom des variables
# Nombre de lignes
nrow(iris)
[1] 150
# nombre de colonnes
ncol(iris)
[1] 5
# dimension du dataset
dim(iris)
[1] 150 5
# les noms des colonnes
names(iris)
[1] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width"
"Species"
La structure des données
• 150 observation (lignes) et 5 variables (colonnes).
• Les quatre premières colonnes sont des numeric.
• La dernier, Species est catégorique (appelé factor dans R), et contient trois
niveaux de valeurs.
# Structure du dataset
str(iris)
'data.frame': 150 obs. of 5 variables:
$ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
$ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
$ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
$ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
$ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1
1 1 1 1 1 1 1 1 ...
Les attributs des données
attributes(iris)
$names
[1] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width" "Species"
$class
[1] "data.frame"
$row.names
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
[21] 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
[41] 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
[61] 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
[81] 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
[101] 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
[121] 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
[141] 141 142 143 144 145 146 147 148 149 150
Première/dernière lignes
iris[1:3,]
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
head(iris, 3)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
tail(iris, 3)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
148 6.5 3.0 5.2 2.0 virginica
149 6.2 3.4 5.4 2.3 virginica
150 5.9 3.0 5.1 1.8 virginica
Fonction summary()
Variables numérique: minimum, maximum, mean, median, et le premier quart (25%)
et le trois quart (75%)
summary(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100 setosa :50
1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300 versicolor:50
Median :5.800 Median :3.000 Median :4.350 Median :1.300 virginica :50
Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
Mean, Median, Range et les quarts
range(iris$Sepal.Length)
[1] 4.3 7.9
## ----------------------------------------------------------------------
quantile(iris$Sepal.Length)
0% 25% 50% 75% 100%
4.3 5.1 5.8 6.4 7.9
## ----------------------------------------------------------------------
quantile(iris$Sepal.Length, c(.1, .3, .65))
10% 30% 65%
4.80 5.27 6.20
Variance et histogram
var(iris$Sepal.Length)
[1] 0.6856935
## ----------------------------------------------------------------------
hist(iris$Sepal.Length)
Densité
library(magrittr)
iris$Sepal.Length %>% density() %>% plot(main='Densité de Sepal.Length')
Fréquence
# calcule de la fréquence
table(iris$Species)
setosa versicolor virginica
50 50 50
# afficher le résultat en camembert sans
pourcentage
pie(table(iris$Species))
Fréquence (suite)
# calcule de la fréquence
table(iris$Species)
setosa versicolor virginica
50 50 50
# afficher le résultat en camembert avec pourcentage
txt <- paste0(names(iris), 'n', precentages, '%')
pie(table(iris$Species), labels=txt)
Bar chart
# Affiche la charte sans couleur
iris2$Species %>% table() %>% barplot()
# Ajouter des couleurs et pourcentages
x <- iris2$Species %>% table() %>%
barplot(axisnames=F, main='espèce',
ylab='Frequence',
col=c('pink', 'lightblue', 'lightgreen'))
text(x, tab/2, labels=txt, cex=1.5)
Corrélation
Après avoir vérifié les distributions des variables individuelles, nous examinons
ensuite les relations entre deux variables.
## -----------------------------------------------------
cov(iris$Sepal.Length, iris$Petal.Length)
[1] 1.274315
## -----------------------------------------------------
cor(iris$Sepal.Length, iris$Petal.Length)
[1] 0.8717538
## -----------------------------------------------------
cov(iris[,1:4])
## -----------------------------------------------------
cor(iris[,1:4])
Corrélation(suite)
x <- c(0,1,1,2,3,5,8,13,21,34)
y <- log(x+1)
cor(x,y)
# correlation dans R : avec NA
x <- c(0,1,1,2,3,5,8,13,21,NA)
y <- log(x+1)
cor(x,y,use = "complete.obs") # néglige les NA
# correlation entre matrices
x <- matrice1[1:4]
y <- matrice2[10:11]
cor(x, y)
Agrégation
Statistiques de Sepal.Length pour chaque espèce avec aggregate()
aggregate(Sepal.Length ~ Species, summary, data=iris)
Scatter Plot
with(iris, plot(Sepal.Length, Sepal.Width, col =
Species, pch = as.numeric(Species)))
Visualisation avec le package
ggplot2
library(ggplot2)
qplot(Sepal.Length, Sepal.Width, data=iris, facets=Species ~.)
Sauvegarder les graphes
Sauvegarder les graphiques au format PDF et PS: pdf () et postscript ()
Fichiers BMP, JPEG, PNG et TIFF: bmp (), jpeg (), png () et tiff ()
# Enregister en fichier pdf
pdf("graphe.pdf")
x <- 1:50
plot(x, log(x))
graphics.off()
# Enregister en fichier pdf
pdf("graphe1.pdf")
x <- -20:20
plot(x, x^2)
graphics.off()
Sauvegarder les graphes
ggsave (): par défaut, enregistre le dernier tracé que vous avez affiché. Il devine
également le type de périphérique graphique à partir de l'extension
ggsave('graphe.png')
ggsave('graphe.pdf')
ggsave('graphe.jpg')
ggsave('graphe.bmp')
ggsave('graphe.ps')
ggsave('graphe.eps')

Contenu connexe

Similaire à Data Mining (Partie 2).pdf

mis
mismis
mis
ISIG
 

Similaire à Data Mining (Partie 2).pdf (20)

Introduction à Python
Introduction à PythonIntroduction à Python
Introduction à Python
 
Formation python micro club.net
Formation python micro club.netFormation python micro club.net
Formation python micro club.net
 
Cours 01.pptx
Cours 01.pptxCours 01.pptx
Cours 01.pptx
 
Cours ML et Deep Learning M2 2022-2023.pdf
Cours ML et Deep Learning M2 2022-2023.pdfCours ML et Deep Learning M2 2022-2023.pdf
Cours ML et Deep Learning M2 2022-2023.pdf
 
Introduction à l'analyse de réseaux avec R
Introduction à l'analyse de réseaux avec RIntroduction à l'analyse de réseaux avec R
Introduction à l'analyse de réseaux avec R
 
Introduction à scala
Introduction à scalaIntroduction à scala
Introduction à scala
 
Analyse_desDonnées_sousR.pptx
Analyse_desDonnées_sousR.pptxAnalyse_desDonnées_sousR.pptx
Analyse_desDonnées_sousR.pptx
 
20150402 meetup r addicts du printemps
20150402  meetup r addicts du printemps20150402  meetup r addicts du printemps
20150402 meetup r addicts du printemps
 
mis
mismis
mis
 
Chap 1 Initiation.pptx
Chap 1 Initiation.pptxChap 1 Initiation.pptx
Chap 1 Initiation.pptx
 
MariaDB une base de donnees NewSQL
MariaDB une base de donnees NewSQLMariaDB une base de donnees NewSQL
MariaDB une base de donnees NewSQL
 
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
 
Génération automatique de texte
Génération automatique de texteGénération automatique de texte
Génération automatique de texte
 
Adopte une BDD
Adopte une BDDAdopte une BDD
Adopte une BDD
 
Développement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulièresDéveloppement informatique : Chaines de caractères et expressions regulières
Développement informatique : Chaines de caractères et expressions regulières
 
PJ - machine learning avec scikit-learn.pdf
PJ - machine learning avec scikit-learn.pdfPJ - machine learning avec scikit-learn.pdf
PJ - machine learning avec scikit-learn.pdf
 
Réalisation d'un mashup de données avec DSS de Dataiku - Première partie
Réalisation d'un mashup de données avec DSS de Dataiku - Première partieRéalisation d'un mashup de données avec DSS de Dataiku - Première partie
Réalisation d'un mashup de données avec DSS de Dataiku - Première partie
 
04 Introduction au logiciel R
04 Introduction au logiciel R04 Introduction au logiciel R
04 Introduction au logiciel R
 
Chapitre 1 rappel
Chapitre 1   rappelChapitre 1   rappel
Chapitre 1 rappel
 
COURS_PYTHON_22.ppt
COURS_PYTHON_22.pptCOURS_PYTHON_22.ppt
COURS_PYTHON_22.ppt
 

Plus de OuailChoukhairi (10)

the-blockchain-innovation-hub.pptx
the-blockchain-innovation-hub.pptxthe-blockchain-innovation-hub.pptx
the-blockchain-innovation-hub.pptx
 
BI_Part1_2020.pdf
BI_Part1_2020.pdfBI_Part1_2020.pdf
BI_Part1_2020.pdf
 
_3_expo_MM.pdf
_3_expo_MM.pdf_3_expo_MM.pdf
_3_expo_MM.pdf
 
Data Mining (Partie 3).pdf
Data Mining (Partie 3).pdfData Mining (Partie 3).pdf
Data Mining (Partie 3).pdf
 
Data Mining (Partie 1).pdf
Data Mining (Partie 1).pdfData Mining (Partie 1).pdf
Data Mining (Partie 1).pdf
 
_2_expo_DW_DM.pdf
_2_expo_DW_DM.pdf_2_expo_DW_DM.pdf
_2_expo_DW_DM.pdf
 
_1_expo_SIAD.pdf
_1_expo_SIAD.pdf_1_expo_SIAD.pdf
_1_expo_SIAD.pdf
 
___WS_Chap-3__RDF.pdf
___WS_Chap-3__RDF.pdf___WS_Chap-3__RDF.pdf
___WS_Chap-3__RDF.pdf
 
___WS_Chap-5__SPARQL.pdf
___WS_Chap-5__SPARQL.pdf___WS_Chap-5__SPARQL.pdf
___WS_Chap-5__SPARQL.pdf
 
___WS_Chap-4__RDFS.pdf
___WS_Chap-4__RDFS.pdf___WS_Chap-4__RDFS.pdf
___WS_Chap-4__RDFS.pdf
 

Data Mining (Partie 2).pdf

  • 1. Exploration et visualisation des données en R (Partie 2) Master Big Data & Cloud Computing 2021/2022 Département Informatique
  • 2. What is R? • R est un langage de programmation utilise pour l’analyse statistique. L’analyse des données et la recherché scientifique. • R est populaire pour les statisticiens, l’analystes des donnes, etc… pour récupérer, nettoyer, analyser, visualiser, et présenter les données
  • 3. Why R? • R est largement utilisé dans les milieux universitaires et industriels. • R est l’un des outils les plus populaires en matière de science des données et d’analyse, classé n ° 1 de 2011 à 2016, mais malheureusement dépassé par Python depuis 2017. • Apprentissage automatique et apprentissage statistique • Analyse de grappes et modèles de mélanges finis • Analyse des séries chronologiques • Statistiques multivariées • Analyse de données spatiales • . . .
  • 4. What is R? Le logiciel R (disponible sur http://www.r-project.org/) est un logiciel de Statistique libre ayant un certain nombre d’atouts : • il permet l’utilisation des méthodes statistiques classiques à l’aide de fonctions prédéfinies, • il permet d’utiliser des techniques statistiques innovantes et récentes à l’aide de package développés par les chercheurs et mis à disposition sur le site du CRAN (http://cran.r- project.org/). Nous proposons ici de travailler avec l’interface RStudio, http://www.rstudio.com/
  • 5. RStudio • Un environnement de développement intégré (IDE) pour R. • Fonctionne sur différents systèmes d'exploitation tels que Windows, Mac OS X • et Linux. • Suggestion: toujours en utilisant un projet RStudio, avec des sous-dossiers • code: code source • données: données brutes, données nettoyées • figures: tableaux et graphiques • docs: documents et rapports • modèles: modèles d'analyse
  • 6. RStudio R Console R Script R Environment R Graphic
  • 7. Basic Computations in R N.B. : En R, l'assignation peut se faire avec le symbole <- ou =, qui sont équivalents
  • 8. Objects de R R a cinq classes d’objets de base ou «atomiques». Wait, what is an object ? Tout ce que vous voyez ou créez dans R est un objet (vecteur, matrice, data frame même une variable) est un objet. • Character • Numeric (Real Numbers) • Integer (Whole Numbers) • Complex • Logical (True / False)
  • 9. Les types de données en R Où le Data Mining est-il utilisé? § Vecteur § Matrices § Data frame § Liste
  • 10. Vecteurs On appelle vecteur toute séquence d'éléments de même type. • Logical • Integer • Double • complex • character
  • 11. Exemple Syntaxe : paste(string1, string2,string3, sep = " ", collapse = NULL) String1, string2, string3: Les strings a concaténer sep : Séparateur Collapse : supprimer les espace entre les strings Vecteurs
  • 12. Syntaxe : toupper(x) ou tolower(x) nchar(x) substring(x,premier, dernier)] Vecteurs
  • 14. Exercice 1 x <- c(4,2,6) y <- c(1,0,-1) • Donner le résultat de: (a) length(x) (b) sum(x) (c) sum(x^2) (d) x+y (e) x*y (f) x-2 (g) x^2 Vecteurs (suite) Exercice 2 • Donner le résultat de: (a) 7:11 (b) seq(2,9) (c) seq(4,10,by=2) (d) seq(3,30,length=10) (e) seq(6,-4,by=-2)
  • 15. Exercice 3 • Donner le résultat de: (a) rep(2,4) (b) rep(c(1,2),4) (c) rep(c(1,2),c(4,4)) (d) rep(1:4,4) (e) rep(1:4,rep(3,4)) Vecteurs (suite) Exercice 4 x<- c(5,9,2,3,4,6,7,0,8,12,2,9) Donner le résultat de: (a) x[2] (b) x[2:4] (c) x[c(2,3,6)] (d) x[c(1:5,10:12)] (e) x[-(10:12)]
  • 16. Il y’a plusieurs façon pour crée une matrice dans R Matrices
  • 17. Matrices (suite) # affiche les lignes 1 & 2 et les colonnes 2 & 3 # affiche les colonnes 3 & 1 # affiche tous les lignes sauf la première dim() dans les matrices R
  • 18. Matrices (suite) Operations mathématiques Plusieurs opérations peuvent être établie sur les matrices. Mais la dimension des matrices doivent être la même. # addition de 2 matrices # soustraction de 2 matrices
  • 19. Matrices (suite) Operations mathématiques Exercice Créer dans R les matrices suivantes: 𝑥 = 3 2 −1 1 𝑦 = 1 4 0 0 1 −1 (a) 2*x (b) x*x (d) x*y (e) t(y) (f) solve(x) (a) x[1,] (b) x[2,] (c) x[,2] (d) y[1,2] (e) y[,2:3]
  • 20. Tableaux de données (Data Frame) • C'est le plus couramment utilisé • Il est utilisé pour stocker des données tabulaires. C'est différent de la matrice. • Dans une matrice, chaque élément doit avoir la même classe. • Dans un data frame, vous pouvez mettre une liste de vecteurs contenant différentes classes. • Cela signifie que chaque colonne d'un cadre de données agit comme une liste. Chaque fois que vous lirez des données dans R, elles seront stockées sous la forme d’une trame de données.
  • 21. Tableaux de données (Data Frame) etudiant.data <- data.frame( rollid = c (11:15), nom_etud = c("Ahmed","Hind","Ali","safae","Mark"), note_etud = c(13,16,15,11,15), date_nais = as.Date(c("2000-01-24","1997-09-23","1999-11- 15","1998-05-11","2000-03-27")) )
  • 22. Data Frame(suite) Extraction d’information depuis une table de donnée result <- data.frame(etudiant.data$nom_etud,e tudiant.data$note_etud) result <- etudiant.data[1,] result <- etudiant.data[1:2,3]
  • 23. Data Frame(suite) Ajouter une ligne dans une table de donnée etudiant.data2 <- data.frame( rollid = c (16:17), nom_etud = c ("sara","ayoub"), note_etud = c (14,16), date_nais = as.Date(c("1997-01-01", "1996-09-23")), )
  • 24. Data Frame(suite) Ajouter une colonne dans une table de données Créer un vecteur et l’ajouter dans la table de données etudiant.data$cours<- c("datamining","bigdata","BI","ML","Statistique")
  • 25. List Une liste est un type spécial de vecteur qui contient des éléments de différents types de données. rollno <- c(2,3,4) names <- c("A","B","C") location <- c("India", "US","UK") x=list(rollno,names,location)
  • 26. Liste(suite) # ajouter un elemet comme location mylist[5]<-"Kenitra" mylist #supprimer le dernier element mylist[5] <- NULL #Changer la valeur du 4eme element mylist[4]<- 8
  • 28. La fonction apply() lapply(): applique une fonction pour chaque élément d’une liste ou vecteur et retourne une liste. sapply(): comme lapply() mais retourne un vecteur ou une matrice. vapply(): comme sapply() mais faut spécifier a l'avance le type de variable de retourne Apply(x,1,sum) • Le 1er argument X et un data frame ou une matrice • Le 2eme argument 1 indique traiter par ligne .si 2 alors ont traite par colonne • Le 3eme argument est une des fonctions d’agregation comme sum, mean etc ou d’autre fonctions définie par l’utilisateur
  • 29. La fonction apply() Exemple Age<-c(56,34,67,33,25,28) Poids<-c(78,67,56,44,56,89) Hauteur<-c(165, 171,167,167,166,181) DM <-data.frame(Age,Poids,Hauteur) DM Age Poids Hauteur 1 56 78 165 2 34 67 171 3 67 56 167 4 33 44 167 5 25 56 166 6 28 89 181 apply(DM,1,sum)
  • 30. For vs apply() x<-1:10 y<-rep(NA,10) for(i in 1:length(x)) { y[i]<-log(x[i]) } tmp <- lapply(x, log) vs
  • 31. Les fonctions average <- function(x) { y <- sum(x) n <- length(x) z <- y / n return(z) } ## calculer la moyenne de 1:10 average(1:10) Calculer la moyenne
  • 32. Les fonctions(suite) som <- function (x, y) { r <- x + y r } som(5, 10) Créez une fonction qui renverra la somme de 2 entiers.
  • 33. Les fonctions repeat - Il exécute une boucle infinie break - Interrompt l'exécution d'une boucle next - Permet de sauter une itération dans une boucle return - aide à quitter une fonction
  • 34. Data Import/Export Lire et écrire les données de: • R native formats (incl. Rdata et RDS) • CSV files • EXCEL files • ODBC databases • SAS databases
  • 35. Data Import/Export save(): enregistrer les objets R dans un fichier .Rdata load(): lire des objets R depuis un fichier .Rdatarm(): supprime les objets de R exemple a <- 1:10 save(a, file= "path/test.Rdata") load("path/test.Rdata")
  • 36. Data Import/Export save.image(): enregistre le workspace dans un fichier It saves everything! readRDS(): lire un seul objets R depuis un fichier .rds saveRDS(): enregistre un seul objet R dans un fichier .rds • Avantage of readRDS() and saveRDS(): Permet de restaurer des données sous diffèrent nom d’objet • Avantage of load() and save(): Permet d’enregister plusieurs objets dans le même fichier
  • 37. Data Import/Export .csv # creation d'un data frame var1 <- 1:5 var2 <- (1:5) / 10 var3 <- c("R", "and", "Data Mining", "Examples", "Case Studies") df1 <- data.frame(var1, var2, var3) names(df1) <- c("VarInt", "VarReal", "VarChar") # sauvgarder dans un fichier csv write.csv(df1, "path/Data.csv", row.names = FALSE) # lire un fichier csv df2 <- read.csv("path/Data.csv")
  • 38. Le dataset iris Le dataset iris [Frank et Asuncion, 2010] comprend 50 échantillons de chacune des trois classes de fleurs d'iris. Il y a cinq attributs dans le dataset: • sepal length en cm, • sepal width en cm, • petal length en cm, • petal width en cm • Species: Iris Setosa, Iris Versicolour, et Iris Virginica. https://archive.ics.uci.edu/ml/datasets/Iris
  • 39. Taille et nom des variables # Nombre de lignes nrow(iris) [1] 150 # nombre de colonnes ncol(iris) [1] 5 # dimension du dataset dim(iris) [1] 150 5 # les noms des colonnes names(iris) [1] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width" "Species"
  • 40. La structure des données • 150 observation (lignes) et 5 variables (colonnes). • Les quatre premières colonnes sont des numeric. • La dernier, Species est catégorique (appelé factor dans R), et contient trois niveaux de valeurs. # Structure du dataset str(iris) 'data.frame': 150 obs. of 5 variables: $ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ... $ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ... $ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ... $ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ... $ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
  • 41. Les attributs des données attributes(iris) $names [1] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width" "Species" $class [1] "data.frame" $row.names [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 [21] 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 [41] 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 [61] 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 [81] 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 [101] 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 [121] 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 [141] 141 142 143 144 145 146 147 148 149 150
  • 42. Première/dernière lignes iris[1:3,] Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa head(iris, 3) Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa tail(iris, 3) Sepal.Length Sepal.Width Petal.Length Petal.Width Species 148 6.5 3.0 5.2 2.0 virginica 149 6.2 3.4 5.4 2.3 virginica 150 5.9 3.0 5.1 1.8 virginica
  • 43. Fonction summary() Variables numérique: minimum, maximum, mean, median, et le premier quart (25%) et le trois quart (75%) summary(iris) Sepal.Length Sepal.Width Petal.Length Petal.Width Species Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100 setosa :50 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300 versicolor:50 Median :5.800 Median :3.000 Median :4.350 Median :1.300 virginica :50 Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800 Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
  • 44. Mean, Median, Range et les quarts range(iris$Sepal.Length) [1] 4.3 7.9 ## ---------------------------------------------------------------------- quantile(iris$Sepal.Length) 0% 25% 50% 75% 100% 4.3 5.1 5.8 6.4 7.9 ## ---------------------------------------------------------------------- quantile(iris$Sepal.Length, c(.1, .3, .65)) 10% 30% 65% 4.80 5.27 6.20
  • 45. Variance et histogram var(iris$Sepal.Length) [1] 0.6856935 ## ---------------------------------------------------------------------- hist(iris$Sepal.Length)
  • 46. Densité library(magrittr) iris$Sepal.Length %>% density() %>% plot(main='Densité de Sepal.Length')
  • 47. Fréquence # calcule de la fréquence table(iris$Species) setosa versicolor virginica 50 50 50 # afficher le résultat en camembert sans pourcentage pie(table(iris$Species))
  • 48. Fréquence (suite) # calcule de la fréquence table(iris$Species) setosa versicolor virginica 50 50 50 # afficher le résultat en camembert avec pourcentage txt <- paste0(names(iris), 'n', precentages, '%') pie(table(iris$Species), labels=txt)
  • 49. Bar chart # Affiche la charte sans couleur iris2$Species %>% table() %>% barplot() # Ajouter des couleurs et pourcentages x <- iris2$Species %>% table() %>% barplot(axisnames=F, main='espèce', ylab='Frequence', col=c('pink', 'lightblue', 'lightgreen')) text(x, tab/2, labels=txt, cex=1.5)
  • 50. Corrélation Après avoir vérifié les distributions des variables individuelles, nous examinons ensuite les relations entre deux variables. ## ----------------------------------------------------- cov(iris$Sepal.Length, iris$Petal.Length) [1] 1.274315 ## ----------------------------------------------------- cor(iris$Sepal.Length, iris$Petal.Length) [1] 0.8717538 ## ----------------------------------------------------- cov(iris[,1:4]) ## ----------------------------------------------------- cor(iris[,1:4])
  • 51. Corrélation(suite) x <- c(0,1,1,2,3,5,8,13,21,34) y <- log(x+1) cor(x,y) # correlation dans R : avec NA x <- c(0,1,1,2,3,5,8,13,21,NA) y <- log(x+1) cor(x,y,use = "complete.obs") # néglige les NA # correlation entre matrices x <- matrice1[1:4] y <- matrice2[10:11] cor(x, y)
  • 52. Agrégation Statistiques de Sepal.Length pour chaque espèce avec aggregate() aggregate(Sepal.Length ~ Species, summary, data=iris)
  • 53. Scatter Plot with(iris, plot(Sepal.Length, Sepal.Width, col = Species, pch = as.numeric(Species)))
  • 54. Visualisation avec le package ggplot2 library(ggplot2) qplot(Sepal.Length, Sepal.Width, data=iris, facets=Species ~.)
  • 55. Sauvegarder les graphes Sauvegarder les graphiques au format PDF et PS: pdf () et postscript () Fichiers BMP, JPEG, PNG et TIFF: bmp (), jpeg (), png () et tiff () # Enregister en fichier pdf pdf("graphe.pdf") x <- 1:50 plot(x, log(x)) graphics.off() # Enregister en fichier pdf pdf("graphe1.pdf") x <- -20:20 plot(x, x^2) graphics.off()
  • 56. Sauvegarder les graphes ggsave (): par défaut, enregistre le dernier tracé que vous avez affiché. Il devine également le type de périphérique graphique à partir de l'extension ggsave('graphe.png') ggsave('graphe.pdf') ggsave('graphe.jpg') ggsave('graphe.bmp') ggsave('graphe.ps') ggsave('graphe.eps')