Les préparatifs
Mercredi 8 avril 2015 au soir, préparation aux deux jours de conférence. La check list n’a pas beaucoup changé par rapport à l’année dernière :
- Batterie du téléphone portable chargée à bloc,
- Batterie du lap top idem,
- Bloc-notes + stylos,
- Tenue confortable,
- Lunette (ça c’est nouveau! :)),
- Mail permettant de retirer mon badge.
Ensuite vient l’organisation de la journée, établir le programme des conférences auquel je souhaite assister. Et c’est là que tout se complique.
En effet le grand changement, par rapport à 2014, c’est le lieu ou se tiendra la conférence.
L’année dernière, Devoxx France se tenait au Marriott, cette année c’est au palais des Congrès que se déroule l’évènement.
Beaucoup plus de conférences proposées. les choix deviennent difficiles :). En effet là ou l’année dernière 5 conférences se déroulaient en même temps, cette année, il y aura jusqu’à 8 conférences en parallèle.
Après un arbitrage sévère, le programme est enfin prêt (même si je sais que tout est encore mutable. :P)
Il ne me reste plus qu’à me coucher tôt pour être frais et dispo le lendemain du grand jour.
L’arrivée porte Maillot fait son petit effet. Lorsque l’on rentre dans le palais des Congrès que l’on monte au niveau 2, la conférence prend une nouvelle dimension par rapport aux années précédentes, c’est impressionnant.
1800 développeurs passionnés sont réunis, cela représente 300 personnes supplémentaires par rapport à l’année dernière. L’augmentation du nombre de convives ne se ressent pas trop étant donné l’espace disponible.
Les Keynotes
Keynote de l’équipe Devoxx France
Bref, rentrons dans le vif du sujet. La journée commence par une première keynote tenue par Nicolas Martignole, Antonio Goncalves et Zouheir Cadi, les fondateurs de la conférence française.
Durant cette keynote, ils font un bilan sur le chemin parcouru pour aboutir à cette édition 2015.
Ils font également une annonce importante; la Conférence JMaghreb rejoint la famille Devoxx et devient Devoxx Maroc. Comme les autres membres de la famille cette conférence sera un rendez-vous incontournable des développeurs, passionnés et entrepreneurs.
Au programme des sessions, des ateliers pratiques, des tables rondes, hackatons autour des sujets techniques liés au web, mobile, devops, gaming, sécurité.
Devoxx Maroc se tiendra au Mégarama de Casablanca du 16 au 18 novembre 2015.
Pour ceux qui souhaiterait tenter l’aventure de Devoxx Maroc en tant que speaker, le CFP ouvre le 1er mai prochain.
Le futur de la robotique personnelle
La seconde keynote, intitulé robot humanoïde pour tout le monde, a été présentée par Rodolphe Gelin sur le thème du futur de la robotique personnelle.
Il est directeur de la recherche dans la société Aldebaran.
Il commence par présenter différents robots développés par Aldebaran Nao, Pepper, Romeo.
Pour illustrer le thème de sa keynote, il nous propose une vidéo mettant en situation le premier robot de la liste (Nao). On voit une grand-mère interagir avec le robot.
Elle commence par l’appeler et lui demander de venir. Ensuite, elle lui demande les dernières informations importantes de l’actualité. Le robot s’exécute et lui énumère la liste. Lorsque la dame veut avoir plus de détails sur un titre, elle le demande naturellement au robot qui lui donne plus d’informations.
Cette saynète montre comment les robots pourront être utiles dans un futur proche dans le cadre de personne âgées pouvant être isolée socialement.
Au-delà de la diffusion des informations, Nao pourra aussi servir de boîte mail interactive et aussi répondre au téléphone. Sur ce dernier point, Rodolphe Gelin insiste sur le fait, que cette fonctionnalité peut, par exemple, éviter des accidents.
En règle générale, les personnes agées se précipitent sur le téléphone lorsqu’elles reçoivent un appel et que c’est une des causes principales de chute. Avec le robot, cela limitera ces situations puisqu’il pourra prendre l’appel et éviter à la personne de faire un déplacement précipité.
A la fin de cette vidéo (fiction), le speaker précise que la situation montrée n’est pas encore possible. Aujourd’hui, le principal frein à la fluidité dans les interactions entre humain et robot dans une situation courante de la vie de tous les jours est la difficulté pour le robot à entendre et interpréter les messages oraux qui ne lui sont pas adressés explicitement.
Par exemple, vous êtes dans votre canapé, le robot est dans une autre pièce vous lui demandez quelque chose, il aura des difficultés à savoir qu’on s’adresse à lui directement et surtout entendre l’ordre. La raison principale à ce problème est la pollution sonore (ventilateur CPU, lorsqu’il parle, les bruits périphériques, etc).
Rodolphe Gelin se veut rassurant, ces obstacles ne sont évidemment pas insurmontable mais il reste tout de même du travail pour atteindre cette cible.
Les perspectives des travaux menés permettront de faire en sorte que le robot puisse évoluer au contact de la personne qu’il accompagnera. Il apprendra au fur et à mesure du comportement de la personne et à termes à réfléchir par rapport à ses habitudes.
Il pourra également, surveiller des comportements suspects comme une chute, un endormissement trop fréquent, etc) et dans ces situations critiques prévenir autrui.
D’ailleurs les organismes d’assurance s’intéressent particulièrement à ce projet. Il permettra de rationaliser les situations d’urgence.
Un point sur lequel Rodolphe a insisté est que l’on pourrait penser que ce petit robot isolerai socialement les personnes âgées. A cela, il répond que bien au contraire, le robot pourrait également se soucier de cet aspect et créer ce lien social en créant le contact avec d’autres personnes (proposer des appels, proposer des envois de mail, etc).
Ensuite, il nous a montré plusieurs petites vidéos présentant comment le robot pourrait apprendre de son environnement (au niveau des sons, des mouvements, etc)
Enfin, Rodolphe Gelin conclut par le fait que tous les apprentissages réalisés par les robots devront être partagés pour permettre de capitaliser sur ces connaissances précieuses.
Aussi, il a mis en avant les problématiques de sécurité et le fait que les robots devaient absolument être protégé d’une manière ou d’une autre du piratage étant donné la place qu’il prendrait dans le quotidien des humains.
Sur ce dernier sujet, il implique la responsabilité du développeur par rapport au fait qu’un robot est un outil et comme tous outils, il peut servir à faire des choses bien, ou pas…
Bien qu’elle ait une teinture de science-fiction (assez proche) cette keynote était très intéressante et ouvre beaucoup de perspectives sur l’avenir.
La problématique du contrôle des technologies de l’information
La troisième keynote est présentée par Eric Filiol. Directeur du centre de recherche de l’ESIEA, il est un expert français en cryptologie et virologie informatique. Il a été lieutenant-colonel de l’armée de terre française.
On entend de plus en plus de faits mettant en cause les libertés d’expression et les actions visant à imposer un contrôle sur les technologies de l’information.
Eric rappelle, que depuis 60ans les technologies de l’information sont faites par des développeurs … mais que depuis 15 ans, elles sont régies par des personnes n’y comprenant rien, les Hommes politiques.
Si l’on regarde l’histoire passée, la gouvernance était organisée de façon pyramidale ou le sommet envoyait des ordres à la base. Les technologies de l’information (internet) ont changé cette organisation verticale; L’information circule beaucoup plus facilement et peu à peu s’impose un mode collaboratif.
Les strates politiques n’arrivent pas à prendre le train marche et plutôt que de s’adapter et d’accompagner ce mouvement, ils préfèrent en prendre le contrôle et de mettre sous surveillance les agissements des citoyens. Pour un état cette prise de contrôle abusive est un aveu de faiblesse.
Plusieurs faits marquant de tentatives de contrôle comme Cocom, Itar, arrangements de Wassenaar, etc.
Toutes ces actions sont légitimées, par nos politiques, par les faits terroristes et autres tragédies marquantes de l’actualité.
Eric Filiol cite une phrase historique du Cardinal de Richelieu : « Qu’on me donne 6 lignes écrites à la main de n’importe quel honnête homme j’y trouverai de quoi le faire pendre« .
En laissant les choses faire par les groupes politiques, on s’expose à une dictature de la donnée, une perte des valeurs démocratiques fondamentales et une perte du libre arbitre.
Eric Filiol nous donne une nouvelle citation : « Pas de libre arbitre -> pas de liberté … Pas de vie privée -> pas de libre arbitre« .
Par cette phrase, il nous invite à rester vigilant sur l’importance de garder un droit sur sa vie privée et de défendre fermement nos données privées. (même si l’on peut considérer que l’on n’a rien à cacher).
Il note les évolutions positives qu’il faudrait engager pour aller dans ce sens :
- Le respect de la vie privée,
- Inscription de ce respect dans la constitution,
- Renforcer le rôle du juge d’instruction,
- Créer un comité d’éthique.
Enfin il conclut en remettant au centre le développeur.
Il explique que le développeur à une part de responsabilité dans cette ‘bataille‘. Il est le gardien de la technologie (limiter les bugs, les backdoors, la qualité, etc) dans ce sens une responsabilité morale.
###Reading and Writing in 20 Years
Le dernière keynote est présentée par Dan Allen project leader sur le projet asciidoctor.
Dan est venue parler de l’importance des écrits dans l’histoire de l’humanité.
Toutes les formes d’écritures depuis la nuit des temps ont permit de comprendre comment nos ancêtres vivaient.
Au tout début, les écrits étaient des dessins, puis l’écriture est arrivée, ensuite c’est l’imprimerie et maintenant l’ère du numérique avec les outils informatiques.
Jusqu’à une vingtaine d’années en arrière, les livres étaient la source principale de la connaissance, aujourd’hui ce support physique est en ‘déclin‘.
Ce déclin n’est absolument pas synonyme que l’homme s’est arrêté d’écrire bien au contraire, il n’a jamais été autant productif en matière d’écriture. Ce qui a changé c’est le support d’écriture.
Au-delà du simple faite d’écrire, ce qui permet de conserver cette mémoire à travers les âges c’est le partage de cette information.
Aujourd’hui, si le partage des écrits est facilité par le support numérique, il se pose quand même la question du format de partage. Le standard adopté (en général) est le format PDF, bien que celui-ci a été créé plus pour l’impression. Ce que Dan propose est plutôt la mise en place d’un format pivot permettant l’écriture, l’échange et à terme l’impression. Mais quel pourrait être ce format ? 😉
Un autre problème pouvant interférer est le langage. En effet, un écrit rédigé dans une langue, peut-être traduit dans plusieurs autres languages. Le problème est la précision avec laquelle la traduction est faite. On peut perdre du sens sur l’idée originelle et par conséquent induire des erreurs pour les générations futures.
En conclusion, Dan Allen encourage l’écrivain qui est en nous a continuer d’écrire et partager sans retenue. (l’idéal serait aussi de la faire en Asciidoctor 😛 )
Les conférences
Voici une synthèse des conférences auxquelles j’ai assisté. Le thème global des conférences que j’ai pu suivre s’oriente sur des sujets Big Data :
- Machine learning et régulation numérique
- Algorithmes distribués pour le Big Data
- Machine Learning avec Spark, MLLib et D3.js
- Un Spotify à la maison avec Spark & Cassandra (Hands on)
- Stockage et analyse temps réel d’événements avec Riak chez Booking.com
ainsi que des sujets l’agilité et le dev front:
- Développeur sous influence,
- Stratégie de mise en place de revues de code (Quickies),
- L’expérience utilisateur est importante pour nous,
- React, une autre façon de penser vos composants graphiques
et enfin deux sujets plus orientés tools et dev backend :
- Les monoïdes démystifiés, en Java et avec des verres de bière
- Applications Concurrentes Polyglottes avec Vert.x
Ci-dessous différents compte-rendus des conférences que j’ai tout particulièrement apprécié.
Machine learning et régulation numérique
C’est la première présentation à laquelle j’ai assisté. Autant dire que cela commençait très très bien. Aux commandes, deux excellents speakers : Guillaume Laforge et Didier Girard.
Ils sont venues nous parler du machine learning et nous présenter ses concepts ainsi que les rouages de cette discipline.
En introduction, ils ont montré que chaque jour nous subissons le machine learning au travers de nos services favoris :
- Gmail et la gestion du spam,
- Amazon et son système de recommandations,
- Netflix et la gestion de leur catalogue, un système de recommandations également (50% du contenu regardé est issu d’une recommandation),
- FaceBook sélectionne l’information proposée par un moteur de recommandations.
Donc qu’est-ce que le machine learning?
Le machine learning est la science qui permet à un algorithme d’apprendre sans avoir été explicitement programmé pour cela. Cette science se base sur un ensemble d’algorithmes permettant de classifier, regrouper, détecter des comportements communs entre des données.
Ils ont fait une présentation synthétique des différents types d’algorithmes mis en jeu :
- Algo Supervisé : Regression, Classification
- Algo Non supervisé : Clusterisation, séparation des sources
La présentation s’est articulée autour de plusieurs commandements qui font le coeur de cette matière.
1er commandement – Tout Données tu collecteras
Il important d’avoir un jeu de données très important pour la création d’un modèle fiable qui puisse être généralisé.
2ième commandement – Les données tu analyseras
Une fois collectées, les données doivent être analysées pour leur donner un sens. Durant cette phase il ne faut pas tomber dans le piège de la corrélation et de la causalité. Comme par exemple le lien entre la consommation de chocolat et le faite d’obtenir un prix Nobel.
3ième commandement – N’apprend pas ce que tu sais déjà
Un modèle va apprendre au plus facile. Plutôt que de dire à mon modèle apprend les choses évidentes. On va supprimer les données que l’on connait déjà, ainsi le modele apprendra ce que je n’arrive pas à modéliser.
4ième commandement – Tes données tu pré traiteras
Il est important de pré traiter les données afin de faciliter l’analyse. Par exemple, pour faire de la reconnaissance faciale. On va appliquer à la photo un traitement avant de lancer la reconnaissance (enlever la couleur, faire crop, redimensionner, augmentation des contrastes)
5ième commandement – Ton algorithme tu choisiras
Pour faire l’analyse des données, il faudra choisir l’algorithme le plus adapté à la situation :
- les plus proches voisins
- Support vector machine
- Random forest – Decision tree
- Neutral network
- Back propagation
- Deep learning
6ième commandement – De l’intuition tu auras
En visualisant les données,le data scientiste, sur la base de son expérience, va être capable de percevoir des tendances.
7ième commandement : Ton système tu entraineras
Lorsque l’on créé un modèle il faut être capable de l’entrainer. Sur l’ensemble du jeu de données à disposition il faut faire une répartition : 60% pour l’apprentissage et 40% pour faire la généralisation (c’est proportion peuvent varier en fonction du contexte).
8ième commandement : Par coeur tu n’apprendras pas
Il faut faire attention au sur-apprentissage. Si le système apprend trop longtemps, il risque de finir par apprendre par coeur et les résultats seront faussés lors de la généralisation.
Didier et Guillaume nous ont énuméré une liste d’outils utilisés pour le machine learning :
- R,
- Weka
- Octave
- Google Prediction
- Apache Mahout
- Prediction.io
- Mad.io
- Scikit Learn
Avec cette présentation, le tour d’horizon est complet et peut servir de base pour commencer à aborder la science du machine learning.
Ils nous rappeler au terme de cette présentation le slogan suivant : BigData is scoring you.
Donc il faut rester vigilant face aux informations que l’on nous suggère. Elles ont tendance à nous cloisonner dans l’information que l’on perçoit.
Développeur sous influence
Cette conférence était proposée par Guillaume Duquesnay. Guillaume est un coach agile @ dévelopeur vétéran.
Fort de son rôle de coach agile, Guillaume a fait un état de lieu des problèmes que l’on peut rencontrer au sein d’une équipe. La frustration qu’un développeur peut ressortir parce que les chefs ne sont pas réceptifs à la nécessité d’investir sur tel ou tel sujet ou lorsque le vétéran de l’équipe impose une dictature technique au sein de l’équipe sans prendre en compte les idées de chacun.
Ces situations amènent des points de blocage ou le développeur sent qu’il est cantonné à son périmètre et ne peut en aucun cas influencer son entourage.
Être influent, c’est quoi? : l’art de changer les choses au quotidien, faire changer la trajectoire
Pour cela, il faut :
- Avoir quelque chose à dire,
- Savoir confronter son avis avec les autres,
- Savoir à qui s’adresser, ou quand l’ouvrir,
- Savoir ce que l’on fait là.
Savoir être influent va de pair avec l’expérience acquise.
Il nous décrit ensuite les différents points en y appliquant des bonnes pratiques.
Ai je quelque chose à dire ?
Il faut parler dans l’intérêt du projet. Maitriser les impacts sur le projet des propositions que l’on est en train de faire.
Se confronter aux autres avis?
Il est important de toujours dire ce que l’on pense, et ne surtout pas intérioriser. Cette transparence impose de respecter des règles de diplomatie :
- Parler du code et uniquement du code,
- Ne pas parler des gens,
- Pas de reproches,
- Plus on s’approche des coupables plus on s’éloigne de de la solution.
Une règle importante à retenir : est que si l’on attaque quelqu’un, il va se défendre.
Quand tenir sa position?
Une nouvelle lié à l’intégrité, ne pas changer d’avis sous l’influence d’un manager. Egalement, s’il n’y a pas de nouvel élément rationnel dans la discussion alors il n’y a pas de raison de changer d’avis.
Savoir et apprendre à avoir tord
Reconnaitre son erreur, c’est accepter d’apprendre de nouvelles choses. C’est être également capable de sortir de sa zone de confort. Savoir avoir tord c’est également oublier la pression sociale, avoir tord c’est être faible.
Guillaume nous donne quelques références pour améliorer nos échanges.
- Chercher à comprendre avant d’être compris
- Observer l’autre pour s’observer soi
- La conscience de soi
Parler aux chefs?
Pour s’adresser à l’instance décisionnaire, il faut savoir identifier qui pourrait être un sponsor de poids à même de défendre votre projet.
Pour accrocher la personne, commencer par la conclusion, en proposant de développer s’il elle le souhaite.
Trouver les endroits stratégiques pour rencontrer la personne cible par pure coïncidence (pause cigarette, pause café, etc).
Pas de démarche en sous marin
Il ne faut surtout pas mettre les gens au pied du mur, en ayant fait tout seul dans son coin. Les personnes se sentiraient pas impliquées et vous n’auriez pas leurs soutiens pour la suite.
Que fais je là ? / quelle est ma position?
Il est important dans cette démarche de savoir ce que l’on fait là. Guillaume fait état de deux raisons :
- Dépendance à la situation (Financiere, affective)
vs
-
Recherche de performance
Il faut savoir trancher.
Je veux tout changer!
Il ne faut pas se disperser et choisir ses batailles. Tout mener de front ne sert à rien. Il faut également savoir apprécier les succès qu’ils soient grands ou petits.
En conclusion, devenir influent est un travail de longue haleine. c’est quasiment un choix de carrière qu’il faut bâtir patiemment.
###L’expérience utilisateur est importante pour nous
Cette conférence a été présentée par Florence Herrou. L’objectif de cette présentation est de nous faire découvrir l’expérience utilisateur lors de la conception d’applications métier.
Pour commencer Florence par nous rappeler l’UX n’est pas liée uniquement à l’ergonomie. Ce domaine est plus vaste et touche directement le besoin métier. La mise en place d’une UX est un processus itératif (prototype présenté aux utilisateurs, récolte des impressions, boucle).
Elle cite d’ailleurs Steeve Jobs en donnant sa définition : l’UX c’est répondre au besoin
Pour illustrer ses propos, Florence nous montre un exemple ou deux professeurs (issus du monde star wars) tentent d’utiliser un outil ou le design a été bien pensé d’un côté et mal de l’autre. Elle met en évidence les conséquences d’un mauvais design et les difficultés que cela engendre dans l’expérience utilisateur.
Ensuite, elle présente l’approche cycle en V d’un projet. Elle explique que cette méthode conduit généralement le projet à l’échec. L’effet tunnel entre l’analyse du besoin et la livraison empêche tout évolution du besoin potentiel ou pire ne permet pas de détecter une incompréhension de la demande.
L’approche agile permet d’identifier rapidement s’il y a une divergence de compréhension entre le besoin exprimé et ce qui a été réalisé.
Ce qu’il est important de garder à l’esprit, c’est que l’utilisateur à toujours raison, il est le seul à pouvoir valider si l’UX répond au besoin ou non.
Par conséquent il faut absolument le garder au centre des débats.
Pour savoir si le design que l’on est en train de mettre en place est correcte ou non, il faut en permanence le tester. Pour cela il existe plusieurs techniques :
- En commençant par du papier/crayon avec les utilisateurs
- Soumettre au user/PO où quelqu’un pour voir si déjà c’est bien compris et clair.
- Faire de l’AB testing
- Après lancement, faire des questionnaires simples et rapides aux utilisateurs.
Florence nous des conseils sur comment susciter l’interêt (conscient ou inconscient) chez l’utilisateur avec un bon design.
Obtenir un comportement désiré :
* En proposant un workflow évident de décision dans l’application
* Agir sur des déclencheurs internes ou externes de l’utilisateur
* Gamifier l’application (créer de l’engagement, faciliter la progression, créer de nouvelle habitude, quête de niveaux et de gratifications), par contre un excès peut entrainer une décrédibilisation.
* Le storytelling : présenter l’application comme une histoire.
En conclusion, Florence nous rappelle l’importance de ne pas négliger l’UX et d’avoir à coeur de bien adresser le besoin exprimé par les utilisateurs. Sans quoi, l’application aura vocation à rester au stade de projet.
Machine Learning avec Spark, MLLib et D3.js
Cette conférence a été présenté par Hayssam Saleh. Les slides de la présentation sont disponibles ici
En introduction, Hayssam nous explique au travers d’un exemple concret les motivations à mettre en oeuvre du machine learning. Il commence par nous exposer la liste des cas d’utilisation classiques :
- Faire de la recommandation de produit,
- Classification de contenu en groupe prédéfinis,
- Regroupement de contenu similaire,
- Recherche d’association/pattern dans les actions et le comportement,
- détection de fraude et d’anomalie,
- Identification de topic clefs (politique).
Pour accompagner son propos, il nous propose de dérouler un exemple concret. Le cas d’utilisation qu’il a pris est le suivant :
Estimer si je peux prêter de l’argent à quelqu’un dans le cadre d’un prêt bancaire
Ci-dessous les paramètres du problème :
- Entrée : Prédicteurs /vars indépendantes (salaire, statut marital, propriétaire…)
- Sortie : Réponse / label (variable dépendante).
Si l’on devait répondre à cette question pour une personne, la démarche serait simple. Mais dans notre cas, il faut traiter un volume de personne très important.
Les solutions envisageables :
- 1 ) embaucher beaucoup de gens pour faire l’analyse (chère, beaucoup d’attente)
- 2 ) Mise en place d’un moteur de règles Jboss rules (les règles se multiplient et sont difficiles à maintenir, évolution des clients, maintenance)
- 3 ) Machine Learning (précis, autonome, scalable)
Pour mettre en place cette solution, l’outil retenu est Spark associé à la librairie MLib. Pourquoi cet outil?
Dans le monde du BigData, deux univers se côtoient : celui du Data Scientist et celui du développeur.
Dans le cas du data Scientist on parlera d’analyse d’investigation et pour le développeur d’analyse opérationnelle. Selon les cas, les besoins ne sont pas les mêmes :
Analyse d’investigation |
Analyse opérationnelle |
Echantillon de données |
Données de production |
Poste de travail |
Cluster serveur |
Requête Ad hoc offline |
Sollicitation online continue |
Métrique : la précision |
Métrique : le temps de réponse |
Facilité de développement |
Performance |
Spark permet de rapprocher ces deux mondes par la simplicité de sa mise en oeuvre.
Ensuite, il est nécessaire de préparer les échantillons de données.
- Phase cruciale, elle doit être faite de façon très rigoureuse,
- Prendre un échantillon des données des scoring qui ont déjà été réalisés,
- Diviser en 2 lots d’échantillons,
- Un lot pour le développeur pour construire un modele et tester son modele,
- L’autre à destination du statisticien pour vérifier la validité du modèle créé
Le modele est considéré satisfaisant lorsque le niveau de précision est satisfaisant.
Si la performance du modèle n’est pas bonne, il y a trois causes possibles :
- Les prédicteurs sont mal choisis (biaisé) -> Changer les prédicteurs
- L’échantillon n’est pas représentatif ou l’algo de ML n’est pas représentatif (overfitting)
- Solution : réduire les prédicteurs car il n’a aucun rôle et perturbe l’algorithme,
- L’algo de ML est inadapté (underfitting) -> passer par une étape de visualisation
- Aussi, le cumul des trois.
Pour détecter qu’un algorithme est inadapté il faut passer par une étape de visualisation.
Hayssam a poursuivi sa présentation en nous donnant des informations sur les algorithmes disponibles dans MLLib.
- Classification & Regression
- Prédire le label de nouvelles données à partir des labels des données existantes.
- Clustering : apprentissage non supervisé
- Prédire le label de donnée existant à partir de leurs prédicteurs
- Collaboratif filtering
- Prédire l’intérêt d’un utilisateur pour un item (eg Amazon).
- Frequent pattern matching
- Extraire les produits les plus souvents achetés ensemble dans le même panier.
- decision Tree (arbre de décision)
- Recherche de la meilleure condition de segmentation en s’appuyant sur l’impureté.
(* Impureté : Mesure la qualité de la séparation.*)
Ensuite, Hayssam à travers des screenshoots de code, nous montre la simplicité de mettre en oeuvre un algorithme (ici le decision Tree) dans Spark MLLib. Voici les différentes étapes présentées :
- Chargement des données à partir d’un fichier csv
- Recherche de l’arbre
- Evaluation de la performance
Chaque étape est présentée sous forme d’un slide et à chaque on trouve très peu de ligne de code pour là réaliser.
La dernière partie du talk est consacrée à la visualisation.
La visualisation est une étape importante dans l’élaboration d’un modèle. Pour avoir la représentation graphique des résultats Hayssam utilise une librairie javascript basée sur D3.js : statapps.
Cette librairie propose plusieurs types de graphique permettant de comprendre et analyser les données.
En conclusion, le triptyque Spark, MLLib, D3.js sont une base pertinente et efficace pour faire du machine learning.
Spark/MLLib permet de briser les murs qui sépare le DataScientist et le développeur (une sorte de Devops).
###React, une autre façon de penser vos composants graphiques (Tools in action) **
Ce Tools in Action est proposé par Mathieu ANCELIN. Les slides sont disponibles ici
Il nous présente de cette session la librairie développée par FaceBook : React. L’objectif de React est de rendre des vues et répondre à des événements.
La librairie a été mis en Open Source depuis 2013. Les cibles adressées par React sont de grosses applications javascript avec des données qui changent tout le temps.
Le framework se base sur une approche déclarative et orientée composant autonome, composable, réutilisable.
Les principaux utilisateurs de React (en prod)
- instagram,
- FB,
- FlipBoard,
- Yahoo,
- Netflix (Actuellement, c’est une page web surtout les devices. d’ici à la fin de l’année un passage en full React est prévu.)
Les concepts
Les fonctionnalités
En conclusion, cet outil semble très complet et fournit de très bonnes performances comparativement à ses concurrents :
* Ember 7 frames par second
* Angulae : 6-7 frames par second
* React : 14 frame / s (par defaut)
* Reactive.js 17 frame/s
La dernière version de React support ES6 et supporte également le rendu de WebComponent. L’écosystème est très large (intégration bootstrap, matériel design, highCharts,etc) et peut-être également utilisé pour du rendu natif sur device mobile.
Conclusion
Ces deux jours de conférence ont été très riches et très denses. Les conférences étaient de qualité. La diversité des sujets proposés permettait de couvrir un spectre assez large de connaissance.
Le deuxième jour, j’ai pu assister à un Hand’s on sur Spark et Cassandra, ce qui m’a permis de mettre les mains dans le code.
D’une manière générale, l’organisation de l’événement a été parfaitement menée. La grande nouveauté de cette année, le lieu de la conférence a contribué à la réussite de Devoxx France.