Introduction

Traitement de données évolutif en R

Simon Urbanek

Member of R-Core, Lead Inventive Scientist, AT&T Labs Research

bigmemory

  • Toutes les données doivent être sur un seul disque
  • Les données doivent être représentées sous forme de matrice
Traitement de données évolutif en R

iotools

  • Données de types variés — p. ex., des data frames
  • Stockées sur plusieurs machines
  • Traite les données par « blocs »
Traitement de données évolutif en R

Traiter un bloc à la fois, en séquence

  • Limite l'usage des ressources en contrôlant la taille des blocs
  • Permet de réutiliser les résultats
Traitement de données évolutif en R

Traiter chaque bloc indépendamment

  • Correspond à scinder‑calculer‑combiner
  • Aucune information ne peut être partagée entre blocs
  • Permet le traitement parallèle et distribué
Traitement de données évolutif en R

Mapper et réduire pour des opérations plus complexes

# Create a random vector
x <- rnorm(100)
# Find the mean
mean(x)
-0.01996644
# Take the sum of chunks of 
# the vector
sl <- Map(function(v) {
         c(sum(v), length(v))}, 
  list(x[1:25], x[26:100]))

# Add the sums and lengths
slr <- Reduce(`+`, sl)
# Find the mean
slr[1]/slr[2]
-0.01996644
Traitement de données évolutif en R

Tout ne se prête pas à scinder‑appliquer‑combiner

Les opérations qui exigent toutes les données à la fois ne peuvent pas être calculées avec l'approche scinder‑appliquer‑combiner.

Exemple : médiane

Traitement de données évolutif en R

Cependant…

Plusieurs algorithmes de régression peuvent s'écrire en termes de scinder‑appliquer‑combiner

Traitement de données évolutif en R

Passons à la pratique !

Traitement de données évolutif en R

Preparing Video For Download...