Introduction à la Data Science

Eric Dupuis

On en entend parler de plus en plus de nos jours, des termes comme « big data » ou « machine learning » commencent même à être connus du grand public. Si la problématique est présente chez les grands du web comme facebook ou google depuis assez longtemps, l’utilisation de toutes ces techniques commence à se démocratiser. La république en marche aurait même utilisé certaines de ces techniques afin de mieux cibler son électorat pour faire du porte à porte lors des dernières élections par exemple. Mais qu’est-ce exactement que la data science et quel(s) domaine(s) recouvre-t-elle ?

 

1-    La Data Science : un domaine vaste

On retrouve un grand nombre de notions qui font partie, de près ou de loin, de la Data Science.

data science 2

A première vue, cela peut sembler un peu compliqué. Essayons d’y voir plus clair en définissant plus précisément 2 de ses expressions emblématiques.

 

2-    Big Data ou Data Science ? Kesako ?

Le « big data » désigne l’ensemble des techniques permettant l’exploitation et l’utilisation (analyse, tri, accès…) de très gros volumes de données. Ce domaine, très vaste, passe du stockage des données lui-même (avec des technos noSQL comme cassandra ou mongoDB), aux plateformes de traitements permettant une puissance de calcul suffisante pour traiter de tels volumes notamment en parallélisant les calculs (hadoop, mapReduce), des techniques d’analyse et de tri (statistiques, réseaux de neurones…).

La data science, désigne l’ensemble des techniques qui permettent d’analyser et de trier les données. Elle mélange modélisation mathématique et statistique ainsi qu’informatique. La data science s’applique donc aux données en général, pas spécifiquement au big data et c’est elle qui va nous intéresser principalement dans ce billet.

Si la majeure partie des techniques de data science existent depuis une trentaine d’années, ce n’est que récemment que nombre d’entre elles ont commencé à porter leurs fruits. Essentiellement grâce au big data. En effet, de nombreux modèles complexes nécessitent une grande quantité de données (et la puissance de calcul qui va avec) afin de révéler leur potentiel.

 

3-    Une approche avant tout mathématique

De façon très basique, la data science consiste à modéliser le comportement de données afin de prédire ou de trier ces données. Selon que le modèle choisi sera plus ou moins bien adapté aux données, on obtiendra des résultats plus ou moins intéressants.

Le domaine étant assez vaste, on va ici se limiter à l’étude de l’apprentissage automatique (machine learning).

Avant d’aller plus loin, il est nécessaire de préciser un peu ce que l’on entend par donnée. De manière générale, une donnée est une information qui concerne la réalité. Pour simplifier les choses on regroupe en général ces données autour d’un objet d’étude (par exemple un individu) et on rassemble alors ces données dans un tableau avec des colonnes décrivant l’objet de l’étude (par exemple si on s’intéresse aux individus, on pourra avoir des colonnes telles que nom, prénom, age, sexe, taille, poids, couleur des yeux, des cheveux…) et des lignes chacune décrivant un cas différent de l’étude.

En science des données, on distinguera essentiellement 2 types de données : les données discrètes (au sens statistique du terme) qui ont un nombre fini (raisonnable) de valeurs possibles, et les données continues qui peuvent prendre un nombre infini de valeurs différentes (ou très grand).

A suivre….

Dans le prochain article, nous rentrerons encore plus dans le détail de la Data Science et je vous exposerai ainsi les modèles et prédictions liés.

 

facebooktwittergoogle_plusmail

Bien commencer avec ReactJS

Vivien

ReactJS, on en parle beaucoup aujourd’hui. J’ai voulu voir ce que ça donnait.

Contrairement à Angular, ce n’est pas un framwork JavaScript mais une librairie. Cela induit donc qu’on a pas réellement de structure bien définie pour commencer. C’est d’ailleurs souvent le fouillis sur internet et on trouve de tout. Ce qui est parfois déroutant pour les nouveaux arrivants.
Je vous propose donc un petit “kit” que je me suis composé pour bien démarrer.

Avant de commencer, je pars du principe que vous avez déjà sur votre environnement :
– NodeJS (plus npm) => https://nodejs.org/en/
– Cygwin si vous êtes sur windows => http://cygwin.com/install.html

1- Venant du monde Java, je n’avais aucune connaissance sur comment gérer un projet JavaScript. En java, nous avons Maven que nous configurons via un pom.xml. En JavaScript, il y a npm. Et à la manière de maven, on passera ici par un fichier pour la configuration (Evidemment d’autres outils existent, mais nous utiliserons ici npm). Créez donc un fichier package.json à la racine de votre dossier :

Vous retrouvez dans ce fichier toutes les dépendances nécessaires à notre projet.

La première chose à laquelle je tenais, c’est d’utiliser la nouvelle norme ECMAScript 6. Même si les navigateurs ne la gèrent pas encore, c’est la norme de demain. Et venant du monde Java, je ne peux qu’apprécier cet effort de “typage” qui arrive dans le monde javascript.
Pour cela, nous allons utiliser BabelJS. C’est un outil qui nous permettra de compiler notre code JSX es6 au format es5 aujourd’hui géré par les navigateurs.

2- Configuration de notre projet pour utiliser babel et es6 (es2015) => Créer un fichier .babelrc à la racine

Ensuite, je tenais également à m’éviter les contraintes de lancer manuellement la compilation du code. Pour cela, nous allons utiliser Webpack. C’est un outil qui gère parfaitement la compilation à la volée. Concrètement, à chaque fois que vous sauvegardez un fichier, webpack le compile directement. Vous n’avez plus qu’à rafraîchir votre navigateur pour voir votre modification.
Mais pourquoi s’arrêter là ? Allons plus loin en faisant en sorte que le navigateur se rafraîchisse automatiquement. C’est ce que nous propose React Hot Loader

3- Configuration de webpack => Créer un fichier webpack.config.json à la racine

Ce fichier contient :
entry => Point d’entrée utilisé par notre serveur. Comme nous utilisons webpack-dev-server en mode hot replace, on rajoute les références, puis le fichier de départ (index.jsx)
output => Où seront compilé nos sources
plugins => Les plugins pour notre serveur. Ici le plugin pour recharger notre page à chaud
module => Les modules pour notre serveur. Contient les fichiers à prendre en compte et les loaders à utilisé.

4- Configuration du serveur node qui utilisera webpack => Créer un fichier server.js à la racine :

 

Et nous voilà avec notre configuration terminée. Avec ça vous avez de quoi commencer à développer en ReactJS. Vous trouverez évidemment pleins d’autres tuto sur internet présentant d’autres configurations. Celle-ci présente simplement un point de départ assez complet.

Passons maintenant à un petit “Hello, World!” pour tester notre configuration.
Pour mieux comprendre la suite, je vous invite à regarder le tutoriel Getting Started sur le site de react. Nous allons simplement adapter le code pour utiliser es6.
La première étape est de créer notre page html. Créez donc un fichier index.html à la racine

Ensuite créons un fichier index.jsx que l’on placera dans un dossier src.

Et le fichier App.jsx

Vous noterez la syntaxe qui diffère de ce que vous trouvez sur le tutoriel de React. Nous avons utilisé la nouvelle norme es6.
Maintenant que notre projet est enfin terminé, il ne nous reste plus qu’à essayer.

Dans votre dossier lancer les commandes suivantes :

Ouvrez votre navigateur sur http://localhost:3000. Vous devriez voir s’afficher Hello, world!
Changer maintenant le texte et regardez la magie s’opérer :)

N’hésitez pas à suivre le tutoriel complet dispo ici : https://facebook.github.io/react/docs/tutorial.html. Le challenge reste de développer en utilisant la norme es6 :)

facebooktwittergoogle_plusmail

Ingénieur d’études et développement

Vous serez intégré(e) aux équipes de développement Front
Office où vous serez en charge de développements d’applications pour le trading ou la gestion des risques :
Applications en temps réel, à forte volumétrie, fortement découplées les unes des autres.

Compétences / Prérequis recherchés :

Diplômé (e) d’une école d’ingénieurs, idéalement complétée par un Master en finance de marché

Expérience de 2 à 5 ans en conception et développement d’IHM dans les technologies suivantes : c#, .net, wpf, java, swing, ejb, c++, multithreading, sql server, oracle, sybase

Solides connaissances en mathématiques financières

Première expérience réussie dans le domaine de la finance (Front, Middle ou Back Office) et/ou d’un éditeur de logiciel financier

Bon niveau d’anglais

facebooktwittergoogle_plusmail