En 2019, le machine learning est omniprésent, et depuis peu, l’analyse de la données est devenue un véritable métier et une formidable source de valeur pour l’entreprise ou pour les institutions. Au-delà de ces réalités, il y a un langage qui, s’il est petit par le nom, est immense par sa capacité de traitement de data et surtout par son utilisation dans la conception d’algorithmes basés sur les calculs vectoriels : le langage R. Ce slideware vous présente ses principales caractéristiques, son histoire, quelques notions techniques de base et les packages les plus couramment utilisés, avant de conclure par une comparaison avec Python. Maintenant évadez vous, prenez l’R !
Présentation interne chez Devolis : http://www.devolis.com/
Slides présentés à l'occasion du premier meetup Paris R Addicts.
La présentation est destiné à ceux qui ne connaissent pas ou très peu. Elle montre les intérêts et les inconvénients du logiciel ainsi que des éléments de syntaxe et des liens qui aideront l'apprentissage.
data.table est un package qui facilite et accélère les opérations de filtrage, création et mises à jours de variables et d'agrégation d'un tableau de donénes.
Slides présentés à l'occasion du premier meetup Paris R Addicts.
La présentation est destiné à ceux qui ne connaissent pas ou très peu. Elle montre les intérêts et les inconvénients du logiciel ainsi que des éléments de syntaxe et des liens qui aideront l'apprentissage.
data.table est un package qui facilite et accélère les opérations de filtrage, création et mises à jours de variables et d'agrégation d'un tableau de donénes.
Présentation par Timeri Veccella de la bibliothèque R plyr qui étend de manière ergonomique la famille des fonctions "apply" de R.
Présenté lors du 9ème meetup Paris R Addicts.
Code de la démonstration disponible ici : https://github.com/RaddictsParis/demo_plyr
Ce étude vise à présenter la platforme Spark et les opérations (Transformation et Action) d'une RDD. Les points abordés sont Spark motivation, Positionnement de Spark dans l'écosystème BigData, Composants de Spark, Drivers et Workers, RDD & caractéristiques, vue logique de spark, vue globale sur les APIs Spark (dépendance et interaction), les différentes opérations de spark. Chaque opération est sur une fiche (objectif, signature, "à retenir" et exemple de code).
Ce document vise à présenter la programmation fonctionnelle sous Scala.
Les points abordés sont le paradigme fonctionnel, fonction anonyme, fonction d’ordre supérieur, Clôture, fonction partielle, la récursivité, Curryfication. Chaque notion est accompagnée par des exemples.
Présentation des nouveautés apportées par la version 7 du langage C# : Méthodes locales, Tuples, Déconstructeurs, Pattern matching, Variables de sortie, Membres sous forme d’expression, Amélioration de la levée des exceptions, ...
Spark, ou comment traiter des données à la vitesse de l'éclairAlexis Seigneurin
Spark fait partie de la nouvelle génération de frameworks de manipulation de données basés sur Hadoop. L’outil utilise agressivement la mémoire pour offrir des temps de traitement jusqu’à 100 fois plus rapides qu'Hadoop. Dans cette session, nous découvrirons les principes de traitement de données (notamment MapReduce) et les options mises à disposition pour monter un cluster (Zookeper, Mesos…). Nous ferons un point sur les différents modules proposés par le framework, et notamment sur Spark Streaming pour le traitement de données en flux continu.
Présentation jouée chez Ippon le 11 décembre 2014.
Spark meetup www.meetup.com/Paris-Spark-Meetup/events/222607538/
La dernière version de Spark nous apporte une nouvelle API inspirée des librairies et langage d'analyse statistique. Nous verrons comment Spark Dataframe nous permet de simplement manipuler et explorer les données en conservant la scalabilité de Spark RDD
Interface fonctionnelle, Lambda expression, méthode par défaut, référence de...MICHRAFY MUSTAFA
Ce document vise à présenter java 8 et lambda expression.
Les points abordés sont les interfaces fonctionnelles, fonction d'ordre supérieur, lambda expression, référence de méthode et méthode par défaut. Chaque notion est accompagnée par des exemples. Les codes sources seront disponibles sur git.
This course will introduce the core data structures of the Python programming language. We will move past the basics of procedural programming and explore how we can use the Python built-in data structures such as lists, dictionaries, and tuples to perform increasingly complex data analysis.
Ce cours concerne les arbres, structure de données organisant les données de manière hiérarchique dans de nœuds reliés entre eux par une relation parent-enfant. Le cours présente les arbres généraux et ensuite les arbres binaires, où chaque nœud possède 0 ou 2 enfants. Enfin, le cours termine en présentant des algorithmes de recherche et en particulier l'arbre binaire de recherche.
Présentation par Timeri Veccella de la bibliothèque R plyr qui étend de manière ergonomique la famille des fonctions "apply" de R.
Présenté lors du 9ème meetup Paris R Addicts.
Code de la démonstration disponible ici : https://github.com/RaddictsParis/demo_plyr
Ce étude vise à présenter la platforme Spark et les opérations (Transformation et Action) d'une RDD. Les points abordés sont Spark motivation, Positionnement de Spark dans l'écosystème BigData, Composants de Spark, Drivers et Workers, RDD & caractéristiques, vue logique de spark, vue globale sur les APIs Spark (dépendance et interaction), les différentes opérations de spark. Chaque opération est sur une fiche (objectif, signature, "à retenir" et exemple de code).
Ce document vise à présenter la programmation fonctionnelle sous Scala.
Les points abordés sont le paradigme fonctionnel, fonction anonyme, fonction d’ordre supérieur, Clôture, fonction partielle, la récursivité, Curryfication. Chaque notion est accompagnée par des exemples.
Présentation des nouveautés apportées par la version 7 du langage C# : Méthodes locales, Tuples, Déconstructeurs, Pattern matching, Variables de sortie, Membres sous forme d’expression, Amélioration de la levée des exceptions, ...
Spark, ou comment traiter des données à la vitesse de l'éclairAlexis Seigneurin
Spark fait partie de la nouvelle génération de frameworks de manipulation de données basés sur Hadoop. L’outil utilise agressivement la mémoire pour offrir des temps de traitement jusqu’à 100 fois plus rapides qu'Hadoop. Dans cette session, nous découvrirons les principes de traitement de données (notamment MapReduce) et les options mises à disposition pour monter un cluster (Zookeper, Mesos…). Nous ferons un point sur les différents modules proposés par le framework, et notamment sur Spark Streaming pour le traitement de données en flux continu.
Présentation jouée chez Ippon le 11 décembre 2014.
Spark meetup www.meetup.com/Paris-Spark-Meetup/events/222607538/
La dernière version de Spark nous apporte une nouvelle API inspirée des librairies et langage d'analyse statistique. Nous verrons comment Spark Dataframe nous permet de simplement manipuler et explorer les données en conservant la scalabilité de Spark RDD
Interface fonctionnelle, Lambda expression, méthode par défaut, référence de...MICHRAFY MUSTAFA
Ce document vise à présenter java 8 et lambda expression.
Les points abordés sont les interfaces fonctionnelles, fonction d'ordre supérieur, lambda expression, référence de méthode et méthode par défaut. Chaque notion est accompagnée par des exemples. Les codes sources seront disponibles sur git.
This course will introduce the core data structures of the Python programming language. We will move past the basics of procedural programming and explore how we can use the Python built-in data structures such as lists, dictionaries, and tuples to perform increasingly complex data analysis.
Ce cours concerne les arbres, structure de données organisant les données de manière hiérarchique dans de nœuds reliés entre eux par une relation parent-enfant. Le cours présente les arbres généraux et ensuite les arbres binaires, où chaque nœud possède 0 ou 2 enfants. Enfin, le cours termine en présentant des algorithmes de recherche et en particulier l'arbre binaire de recherche.
Cette présentation aura pour objectif d’introduire le langage de programmation Scala. Ce dernier bénéficie depuis plusieurs mois d’un véritable engouement qui se reflète au regard de la communauté française croissante.
Pour cela Ludwine Probst et Florent Lagrede reviendront donc sur les notions fondamentales, illustrées d’exemples sur des problèmes récurrents de programmation, afin de dégager les spécificités de ce langage et certains de ses atouts.
Aucune connaissance de Scala n’est donc nécessaire, seulement l’envie de découvrir un nouveau langage.
Base de données graphe, Noe4j concepts et mise en oeuvreMICHRAFY MUSTAFA
Cette étude vise à présenter les concepts clés d’une base de données orientée graphe. La modélisation et la mise en œuvre des cas d’utilisation seront réalisées avec la base de données NEO4J, version 3.1.
Traduire une application n'est pas facile.
GetText est une solution efficace et robuste, souvent ignorée.
Ces slides datent un peu mais restent pertinents. J'y mentionne quelques casse-têtes récurrents : avant de choisir une solution d'I18N, vérifiez bien que vos alternatives gèrent ces cas.
Translations are hard.
GetText is an often overlooked solution, but it has many advantages.
These slides are a bit old but still relevant. They have some details about translations horror stories: before choosing any I18N solution, match these against your prospective answers.
Introduction à la programmation fonctionnelle Marine Karam
Autrefois cantonnée aux laboratoires ou aux esprits les plus fous, la programmation fonctionnelle s'invite depuis quelques années dans les applications web et d'entreprises au travers de langages comme Scala, F# mais aussi JavaScript, au point de devenir un des sujets chaud du moment.
Mais les habitudes ont la vie dure, et sortir de sa zone de confort de développeur impératif maître de Java, Python ou PHP n'est pas chose facile, les bénéfices n'étant pas forcément évidents.
C'est toutefois le chemin que je vous propose d'entreprendre, au travers d'une introduction pragmatique aux concepts et principes portés par la programmation fonctionnelle.
Si la baisse de la productivité est effective dans toutes les économies développées... elle est particulièrement marquée en France. Au niveau national, cet essoufflement touche tous les secteurs, et plus particulièrement celui de l’industrie, usuellement caractérisé par des gains de productivité élevés. Depuis la crise Covid, le secteur industriel contribue pour 35 % environ à cette perte, alors qu’il ne représente que 9,3 % de la valeur ajoutée nationale brute en 2023. Dans ce contexte, est-il possible de mener une politique de réindustrialisation du pays sans y associer un objectif de hausse des gains de productivité ?Non rappelle ce Cube. Au contraire, ces deux objectifs, jusqu’alors indépendants l’un de l’autre, sont désormais deux défis à relever conjointement. En analysant les différents explications à la baisse de celle-ci observée en France et dans les autres économies développées, ce Cube suggère que l’augmenter en parallèle d’une politique de réindustrialisation sous-entend une réallocation des facteurs de production vers les entreprises industrielles à fort potentiel. Elle suppose également une une meilleure affectation des ressources.
Dans un contexte où la transmission et l'installation d'agriculteurs sont des enjeux cruciaux pour la profession agricole, de nouveaux agriculteurs s'installent chaque année et, parmi eux, certains Bac+5 ou plus. Les cursus des écoles d'ingénieurs n'ont pas vocation à former de futurs agriculteurs. Pourtant, certains apprenants ayant suivi ces cursus BAC + 5, qu'ils soient ou non issus du milieu agricole, tentent l'aventure de l'entrepreneuriat agricole. Qui sont-ils ? Quelles sont leurs motivations et visions ? Comment travaillent-ils ?
2. Qu’est-ce que c’est R ?
&
Pourquoi on veut
l’apprendre ?
1
Un peu d’histoire
2
Entrons dans le
monde technique
3
Son atout :
Extensibilité
4
Comparaison avec
Python
5
3. Qu’est-ce que c’est R ?
• Langage de programmation pour les
données
• Manipulation, analyse, représentation
graphique
• Très implanté dans la communauté
scientifique et académique
• Langage interprété => des scripts
4. Caractéristiques de R
• Pas de typage ni de déclaration
obligatoire de variable
• Tout est basé sur la notion de vecteur,
ce qui simplifie les calculs
mathématiques
• Programmes courts, en général
quelques lignes de code
• Temps de développement très court
5.
6. Un peu
d’histoire…
Supporté par
une équipe de
développeurs
au sein du R
Project
Au début des
années 1990
proposé par
Ross Ihaka et
Robert
Gentleman
Origine : S
développé chez
Bell
Laboratories
7. • Affectation des variables :
• Affichage de la valeur de la variable :
• Ou, directement avec :
• Comme il n’y a pas de typage :
• Trois types de base de variable : numeric (les chiffres), character (les
caractères et les chaînes de caractères), logical (True et False)
Maintenant, un peu de technique…
8. Et il y a toujours des exceptions !
• NULL
• Il est de type NULL, donc n’appartient pas à aucun des trois types de base
• Sa longueur est 0
• Toutefois différent d’un objet vide :
• un objet de longueur 0 est un contenant vide :
• NULL est « pas de contenant » :
• La fonction is.null() teste si un objet est NULL ou non :
9. • Par défaut NA est de type logical, mais il ne peut être considéré ni
comme TRUE, ni comme FALSE
• Toute opération impliquant une donnée NA a comme résultat NA
• Sa valeur n’est égale à aucune autre, pas même elle-même :
• Par conséquent, pour tester si les éléments d’un objet sont NA ou
non il faut utiliser la fonction is.na() :
Valeurs manquantes ou indéterminées : NA
10. Vecteur, matrice et tableau
• Dans R, tout est basé sur la notion vecteur
• Vecteur unidimensionnel : vector
• Et si on déclare un vecteur hétérogène, R va trouver un type pouvant rendre les
types des éléments uniformes
11. Vecteur, matrice et tableau
• Dans R, tout est basé sur la notion vecteur
• Vecteur bi-dimensionnelle : matrix
• On peut définir le contenu (les données), le nombre de lignes, le nombre de colonnes,
l’ordre de remplissage, et le nom de chaque dimension lors de la création de la matrice
12. Vecteur, matrice et tableau
• Dans R, tout est basé sur la notion vecteur
• Vecteur pluridimensionnelle : array
13. Dataframe
• La plupart des cas de dimension 2
• Le plus utilisé pour stocker les données
• les éléments de chaque colonne peuvent être de types
différents
14. Liste
• Le mode de stockage le plus général et polyvalent
• Elle peut contenir n’importe quoi (un fourre-tout)
15. Structure de contrôle
• Instruction conditionnelle
• If
• Ifelse
• switch
• Boucle
• For
• While
• repeat
16. Fonction
Il existe pas mal de fonctions mathématiques et statistiques dans le
package {base}, mais on peut toujours définir sa propre fonction
La syntaxe de définition est :
nomFonction <- function(arguments) expression
On peut également définir la valeur défaut pour chaque argument, si
l’utilisateur ne précise pas la valeur de l’argument lors de l’appel de
fonction, la valeur défaut s’applique
Une fonction peut servir une autre fonction en tant qu’un argument
Débogage des fonctions : print()
On peut même redéfinir toutes les fonctions existantes !
17. Fonction Famille
apply()
• Les boucles dans R ne sont pas efficaces, il faut
utiliser les fonctions de la famille apply() à la place
• Les fonctions de cette famille consistent à appliquer
une fonction déterminée à chaque élément des
contenants de données, que ce soit un vecteur, une
matrice, un tableau, une liste ou un dataframe
• apply(X, MARGIN, FUN, ...)
• lapply(X, FUN, ...)
sapply(X, FUN, ...)
• mapply(FUN, ...)
18. Son atout : extensibilité
• Un package R est un
ensemble cohérent de
fonctions, de jeux de
données et de
documentation
• Site officiel de l’installation
des packages :
Comprehensive R Archive
Network (CRAN,
https://cran.r-project.org)
• Installation de packages peut
s’effectuer dans le code =>
portabilité des scripts
19. Manipulation de
données : tidyr & dplyr
• La plupart du temps des data analysts ou des data
scientists est consacrée au nettoyage de données
• Les packages tidyr et dplyr consistent à manipuler
les données et les rendre propres et faciles à
analyser
• Un grand avantage de ces packages : l’opération
%>% qui constitue un pipeline de traitement
20. Visualisation des
données : ggplot2
• Le package ggplot a été créé en 2005, avant son
disparition en 2008, la deuxième version ggplot2 a
été mise en ligne en 2007
• Un package permettant de construire les
visualisations des données couche par couche,
d’une façon très personnalisée
21. Création de
Web App
dynamique :
shiny
• Un package créant des applications web sans
avoir à toucher au HTML, ni au CSS (pour des
bases)
• Divise l’application en deux parties : UI
(interface utilisateur) & serveur (contrôlleur)
• Les thèmes variés applicables pour construire
son propre tableau de bord
• La galerie pour s’inspirer de cas d’utilisation :
http://shiny.rstudio.com/gallery/
22. Et bien sûr
• Il existe un tas de packages pour les utilités différentes, comme
machine learning, connecteur des données, digestion des
programmes des autres langages etc.
• La possibilité est infinie, à exploiter avec plaisir
24. Comparaison
entre R et
Python
• Points communs :
• Gratuit et Open-Source
• Né au début de 90s
• Langage interprété
• Fréquemment utilisé dans le domaine de données
• Différence ?
25. Différence
entre R et
Python
R PYTHON
Surtout pour les analyses statistiques Langage de programmation généraliste
Domaine de recherche &
académique
Domaine industriel
Similaire aux autres langages de
traitement des données (ex. Matlab)
Similaire (voire plus intuitif) par rapport aux
autres langages de développement
Plus fort à la manipulation & la
visualisation des données
Plus fort à la collection des données & la
construction du modèle
Période de programmation plutôt
courte
Période de programmation plutôt longue
26.
27. Pipeline de traitement de données
• Deep learning
(Python) VS
Statistical learning
(R)
• R (plus de packages
disponibles,
intégré dans des
services de
visualisation)
• R (supporté par le
core, les packages
tierces sont encore
plus puissants)
• Python (plus de
possibilités, plus de
packages, plus de
source de
données)
Collection Exploration
ModélisationVisualisation