De retour de useR!2017

Après avoir traîné nos baskets du côté d’Anglet, nous sommes montés dans un nouveau train en direction Bruxelles. Eh oui, nous n’allions pas manquer l’édition 2017 de useR!, alors qu’elle était juste à côté de chez nous ! 

Retour sur 10 choses qu’on a ramené de Bruxelles.

`apply` est mort, longue vie à `purrr` !

Nous étions en immersion dans le tidyverse dès le mardi matin, avec un tuto sur {purrr} donné par Charlotte Wickham. Vous vous souvenez, nous vous avions déjà parlé de ce package sur le blog. Pour les nouveaux arrivants, ce paquet d’Hadley Wickham (frère de Charlotte, vous l’aurez compris) vise à remplacer les usages de la famille des apply, bien souvent complexes et dont le résultat est parfois imprévisible.

Avec {purrr}, vous êtes certain de votre output : map_df vous envoie un data.frame, map_chr une chaîne de caractères, map_int un entier, et ainsi de suite. Si le format de l’output n’est pas respecté, vous aurez tout simplement une erreur. Pas de (mauvaise) surprise, on vous le dit !

En trois heures de tutoriel, Charlotte a eu l’occasion de nous offrir un tour d’horizon des fonctions à base de map et de walk. Malheureusement, pas de « advanced purrr » au programme : notre hôte n’a pas pu faire le point sur les invoke_map, quitely, safely et autres… La prochaine fois, peut-être ?

Retrouvez la présentation sur GitHub. 

purrr useR

 

Du rvest, et encore du rvest

Restons un instant dans la thématique purrr, avec le talk « Scraping data with rvest and purrr ». En 20 minutes, Max Humber est venu présenter comment scraper un site web, pour gagner « some fake money ». Ça vous paraît tordu ? Et pourtant, c’est facile, il suffit de suivre le guide.

Et pendant ce temps, Romain jouait lui aussi avec {rvest}, en récoltant les données du site useR!. Résultat : quelques lignes de codes, et un data.frame contenant les détails des participants qui avaient rempli leur profil. Alors ? vous vous êtes trouvés ?

Shiny everywhere

« ShinyProxy », « Developing and deploying large scale Shiny applications for non-life insurance », « Too good for your own good: Shiny prototypes out of control », « papr: Tinder for pre-prints, a Shiny Application for collecting gut-reactions to pre-prints from the scientific community », « How we built a Shiny App for 700 users? »… sans surprise, Shiny était partout — ce sont pas moins de 27 résultats qui ressortent d’une recherche sur la base de données des vidéos de la conférence. On peut croiser les doigts : un tel engouement finira de convaincre les derniers (s’il en reste) Shiny-sceptiques.

Le NLP, ce truc dans le vent

Les praticiens un peu plus old-school l’appellent « TAL » (traitement automatique des langues), les initiés « NLP » (Natural Language Processing), et le reste du monde « text-mining », toujours est-il que ce sous-domaine du data-mining était à l’honneur à useR!2017, avec pas moins de 5 conférences sur le sujet :

  • « Introduction to Natural Language Processing with R », un workshop animé par Arnold Taylor et Lauren Tilton, à l’origine de {cleanNLP}, un package de text-mining mariant avancées dernier cri des labos de recherche (notamment avec l’interface Java coreNLP, de l’université de Stanford) et philosophie du tidyverse.
  • « A Tidy Data Model for Natural Language Processing » — mêmes joueurs, jouent encore ! En plus du workshop, le package {cleanNLP} a eu le droit à un talk de 18 minutes le mercredi.
  • « Text mining, the tidy way » : Julia Silge est venue présenter {tidytext}, un package croisant lui aussi NLP et philosophie tidyverse. Mais vous le connaissiez, on vous en a déjà parlé !
  • « Text Analysis and Text Mining Using R » : un rapide tour d’horizon des méthodes de text-mining « old school » (i.e : pas toujours tidy), avec un aperçu de {tm}, et un focus sur {quanteda}.
  • « Deep Learning for Natural Language Processing in R ». Un brin plus technique, cette conférence d’une vingtaine de minutes a été l’occasion de découvrir l’utilisation d’un Convolution neural network pour le NLP : une méthode de deep learning particulièrement efficace pour la catégorisation de textes, ou encore pour l’analyse de sentiments.

Des données, ce n’est pas que des graphes ou des tableaux

Ça peut parfois être de la musique, voire pourquoi pas des camemberts ou des Kebabs ?

Thomas Levine at User

Sans oublier qu’il est aussi possible de faire appel à R pour concocter la recette parfaite de bière. Si si, c’est possible !

Il faut qu’on approfondisse R6

{R6}, si vous n’en avez pas encore entendu parler, c’est bien simple : il s’agit du package le plus téléchargé, si l’on s’en tient aux chiffres de rdocumentation. Bon, il faut avouer que le fait qu’on retrouve des dépendances à {R6} dans {dplyr} et dans {shiny} n’y est sans doute pas pour rien.

Plus qu’un énième système d’orienté objet, {R6} est d’abord et surtout un package pour des objets plus légers, et des exécutions de fonctions plus rapides — une solution à envisager quand on travaille avec de gros volumes, ou qu’on s’intéresse à la performance. Bref, il faut qu’on creuse tout ça !

Docker est dans la place

Nous vous le disions à notre retour d’Anglet, Docker s’est taillé la part du lion chez les développeurs du monde entier. Confirmation a été faite à Bruxelles, où plusieurs talks sont venus démontrer l’importance de Docker dans le paysage R actuel.

  • « Clouds, Containers and R, towards a global hub for reproducible and collaborative data science », une nouvelle présentation sur RosettaHub, qui fonctionne avec des containers Docker.
  • « Rc$^2$: an Environment for Running R and Spark in Docker Containers », du R, du Spark, et du Docker.
  • « Automatically archiving reproducible studies with Docker », une conf sur containerit,  permettant de packager un environnement complet avec R et ses dépendances dans un conteneur. La reproductibilité est à portée de code !

Et ça, c’est sans oublier les intervenants qui ont packagé leur workshop dans un docker !

R, choix précieux dans l’industrie…

Qui n’a pas déjà joué à Candy Crush ? Ne rougissez pas, tout le monde s’est au moins une fois lancé dans la destruction de bonbons à la force du pouce. Et donc, si nous vous parlons de ce jeu aujourd’hui, c’est parce qu’à useR!2017, Xavier Guardiola est venu en coup de vent (ou plutôt en coup d’éclair (lightning talk… vous l’avez ?)) parler de l’usage de R dans l’équipe data science de chez King, éditeur de jeux pour smartphone.

candy crush

Et parmi les autres interventions notables des industriels : Nestlé R&D, et leur application Shiny pour le design de biscuit gluten free.

… mais aussi pour le fun !

Why so serious? R, ce n’est pas que des statistiques ! C’est ce qu’est venu nous prouver David Smith, en présentant le package {miner}, un projet pour interfacer R et Minecraft. Eh oui, vous en aviez rêvé, ils l’ont fait : vous pouvez maintenant envoyer des ggplots dans un univers en brique !

R, 25 ans de passion, qui ne sont pas près de s’arrêter !

La conclusion de useR!2017 a été portée par Uwe Ligges, l’un des piliers du CRAN (si vous avez séché Twitter, il prononce « see ran », non pas « kran », à la grande surprise de la plupart des spectateurs). Vous le connaissez très certainement si vous avez déjà déposé un package sur le CRAN.

Durant cette heure de conférence de clôture, Uwe est revenu en détail sur le processus de validation mis en place par le CRAN : des débuts « artisanaux », où tout était vérifié à la main, aux méthodes actuelles hautement automatisées — et cela peut se comprendre, vu le nombre de packages proposés chaque jour. Et même si Uwe n’est arrivé à la maintenance Windows du CRAN « que » en 2003, ce sont tout de même près de 15 ans passés au sein de la communauté de l’Open Source. Une belle histoire, n’est-ce pas ?

Et pour que cela continue, rendez-vous aux prochains useR! :

  • Brisbane 2018
  • Toulouse 2019
  • Boston 2020

Vous prenez vos billets 😉 ?


À propos de l'auteur

Colin Fay

Colin Fay

Data scientist & R Hacker


Commentaires


À lire également