0% ont trouvé ce document utile (0 vote)
198 vues56 pages

Text Mining avec R et RStudio

Transféré par

Wail Choukhairi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
198 vues56 pages

Text Mining avec R et RStudio

Transféré par

Wail Choukhairi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Département Informatique

Exploration et visualisation
des données en R
(Partie 2)

Master Big Data & Cloud Computing

2021/2022
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 Environment
R Script

R Graphic
R Console
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)
Où le Data Mining est-il utilisé?

Les types de données


en R
§ Vecteur
§ Matrices
§ Data frame
§ Liste
Vecteurs

On appelle vecteur toute séquence d'éléments de même type.

• Logical
• Integer
• Double
• complex
• character
Vecteurs

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 (suite)

Exercice 1 Exercice 2
x <- c(4,2,6)
• Donner le résultat de:
y <- c(1,0,-1)
• Donner le résultat de:
(a) 7:11
(a) length(x)
(b) seq(2,9)
(b) sum(x)
(c) seq(4,10,by=2)
(c) sum(x^2)
(d) seq(3,30,length=10)
(d) x+y
(e) seq(6,-4,by=-2)
(e) x*y
(f) x-2
(g) x^2
Vecteurs (suite)
Exercice 3 Exercice 4

• Donner le résultat de: x<- c(5,9,2,3,4,6,7,0,8,12,2,9)


Donner le résultat de:
(a) rep(2,4)
(b) rep(c(1,2),4) (a) x[2]
(c) rep(c(1,2),c(4,4)) (b) x[2:4]
(d) rep(1:4,4) (c) x[c(2,3,6)]
(e) rep(1:4,rep(3,4)) (d) x[c(1:5,10:12)]
(e) x[-(10:12)]
Matrices
Il y’a plusieurs façon pour crée une matrice dans R
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 4 0
𝑥= 𝑦=
−1 1 0 1 −1
(a) 2*x (a) x[1,]
(b) x*x (b) x[2,]
(d) x*y (c) x[,2]
(e) t(y) (d) y[1,2]
(f) solve(x) (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()
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

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
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 tmp <- lapply(x, log)


y<-rep(NA,10)
for(i in 1:length(x))
{
vs
y[i]<-log(x[i])
}
Les fonctions

Calculer la moyenne

average <- function(x) {


y <- sum(x)
n <- length(x)
z <- y / n
return(z)
}
## calculer la moyenne de 1:10
average(1:10)
Les fonctions(suite)

Créez une fonction qui renverra la somme de 2 entiers.

som <- function (x, y)


{
r <- x + y
r
}
som(5, 10)
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
# 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 ...
• 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.
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')

Vous aimerez peut-être aussi