Post on 18-Jan-2020
MANIPULATION ET
VISUALISATION DE GROSSES
BASES DE DONNÉES AVEC R
CHAIGNEAU Alicia DAUFOUY Camille
GAZAN Rozenn JOURDAN Sandra
Jeudi 10 octobre
2013
Evolution des outils de collecte
Big data : volume massif de données
« Accumulation continue de tous les types de données atteignant une
taille et un niveau de granularité difficile à exploiter » (1)
3 « V » : Volume, Vitesse (fréquence à laquelle les données sont
générées), Variété (sources différentes : médias, machines,…)
(1) Zouheir Guédri – Mars 2012 congrès BigData Paris 2012
Introduction
2
Evolution des outils de collecte
Big data : volume massif de données
« Accumulation continue de tous les types de données atteignant une
taille et un niveau de granularité difficile à exploiter » (1)
3 « V » : Volume, Vitesse (fréquence à laquelle les données sont
générées), Variété (sources différentes : médias, machines,…)
Origine
Révolution de l’information (diminution des coûts de stockage,
nouveaux dispositifs de collecte, utilisation des réseaux sociaux) :
90% des données dans le monde créées les 2 dernières années : (2)
Données numériques :1.2 zettaoctects (2010) 40 zettaoctects (2020)
(1) Zouheir Guédri – Mars 2012 congrès BigData Paris 2012
(2) étude IDC sponsorisée par EMC Gartner
Introduction
3
Limites de R
R, logiciel gourmand en ressource système (CPU et RAM)
Limite d’allocation de ressources pour les programmes sous
Windows (2Go de Ram)
Importation de bigdata entraine une saturation de l’espace mémoire
Temps de calcul conséquents (pas assez d’espace RAM pour exécuter
autre chose)
Introduction
4
Limites de R
R, logiciel gourmand en ressource système (CPU et RAM)
Limite d’allocation de ressources pour les programmes sous
Windows (2Go de Ram)
Importation de bigdata entraine une saturation de l’espace mémoire
Temps de calcul conséquents (pas assez d’espace RAM pour exécuter
autre chose)
Introduction
5
La demande de traitement de Bigdata
croit de façon exponentielle…
Quelles sont les solutions à proposer ?
Présentation de 3 packages
Manipulation de grosses bases de données
dplyr
Visualisation
bigvis
acinonyx
Objectifs communs : faciliter les analyses sur des bases de
données importantes (facilité de manipulation, améliorer la
rapidité, visualisation….)
Introduction
6
Manipulation des donnéesI
7
Présentation du package dplyr
Installation du package dplyr
Jeu de données hflights
Manipulations de données avec dplyr
Source : https://github.com/hadley/dplyr
Manipulation des données
Manipulation des données Visualisation des données
8
Package dplyr créé par Hadley Wickham (encore en
expérimentation)
Package dplyr = Amélioration des outils les plus utilisés dans le
package plyr (ddply, dlply et ldply) et adaptation à plusieurs
format de données
Package plyr créé par Hadley Wickham (publié le 06/12/12
sur le CRAN)
dplyr supporte les formats de données : data frames, data tables,
SQLite,…
Pour consulter l’aide du package dplyr :
help(package=dplyr)
9
Présentation du package dplyr
Manipulation des données Visualisation des données
Installation du package dplyr
dplyr nécessite Rtools :
http://cran.r-project.org/bin/windows/Rtools
pour vérifier que Rtools fonctionne bien :
find_rtools() ## affiche TRUE
dplyr peut être installé avec :
install.packages("devtools")
library(devtools)
install_github("assertthat") ## affiche DONE
install_github("dplyr") ## affiche DONE
library(dplyr)
10
Manipulation des données Visualisation des données
Jeu de données hflights
Hflights est le jeu de données inclus dans dplyr
data(package="dplyr")
data(hflights)
?hflights ## pour afficher la description du jeu de données
Tous les vols qui sont partis des aéroports de Houston IAH
(George Bush Intercontinental) and HOU (Houston Hobby) en
2011
227 496 lignes * 21 colonnes
12 variables quali : DayOfWeek, Origin, Dest, Cancelled,…
9 variables quanti : AirTime, ArrDelay, DepDelay, Distance,…
11
Manipulation des données Visualisation des données
Quelques fonctions pratiques !
Pour afficher une partie du jeu de données :
head(hflights,n) ## affiche les n premières lignes
tail(hflights,n) ## affiche les n dernières lignes
## par défaut n=6
print(hflights[150:155,]) ## affiche les 5 lignes demandées
group_by () de dplyr : permet de faire des opérations sur des
sous-groupes de variables
12
Manipulation des données Visualisation des données
Manipulations de données avec dplyr
Fonctions principales
Pour consulter l’aide des 5 fonctions :
?manip
13
Fonctions Définitions
select() Sélectionner un sous-groupe de variables
filter() Sélectionner un sous-groupe de lignes
mutate() Ajouter de nouvelles colonnes
summarise()Pour calculer des statistiques simples sur les
variables
arrange() Réordonner les lignes
Manipulation des données Visualisation des données
Manipulations de données avec dplyr
Exemple d’utilisation de filter() :
14
Manipulation des données Visualisation des données
Cancelled : cancelled indicator:
1 = Yes, 0 = No
CancellationCode : reason for cancellation:
A = carrier, B = weather, C = national air system, D = security
Manipulations de données avec dplyr
Exemple d’utilisation de summarise() :
Exemple d’utilisation de group_by() et summarise () :
15
Manipulation des données Visualisation des données
Manipulations de données avec dplyr
Exemple d’utilisation de la fonction arrange () :
16
Manipulation des données Visualisation des données
Manipulations de données avec dplyr
Manipulations de données avec dplyr
La fonction do() permet d’utiliser n’importe qu’elle autre
fonction de R sur les données
Comparaison du temps d'exécution de la fonction PCA avec et
sans do() grâce à la function system.time () :
17
Manipulation des données Visualisation des données
Bilan sur le package dplyr18
Manipulation des données Visualisation des données
Avantages Inconvénients
Fonctions principales faciles à
comprendre et à utiliser
Difficile à installer
Peu d’informations pour l’installation
Plusieurs formats de données
supportés
Pas compatible avec plyr pour
l’instant
Plus rapide que le package plyr Gain de temps mais est-il vraiment
important ?
Possibilité d’utiliser d’autres fonctions
(lm, PCA,…)
Aide disponible depuis R
Visualisation des donnéesII
19
Présentation du package bigvis
Présentation du package acinonyx
Comparaison des deux packages de visualisation
Visualisation des données
Transferts des données Visualisation des données
20
Informations sur le package
Très récent, disponible depuis début 2013
Auteur : Hadley Wickham
Encore en expérimentation
Description
Outils permettant l ’analyse exploratoire rapide de bigdata
Techniques d’agrégation et de lissage
Source : R-bloggers, Visualize large data sets with the bigvis package
Package bigvis
Manipulation des données Visualisation des données
21
Installation du package bigvis
Actuellement non disponible sur CRAN
Installation
Installer Rtools
Installer le package devtools
Installer le package bigvis
Source : https://github.com/hadley/bigvis
Manipulation des données Visualisation des données
22
install.packages("devtools")
find_rtools()
Sys.getenv(‘PATH’)
install_github("bigvis")
Package bigvis
Il est également utile d’installer le package ggplot2 pour
pouvoir utiliser les fonctions de représentations graphiques de bigvis
Test avec le jeu de données movies du package bigvis
130 456 individus (films) x 14 variables (titre, année de sortie,
budget, durée, …)
Visualisation des données
23
Manipulation des données
Package bigvis
Fonctions principales
bin() et condense() : permettent d’avoir un résumé compact
des données
Manipulation des données Visualisation des données
24
Package bigvis
Fonctions principales
bin() et condense() : permettent d’avoir un résumé compact
des données
bin(x, width = find_width(x),origin = find_origin(x, width), name = NULL)
Convertit les variables en objet « bin », nécessaire pour
les manipuler avec les autres fonctions
Manipulation des données Visualisation des données
25
Package bigvis
Fonctions principales
bin() et condense() : permettent d’avoir un résumé compact
des données
bin(x, width = find_width(x),origin = find_origin(x, width), name = NULL)
Convertit les variables en objet « bin », nécessaire pour
les manipuler avec les autres fonctions
condense(..., z = NULL, summary = NULL, w = NULL,drop = NULL)
Condense des données de type « bin » en agrégeant des
individus
Ressort la variable condensée et une variable .count par
défaut
Manipulation des données Visualisation des données
26
Package bigvis
Exemple d’utilisation de condense()
standardise() : s’utilise lorsqu’on travaille sur les effectifs
(.count), permet de passer aux fréquences
standardise(x, margin = integer())
Manipulation des données Visualisation des données
27
Package bigvis
smooth() : permet de lisser un data.frame condensé
smooth(x, h, var = summary_vars(x)[1], grid = NULL,type = "mean", factor = TRUE)
Manipulation des données Visualisation des données
28
h : argument permettant de
jouer sur le niveau de
lissage de la courbe
Package bigvis
autoplot() : permet de créer des graphes sur des données
condensées (besoin du package ggplot2 )
autoplot(x,var = last(summary_vars(x)), ...)
peel() : conserve les proportions spécifiques du jeu de
données tout en enlevant les zones de densité faible, augmente
la lisibilité des graphes
peel() : peel(x, keep = 0.99, central = NULL)
Manipulation des données Visualisation des données
29
Package bigvis
Exemples de graphiques obtenus avec autoplot() :
Manipulation des données Visualisation des données
30
peel()
Package bigvis
Graphique obtenus avec plot() :
Manipulation des données Visualisation des données
31
Package bigvis
3 à 4 secondes
pour obtenir le
graphe
Exemples de graphiques obtenus avec autoplot() :
Manipulation des données Visualisation des données
32
Package bigvis
Moins de 1
seconde pour
obtenir le graphe
Exemples de graphiques obtenus avec autoplot() :
Manipulation des données Visualisation des données
33
Package bigvis
Il existe également différentes fonctions permettant de calculer
les statistiques descriptives basiques des jeux de données
condensés :
weighted.median()
weighted.quantile()
weighted.sd()
weighted.var()
…
Manipulation des données Visualisation des données
34
Package bigvis
Savez-vous d’où vient le nom du package … ?
Package acinonyx35
Manipulation des données Visualisation des données
Savez-vous d’où vient le nom du package … ?
Package acinonyx36
Manipulation des données Visualisation des données
Simon Urbanek
Mise à disposition des utilisateurs en septembre 2009
Page officielle sur le CRAN en septembre 2011
Qu’est ce que c’est ?
Nouveau système de gestion d’interfaces graphiques de haute
performance (iplot Extreme), pour visualiser et explorer
d’importantes bases de données
Package de R le plus rapide : gestion des graphiques via une
interface de programmation OpenGL
Source : http://www.rforge.net/Acinonyx
Package acinonyx37
Manipulation des données Visualisation des données
Objectifs expérimentaux
Ajouter des modèles statistiques aux graphiques interactifs
Amélioration de la gestion sur systèmes d’exploitations
Windows et Mac
Rapidité et extensibilité aux big data
38
Package acinonyx
Manipulation des données Visualisation des données
Téléchargement et installation
Copier le lien : install.packages(‘acinonyx','http://www.rforge.net/')
Ou téléchargement du fichier zip sur ce même site
Chargement
library(acinonyx) dans la console R
39
Manipulation des données Visualisation des données
Package acinonyx
icontainer : mettre plusieurs graphiques dans une seule fenêtre
ibar, ihist, ilines, iplot : graphiques dynamiques avec
coloration des points x/y en rouge
ihist.default,ilines.default, iplot.default : fonction pour
rajouter des options sur le graphique
move, move.iVisual : fonctions pour bouger des objets au sein
de la fenêtre graphique
add.container, add.iplot,… : ajout d’objets à un objet déjà
existant
40
Package acinonyx
Manipulation des données Visualisation des données
ibar
41
Package acinonyx
Manipulation des données Visualisation des données
ihist
42
Pour mettre de la couleur
Pour passer en spineplot
Package acinonyx
Manipulation des données Visualisation des données
ihist
43
Déplacer le graphique dans sa
propre fenêtre (objet, x, y)
Package acinonyx
Manipulation des données Visualisation des données
icontainer
44
Placer 2 graphiques dans une
seule fenêtre
Package acinonyx
Manipulation des données Visualisation des données
icontainer
45
Position de l’objet, vecteur
c(x,y,largeur,hauteur)
Comportement de l’objet lorsque l’on
modifie la taille de la fenêtre initiale
Package acinonyx
Manipulation des données Visualisation des données
ipcp
46
Graphique de coordonnées parallèles :
chaque ligne correspond à un individu,
chaque axe correspond à une variable
Package acinonyx
Manipulation des données Visualisation des données
ipcp
47
Sélection des variables
Package acinonyx
Manipulation des données Visualisation des données
Comparaison des deux packages
Manipulation des données Visualisation des données
48
Avantages
bigvis Graphiques esthétiques et lisibles grâce à l’utilisation du
package ggplot2
Aide disponible depuis R
acinonyx Visualisation des grosses données rapide
Téléchargement et installation aisée
Facilité d’utilisation des fonctions (similaires à iplot )
Communs Outils performants pour avoir une première idée de la
structure d’un gros jeu de données
49
Sélection des variables
Temps : 1 min. 30
Package iplot
Comparaison des deux packages
Manipulation des données Visualisation des données
50
Sélection des variables
Package acinonyx
Comparaison des deux packages
Manipulation des données Visualisation des données
Temps : 20 sec.
51
Inconvénients
bigvis Difficultés pour installer le package
Certaines fonctions ne fonctionnent pas bien
(best_h() -> temps de calcul très long !)
acinonyx Plateforme de développement: MacOs. Limite de certaines
configurations sur Windows
Absence de certains graphiques de base (boite à
moustaches, mosaïques)
Graphiques simples et peu esthétiques pour des
présentations publiques
Commun Très peu de documentation (encore en expérimentation)
Comparaison des deux packages
Manipulation des données Visualisation des données
Bilan
52
Utilisation de fonctions standards sur des grosses bases de
données possible grâce aux packages présentés
Manipulation simple même si les packages sont encore en
expérimentation : peu de documents sur l’utilisation des différentes
fonctions, installation compliquée
Beaucoup de nouveautés à explorer…
Bilan
53
Beaucoup de nouveautés à explorer…
rmr : analyses statistiques par la méthode de « Hadoop MapReduce »
(calculs effectués en parallèles, distribués dans différents clusters)
filehash : analyses statistiques en utilisant les fonctions classiques de R sur
un jeu de donné stocké sur le disque (et pas en mémoire RAM)
ff : idem filehash
Bigmemory : pour l’importation, la manipulation de bigdata, allocation des
données dans une mémoire partagée
Revolution Analytic’s RevoScaleR : classification sur des bigdata
« Programming with BigData in R » (pbdR) : série de packages pour utiliser
des bigdata http://r-pbd.org
Bilan
54
Complément
55
En combinant les fonctions autoplot(), peel() et standardise()
:
Manipulation des données Visualisation des données
56
Package « bigvis »
Tableau length x year
-> profils lignes