MANIPULATION ET VISUALISATION DE GROSSES BASES DE DONNÉES AVEC R Jeudi 10 octobre 2013 CHAIGNEAU Alicia GAZAN Rozenn DAUFOUY Camille JOURDAN Sandra
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, ) (1) Zouheir Guédri Mars 2012 congrès BigData Paris 2012
Introduction 3 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 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 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) La demande de traitement de Bigdata croit de façon exponentielle Quelles sont les solutions à proposer?
Introduction 6 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.)
I Manipulation des données 7
Manipulation des données 8 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
Présentation du package dplyr 9 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)
Installation du package dplyr 10 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)
Jeu de données hflights 11 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,
Manipulations de données avec dplyr 12 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
Manipulations de données avec dplyr 13 Fonctions principales Fonctions select() filter() mutate() summarise() arrange() Définitions Sélectionner un sous-groupe de variables Sélectionner un sous-groupe de lignes Ajouter de nouvelles colonnes Pour calculer des statistiques simples sur les variables Réordonner les lignes Pour consulter l aide des 5 fonctions :?manip
Manipulations de données avec dplyr 14 Exemple d utilisation de filter() : 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 15 Exemple d utilisation de summarise() : Exemple d utilisation de group_by() et summarise () :
Manipulations de données avec dplyr 16 Exemple d utilisation de la fonction arrange () :
Manipulations de données avec dplyr 17 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 () :
Bilan sur le package dplyr 18 Avantages Fonctions principales faciles à comprendre et à utiliser Plusieurs formats de données supportés Plus rapide que le package plyr Possibilité d utiliser d autres fonctions (lm, PCA, ) Inconvénients Difficile à installer Peu d informations pour l installation Pas compatible avec plyr pour l instant Gain de temps mais est-il vraiment important? Aide disponible depuis R
II 19
Transferts des données 20 Présentation du package bigvis Présentation du package acinonyx Comparaison des deux packages de visualisation
Package bigvis 21 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 22 Installation du package bigvis Actuellement non disponible sur CRAN Installation Installer Rtools Installer le package devtools Installer le package bigvis install.packages("devtools") find_rtools() Sys.getenv( PATH ) install_github("bigvis") Source : https://github.com/hadley/bigvis
Package bigvis 23 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, )
Package bigvis 24 Fonctions principales bin() et condense() : permettent d avoir un résumé compact des données
Package bigvis 25 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
Package bigvis 26 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
Package bigvis 27 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())
Package bigvis 28 smooth() : permet de lisser un data.frame condensé smooth(x, h, var = summary_vars(x)[1], grid = NULL,type = "mean", factor = TRUE) h : argument permettant de jouer sur le niveau de lissage de la courbe
Package bigvis 29 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)
Package bigvis 30 Exemples de graphiques obtenus avec autoplot() : peel()
Package bigvis 31 Graphique obtenus avec plot() : 3 à 4 secondes pour obtenir le graphe
Package bigvis 32 Exemples de graphiques obtenus avec autoplot() : Moins de 1 seconde pour obtenir le graphe
Package bigvis 33 Exemples de graphiques obtenus avec autoplot() :
Package bigvis 34 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()
Package acinonyx 35 Savez-vous d où vient le nom du package?
Package acinonyx 36 Savez-vous d où vient le nom du package?
Package acinonyx 37 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 acinonyx 38 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
Package acinonyx 39 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
Package acinonyx 40 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
Package acinonyx 41 ibar
Package acinonyx 42 ihist Pour passer en spineplot Pour mettre de la couleur
Package acinonyx 43 ihist Déplacer le graphique dans sa propre fenêtre (objet, x, y)
Package acinonyx 44 icontainer Placer 2 graphiques dans une seule fenêtre
Package acinonyx 45 icontainer 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 46 ipcp Graphique de coordonnées parallèles : chaque ligne correspond à un individu, chaque axe correspond à une variable
Package acinonyx 47 ipcp Sélection des variables
Comparaison des deux packages 48 Avantages bigvis acinonyx Communs Graphiques esthétiques et lisibles grâce à l utilisation du package ggplot2 Aide disponible depuis R Visualisation des grosses données rapide Téléchargement et installation aisée Facilité d utilisation des fonctions (similaires à iplot ) Outils performants pour avoir une première idée de la structure d un gros jeu de données
Comparaison des deux packages 49 Package iplot Temps : 1 min. 30 Sélection des variables
Comparaison des deux packages 50 Package acinonyx Temps : 20 sec. Sélection des variables
Comparaison des deux packages 51 Inconvénients bigvis acinonyx Commun Difficultés pour installer le package Certaines fonctions ne fonctionnent pas bien (best_h() -> temps de calcul très long!) 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 Très peu de documentation (encore en expérimentation)
Bilan 52
Bilan 53 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 54 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
Complément 55
Package «bigvis» 56 En combinant les fonctions autoplot(), peel() et standardise() : Tableau length x year -> profils lignes