useR!2019: Retours sur la conférence useR de l’année

Vous avez manqué useR!2019 ?

Dommage pour vous…

C’était une conférence géniale !

Des tutoriels, des conférences, (repas), à la rencontre d’autres utilisateurs de R, j’ai juste eu une première expérience formidable (:

R crowd

Dans cet article, je vais faire un résumé de mes longues notes.

Je ne sais pas si ça vous sera utile, mais au moins ça vous montrera ce que vous avez manqué !

Tutoriels

La première journée est consacrée aux tutoriels..

..que j’ai failli manquer !

Easyjet a décidé d’annuler mon vol la veille. Il n’y avait pas de train et pas d’autre vol avant deux jours plus tard !!

Alors j’ai fait ce que j’avais à faire.

J’ai loué une voiture et j’ai conduit toute la nuit pour NE PAS MANQUER les tutoriels !

Donc, je suis arrivé un peu fatigué. Et un peu stressé.

Parking >:(
J'ai passé trop de temps dans ce parking pour essayer de trouver le magasin de location

Mais ça s’est bien passé.

J’ai commencé avec :

Le Machine Learning automatique et transparent avec H20 dans R.

Tutoriel h2o

Je voulais participer à ce tutoriel parce que j’avais entendu parler de H2O et d’AutoML, mais je ne les avais jamais essayés.

J’ai entendu dire que les meilleurs Kagglers utilisaient ces deux programmes pendant les compétitions.

Le tutoriel était top, car la progression était lente et régulière, et nous avons eu assez de temps pour nous mettre à la pratique.

À la fin du tutoriel, j’ai pu essayer h2o sur un ancien projet.

Maintenant, je l’utilise dans un autre projet pour un client, et il est très performant !

La plus grande force de h2o pour moi, c’est qu’il permet l’utilisation d’un tas de modèles pour obtenir d’excellents résultats rapidement.

Contrairement à caret dans R, h2o utilise Java pour effectuer tous les calculs et tout est parallélisé. Ça permet un calcul beaucoup plus rapide.

De plus, en utilisant AutoML, je suis capable de trouver un modèle super performant en un rien de temps (enfin, je dois simplement le laisser travailler tout seul.)

Évidemment, c’est loin d’être parfait.

Premièrement, les modèles ne sont pas facilement interprétables. C’est pourquoi des outils sont fournis pour utiliser LIME, dont je n’avais jamais entendu parler auparavant.

Mais vous pouvez toujours exécuter des modèles interprétables tels que GLM ou CART avec h2o.

Deuxièmement, ça fonctionne bien si votre algorithme est simple, comme la régression ou la classification.

D’après mon expérience, c’est rarement aussi simple que ça. La plupart du temps, on doit faire preuve de créativité et développer des modèles plus complexes, parfois plusieurs couches de modèles. H2o ne vous aidera pas à être plus créatif.

Si vous êtes curieux, vous pouvez trouver des tutoriels sur ce repo Github.

Docker pour la Data Science : R, ShinyProxy et bien plus.

Tutoriel sur Shinyproxy

Je n’ai pas appris grand-chose dans ce tutoriel.

J’aurais aimé avoir la possibilité d’installer Shinyproxy pendant le tutoriel (c’était mon souhait), mais il était plus axé sur l’information que sur la pratique.

Bon, j’en ai quand même appris un peu plus sur Shinyproxy. Et un petit peu sur Docker.

J’ai quand même utilisé les 3 heures passées dans la salle pour pratiquer, installer et tester Shinyproxy avec Docker.

À la fin du tutoriel, j’y étais presque, et quelques efforts supplémentaires m’ont amené à mettre en place Shinyproxy avec succès quelques jours plus tard. Et plus important encore, comprendre chaque étape du processus.

De plus, j’ai appris à développer des applications Shiny avec un simple container Docker (sans Shinyproxy), qui s’avère pratique avec golem, un package récemment développé pour aider à concevoir des applications Shiny.

Si vous voulez tester Shinyproxy, essayez : Premiers pas avec ShinyProxy.

Qui était présent ?

Une chose que j’ai trouvée très intéressante pendant la conférence est le nombre de présentations faites par les agences R.

On ne les appelle pas nécessairement comme ça. Ce sont des équipes de plusieurs développeurs de R qui proposent des activités de consulting pour d’autres entreprises.

Un peu comme moi ! Sauf qu’eux, ils sont plusieurs.

Ils viennent donc à cette conférence, et l’une des façons avec lesquelles ils peuvent se faire connaître, c’est de faire des présentations.

Ils nous ont présenté les outils open-source qu’ils ont développés, les succès avec les clients, etc.

C’est très intéressant d’entendre parler d’autres acteurs dans le domaine et d’être inspiré par eux !

Alors j’ai découvert :

Cynkra, une société zurichoise de consulting spécialisée dans la gestion des données, avec une forte orientation sur R

Selon leur site Internet, ils fournissent 3 services majeurs :

  • Tidy up : un atelier de 2 jours pour apprendre les bases du data cleaning et du reporting
  • R Consulting : aide à la sélection des bons outils, à la mise en œuvre des solutions, à la formation et à la révision du code.
  • Open-source : contribuer à la communauté des utilisateurs de R

Ils ne sont encore que 2 personnes. Cette société est fondée récemment, au début de 2018.

Leur site web a l’air soigné et ils ont de nombreux projets open-source : cynkra

MiraiSolutions, une autre société de consulting basée à Zurich

MiraiSolutions est également basée à Zurich, sauf qu’elle est bien plus grande.

J’ai pu voir sur leur site qu’ils étaient 14, et ils semblent couvrir plus de sujets data.

Ils se spécialisent dans R, Python, Julia, et même Matlab !

Je viens d’apprendre d’ailleurs qu’ils sont les développeurs de XLConnect. Je ne sais pas si vous avez déjà essayé de travailler avec des fichiers Excel, mais c’est l’un des meilleurs packages disponibles pour ça.

ils ont publié leur post useR avant le mien, voici donc un lien vers leur article si vous voulez avoir un autre extrait de la conférence : Rapport sur useR! 2019

Appsilon, une solution complète de consulting en Data Science

Je connaissais déjà Appsilon après avoir échangé quelques tweets avec eux.

Ils sont basés en Pologne et sont très actifs dans l’univers de l’open-source.

Vous ne connaissez peut-être pas leurs packages, même si vous êtes un développeur Shiny, mais les voilà :

  • shiny.semantic pour améliorer l’aspect visuel de votre application Shiny
  • shiny.dashboard pour créer un dashboard (n’en avez-vous pas marre de voir toujours le même shinydashboard ?)
  • shiny.router pour faire du routage d’URL (aucune idée sur le sujet)
  • shiny.i18n pour créer une application multilingue
  • shiny.info pour afficher les informations de diagnostic pendant le développement de l’application

Ma diapo préférée de la conférence de Filip Stachura (PDG d’Appsilon) était celle-ci :

Appsilon

car elle montre en quelques mots les plus grandes potentialités de Shiny :

  • Prototypage rapide
  • Structure propre
  • Aucune restriction

Il a écrit un récapitulatif d’useR!2019 et je vous invite donc à y jeter un coup d’œil également : récapitulatif useR!2019 Toulouse.

Jumping Rivers, Formation et consulting en Data Science

Basée en Écosse, Jumping Rivers est une équipe de 9 personnes spécialisée dans le consulting et la formation sur l’environnement R.

Elle est même un partenaire officiel de RStudio, ce qui est très rare à ma connaissance (il n’y a que 10 partenaires selon la Page Partenaires RStudio).

J’aime la présentation détaillée des études de cas de leurs travaux précédents.

Chose qui reste à faire sur mon site web…

Vous pouvez en savoir plus sur leur site : https://www.jumpingrivers.com/.

ThinkR, Expertise et Formation sur l’environnement R

ThinkR est, à ma connaissance, la seule compagnie spécialisée dans R en France.

En tout cas la seule parmi celles de plus d’une personne.

Comme ils avaient un petit bureau sur place, ils étaient super accessibles pour discuter avec eux.

J’ai pu obtenir quelques stickers, et même interviewer leur PDG, Vincent Guyader ! Je publierai l’interview dans quelques jours.

Ils ont un blog avec d’excellents articles que je recommande vivement (vu que je tombe régulièrement sur eux lors de mes requêtes de recherche concernant le R sur Google) : R Task Blog.

Packages à essayer

L’un des éléments les plus communs de toutes les conférences useR!2019 est la présentation d’un nouveau package (pas toujours si nouveau que ça d’ailleurs).

La communauté est probablement plus active que jamais.

Il y a de plus en plus de packages sur CRAN.

Et encore plus qui restent dans les dépôts Github.

Voici la liste des packages que je veux essayer dès que j’en aurai l’occasion :

`shinyEventLogger` : Le Logging dans les applications Shiny

Lien présent sur le CRAN Vignette ou Tutoriel
shinyEventLogger yes Vignette

Il n’y a pas tant d’outils que ça pour le logging dans les applications Shiny.

Vous avez trois options :

  1. Parcourir les fichiers dans /var/log/shiny-server/ où votre application est hébergée (lire comment déployer l’application sur votre serveur).
  2. Ajouter des instructions Print chaque fois que vous voulez afficher quelque chose dans le log file.
  3. Ou utilisez le package shinyEventLogger.

Vous pouvez facilement enregistrer la valeur d’une variable, les résultats de tests, etc.

Ensuite, les logs peuvent être affichés dans la console R (enregistrés dans les fichiers log de /var/log/shiny-server/), mais aussi affichés dans la console Javascript ou même enregistrés dans une database.

Ça rend la recherche dans les logs BEAUCOUP plus facile par rapport à la méthode par défaut.

On pourrait imaginer par exemple enregistrer la durée d’un événement, comme la durée d’un calcul complexe.

Comme de plus en plus de personnes utilisent votre application, ou comme de plus en plus de données sont stockées dans votre base de données, ce calcul peut prendre de plus en plus de temps. Et on peut configurer une alerte e-mail lorsqu’un certain seuil est dépassé.

`promises` : Abstractions pour la programmation asynchrone basée sur les promesses

Lien présent sur le CRAN Vignette ou Tutoriel
promises Yes Vignette

La programmation asynchrone permet d’exécuter un code R en arrière-plan sans interrompre votre session en cours.

C’est super utile lorsque vous voulez rendre une application Shiny plus légère !

Le point le plus important n’est pas vraiment d’accélérer le calcul (parce que c’est une sorte de parallélisme), mais surtout de pouvoir continuer à naviguer dans l’application Shiny, ou dans votre session R, pendant que le calcul complexe se fait en arrière-plan.

C’est d’autant plus important lorsqu’il y a plusieurs utilisateurs dans la même session Shiny, car UN SEUL calcul complexe peut bloquer PLUSIEURS utilisateurs en même temps.

Je ne l’utilise pas beaucoup, même si je pense qu’elle a un potentiel énorme.

Il y a beaucoup de vignettes donc.. Commencez par là !

`future` : L'Unified Parallel et le Distributed Processing dans R pour tous

Lien présent sur le CRAN Vignette ou Tutoriel
future Yes Vignette

Avez-vous déjà essayé d’exécuter des calculs en parallèle dans R ?

C’est pas super facile.

Et c’est difficile de comprendre comment ça marche exactement.

Le but de future est de rassembler toutes les bibliothèques sur le calcul parallèle existantes en une seule. Les autres bibliothèques restent utilisées, bien sûr, mais future offre une API unique pour accéder à ces bibliothèques. C’est super facile à utiliser.

J’ai déjà essayé de l’utiliser une fois pour des travaux récents, mais il se trouve que la parallélisation a pris plus de temps que le calcul séquentiel.

Bon.. parfois la parallélisation n’est pas toujours plus rapide !

Ce n’est pas une raison pour ne pas l’essayer !

`shinymeta` : Enregistrer et exposer la logique d'une application Shiny en utilisant la métaprogrammation

Lien présent sur le CRAN Vignette ou Tutoriel
shinymeta No Tutorial

shinymeta est encore tout nouveau et a été présenté pour la première fois par Joe Cheng à la conférence useR!2019.

Il nous a dit qu’il avait choisi ce sujet pour sa conférence plénière sans avoir de solution au préalable.. et que jusqu’à une semaine avant la conf, ils étaient toujours pas sûr de présenter quelque chose de propre.

Donc.. L’icône “lifecycle: experimental” n’est pas là pour rien, je suppose.

De quoi s’agit-il ?

Le but de shinymeta est d’extraire la logique d’une application Shiny et de l’exécuter en dehors de Shiny. Par exemple dans un rapport RMarkdown ou même dans un script R simple.

On enregistre ce qu’on fait avec l’application, puis on extrait automatiquement le code pour reproduire les étapes sans l’application Shiny. Donc, on va :

  • Créer les variables appropriées (lorsqu’on utilise les widgets)
  • Extraire la logique (qui permet de créer un graphique ou un tableau)

Résultat : vous disposez déjà d’un script R autonome qui peut reproduire le même graphique ou tableau.

Génial pour rendre l’analyse Shiny reproductible !

`polite` : Soyez sympa sur le web

Lien présent sur le CRAN Vignette ou Tutoriel
polite No Tutorial

J’ai fait ma part de web scraping.

Que faites-vous lorsque vous avez besoin de données provenant d’un site web ?

Vous allumez votre RSelenium et commencez le scraping comme un fou fou !

Eh bien.. non.

Le but de polite est de scraper poliment en cherchant la permission, en y allant lentement, et en ne demandant jamais deux fois.

Je recommande de lire le tutoriel pour apprendre les bonnes pratiques, et de les utiliser à partir de maintenant.

Du moins, c’est ce que j’ai l’intention de faire la prochaine fois que j’aurai besoin de scraper des données !

`SuperLearner` : Prédiction Super Learner

Lien présent sur le CRAN Vignette ou Tutoriel
SuperLearning Yes Vignette

Je n’ai pas assisté à cette conférence, mais j’ai très envie d’essayer ce package !

Je suis tellement frustré par le fait que tant de packages différents ont chacun leur propre syntaxe différente quand on fait du machine learning en R.

Donc quand un package comme SuperLearning se présente et me dit qu’il y a un autre moyen..

J’ai envie d’essayer.

`auth0` : Authentification sécurisée dans Shiny avec Auth0

Lien présent sur le CRAN Vignette ou Tutoriel
auth0 Yes Tutorial

L’une des demandes les plus courantes que je reçois de mes clients une fois que j’ai créé une application Shiny pour eux est :

Comment protéger mon appli Shiny ?

Ils veulent qu’elle soit accessible de partout, donc ouverte au public sur Internet, mais ils ne veulent pas dévoiler leurs secrets professionnels à tout le monde.

Une solution : L’authentication.

Il existe de nombreuses façons pour configurer l’authentification d’une application Shiny de nos jours.

L’une d’entre elles est d’utiliser auth0.

Je l’ai déjà configuré et c’est assez facile. Maintenant, je découvre qu’ils m’ont rendu la tâche encore plus simple en me proposant ce package.

Aucune excuse pour ne plus configurer une authentification dans vos applis !

Au final

C’était la première fois que je participe à une conférence useR. Je ne savais pas à quoi m’attendre, mais la conférence a largement dépassé mes attentes !

Il y a beaucoup de choses que je voulais aborder dans cet article, mais.. c’est déjà pas mal long.

En gros, j’ai beaucoup appris. Et maintenant j’ai une longue liste d’autres choses à apprendre.

C’était top de rencontrer autant d’utilisateurs de R. Maintenant j’ai une bonne idée de qui travaille dans cet monde.

J’ai hâte d’assister au prochain événement.

J’espère vous voir là-bas !

Mis à jour :

Commentaires

Laisser un commentaire

Les champs obligatoires sont marqués *

Chargement...

Les commentaires sont validés manuellement. La page va se rafraîchir après envoi.