Glossaire

algorithme
Un algorithme est une suite finie et non ambigüe d’opérations ou d’instructions permettant de résoudre un problème.
Antlr4
Antlr4 est un outil qui permet de construire des grammaires ou des compilateurs. Cela peut servir à interpréter un code écrit dans un langage existant, pour le réécrire avec un meilleur format par exemple ou lui ajouter quelques fonctionnalités. On peut également vouloir définir rapidement un langage de script pour sa propre application. Dans les deux cas, cet outil permet éviter de réécrire son propre parseur et donc d’aller beaucoup plus vite. Il est intuitif. Voir Using Antlr4 to write a grammar.
auto-encoders
Le concept d”auto-encoders est associé au deep learning. C’est aussi un moyen de réduire le bruit dans les données X ou de les compresser en considérant la fonction X=g ( f (X ) )g est une fonction pseudo inverse de f. La fonction f est une sorte de projection dans un espace de dimension inférieur à celui de départ. La fonction g reconstruit X à partir de sa projection. Après cette première étape d’apprentissage, les données transformées f(X) sont moins bruitées et sont souvent de meilleurs features que les données initiales. Cette étape est assez utile pour transformer des données discrètes (voire binaires) en données continues, ce que les algorithmes d’optimisation à base de gradient préfèrent. Voir aussi Tutorial on auto-encoders.
bandits
Le bandit manchot fait référence aux machines à sou dans les casinos. Tout l’enjeu de cette méthode consiste à maximiser ces gains en améliorant sa stratégie au fur et à mesure. Tout au long du jeu, il devient possible d’estimer la probabilité d’apparition des combinaisons gagnantes avec de plus en plus de précision. Voir bandit manchot ou multi-armed bandit en anglais.
benchmark
banc d’essai
cache
Mécanisme qui consiste à mémoriser un résultat coûteux à produire. Lorqu’il n’est pas possible de tout stocker en mémoire, il faut choisir les informations les plus susceptibles d’être demandées. Voir algorithme de cache.
Cheat Sheet
Sorte d’anti-sèche. Quelques exemples pour le machine learning : 8 Best Machine Learning Cheat Sheets, Cheat Sheets Python Ce mot-clé fonctionne très bien quand on cherche des informations sur un language, un module… Essayez avec python cheatsheet sur n’importe quel moteur de recherche.
coût
Le coût d’un algorithme est le nombre d’opérations qu’il effectue lorsqu’il est exécuté. Ce coût dépend des données qu’il manipule. Il s’exprime en règle générale en fonction de la taille des données. Le plus souvent, on ne cherche pas le nombre exact d’opérations mais un nombre approché (notation en O(.)). La plupart du temps, ce coût correspond au nombre d’exécution d’une instuction incluse dans la boucle la plus imbriquée.
DropBox
DropBox, stockage dans le cloud. Pour récupérer automatiquement des fichiers, voir Download a file from Dropbox with Python.
Deep Learning

Le concept Deep Learning évoque souvent des réseaux de neurones à plusieurs couches dont on retrouve l’histoire et les principaux concepts dans le livre Deep Learning: Methods and Applications. Deep learning signifie aussi des algorithmes gourmands en calculs et ils sont très rarement codés en Python seul mais en C++ et Python (wrapper) :

L’inventeur du deep learning est Yoshua Bengio:

Voir aussi :

Quelques blogs :

Deep Q Network (DQN)
Deep Learning + Reinforcement Learning. Voir DQN. Lire Human-level control through deep reinforcement learning, in Nature Volume 518, Deep Reinforcement Learning from Self-Play in Imperfect-Information Games (ArXiv)
Dijkstra
Plus connu pour l’algorithme du plus court chemin dans un graphe, Edsger Dijkstra, il a contribué à faire ce que le programmation est aujourd’hui. Il faut lire A Case against the GO TO statement The humble programmer (traduction française Le programmeur modeste). Il est aussi l’auteur d”aphorisme très sensés pour la plupart des programmeurs.
ENSAE ParisTech
Ecole Nationale de la Statistique et de l’Administration Economique (ENSAE)
entretien
Quelques révisions à faire afin de préparer un l-entretiens.
expression régulière
Chercher un mot dans un texte est facile, chercher un nombres réelles ou un date est plus complexe car toutes les séquences de chiffres ne sont pas des nombres ou des dates. Dans ce cas, il faut utiliser un outil plus adaptés comme les expressions régulières qui permettent de chercher ou remplacer des motifs ce qu’illustre parfaitement l’article 8 Regular Expressions You Should Know.
FAQ
Frequently Asked Questions, titre de sections très souvent utilisés pour regroupés les questions envoyées par les utilisateurs d’un produit.
Git
Logiciel de suivi de source utilisé par exemple par GitHub. Il est décentralisé. Chaque contributeur est libre de proposer ou d’importer une modification faite par un autre.
GitHub
GitHub est un service web d’hébergement et de gestion de développement de logiciels, utilisant le programme Git. C’est ce service qui héberge les sources de ce tutoriel sur Python. Il sert essentiellement à deux choses : travailler à plusieurs et pouvoir facilement fusionner les modifications de chacun, conserver l’historique des modifications. Voici par exemple un changement sur la librairie pyensae : add method plot.
glouton
Un algorithme glouton est un algorithme qui suit le principe de faire, étape par étape, un choix optimum local (wikipedia). Ce terme est un peu trompeur parfois dans la mesure où il englobe des algorithmes rapides comme lents.
ggplot
ggplot2 est une librairie de graphiques sous R. Elle est accessible via matplotlib. Voir A few tricks with matplotlib.
GPU
GPU = Graphics Processing Unit. Ils sont très utilisés pour les réseaux de neurones et les algorithmes de Monte Carlo. Voir Building Deep Neural Networks in the Cloud with Azure GPU VMs, MXNet and Microsoft R Server.
greedy
Voir glouton.
Hadoop
Logiciel de distribution de traitement de données. Voir Hadoop.
HDFS
Hadoop File System : système de fichiers distribué propre à Hadoop : commandes HDFS.
Hive
Langage haut niveau pour implémenter des tâches Map/Reduce traitant des tables de données : Hive.
Immuable
voir Immutable
Immutable
On dit qu’un type est immutable s’il ne peut être modifié. Un tuple est immutable, c’est un tableau dont on ne peut pas changer les éléments contrairement à une liste. Voir aussi Qu’est-ce qu’un type immuable ou immutable ?, Question à propos de trie.
Internet Of Things
Voir Internet des Objets. Les objets qui nous entourent enregistrent des données et en retour nous permettent de mieux interagir avec notre environnement.
IoT
Voir Internet Of Things
Jenkins
Jenkins est un logicial d’automatisation de build (et de tâches). Voir Build automation with Jenkins.
JIT
Just In Time (Compilation). Some modules such as Cython offers the possibility to speed up a Python programming by converting some part of it in C++. It is then compiled and executed. See also: Python Just In Time Compilation.
Knuth
Donald Knuth est l’auteur de The Art of Computer Programming. C’est une des grandes figures de l’informatique. Il est également l’inventeur du langage TeX.
Markdown
Langage utilisé par les notebooks et pour cette documentation écrit en rst. Sa syntaxe est décrite à Markdown: Syntax. A l’instar du langage Python, il utilise l’indentation pour marquer la séparation entre les blocs.
Mock
Il est difficile de tester un programme qui lance des requêtes sur un service sans que ce service soit activé comme par exemple récupérer des données financières sur Internet sans Internet. Lorsqu’on veut s’assuser qu’une fonction qui communique avec un service fonctionne, on créé ce qu’on appelle un mock : on créé un faux service qui retourne des réponses assez courtes afin de tester la partie qu’on a besoin de tester. Ce genre de système permet de tester séparément le service et la partie qui communique avec ce service. Lire également Mock Object, Unit test et Mock.
Mutable
Voir Immutable.
Natural Language Processing
Ensemble de méthodes traitent du langage naturel. Les opérations les plus courantes consistent à séparer un texte en mots, à normaliser, à faire du stemming, à enlever les mots de liaison qui n’apportent pas de sens au texte. Après ce nettoyage, on peut faire du text mining, de l”analyse de sentiments
NLP
Voir Natural Language Processing
NLTK
Natural Language Toolkit. La librairie NTLK est sans doute la plus connue lorsqu’il s’agit de traiter le langage.
optimisation
L”optimisation se résume le plus souvent à maximiser ou minimiser une fonction réelle dépendant de plusieurs paramètres. Il s’agit de trouver les paramètres optimaux : ceuw qui permettent d’obtenir le minimum ou maximum trouvé. La plupart des problèmes de machine learning se résume à un problème d’optimisation. Parmi les différentes types de problèmes, on distingue les problèmes linéaire, quadratique, non linéaire, avec ou sans contraintes. Lire le blog Optimisation avec contraintes, cvxopt, pulp, NLopt, ….
pair programming
Voir pair programming.
PCFG
Probabilistic Context-Free Grammars. Les grammaires permettent de tagger les mots d’un texte : en s’appuyant sur des règles de proximité, on arrive à reconnaître des noms, des verbes ou autre entités sémantiques. Voir Probabilistic Context-Free Grammars (PCFGs). Voir aussi le module NTLK.
PIG
Langage haut niveau pour implémenter des tâches avec plusieurs Map/Reduce : PIG.
Pokemon
C’est un jeu qui est régulièrement choisi par les élèves en tant que projet information. TP: Pokemon, attrappez-les tous !, voir aussi Site Web avec des Pokemons.
PR
voir Pull Request
Pull Request
Terme prope à Git (GitHub, BitBucket, GitLab). Cela veut dire que quelqu’un a forké un projet open source, l’a modifié et a demandé à son concepteur d’intégrer ses modifications. Il a envoyé une pull request.
pyensae
C’est un module que j’ai développé à l’attention des élèves de l’ENSAE (documentation). Il sert le plus souvent à télécharger des documents depuis le site www.xavierdupre.fr et plus précisément des documents accessibles depuis ce lien documents.
PyQt
PyQt est considéré comme le standard en matière d’interface grahique. C’est d’abord un concept d’interface graphique qu’on retrouve en Python sous deux implémentation : PyQt4, PyQt5 (licence GPL), PySide (licence LGPL). Il existe d’autres alternatives comme Phoenix mais moins populaires donc moins maintenus.
pyquickhelper
Ce module est utilisé par pyensae. Il sert principalement à générer cette documentation. Il effectue des tâches avant et après la génération de la documentation avec Sphinx.
Python
Langage de programmation interprété. C’est le langage utilisé pour le support de ce cours. Site officiel. C’est un langage impératif. Un tutoriel : Python Notes.
Recurrent Neural Network (RNN)
The Unreasonable Effectiveness of Recurrent Neural Networks
regular expression
Voir expression régulière.
Resilient Distributed Datasets (RDD)
Voir Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing.
reStructuredText
Voir Sphinx.
RNN
Voir Recurrent Neural Network.
Rossum
Guido van Rossum est l’inventeur du langage Python.
rst
rst = reStructuredText, voir Sphinx
score
Le score n’a pas de définition théorique et il dépend de chaque modèle. Prenons l’exemple d’une classification avec LDA, le résultat est un hyperplan qui sépare deux classes. On détermine le meilleur hyperplan possible sur une base d’apprentissage. Le score dans ce cas est la distance d’un point à cet hyperplan mais c’est une définition propre au modèle LDA. D’une manière générale, un classifier réalise une partition, il permet de tracer des frontière entre les classes. Le score indique si on est plus ou moins proche de cette frontière. Plus on est proche, moins le classifieur est sûr de sa réponse. Voilà en résumé l’idée du score. Donc le score est un chiffre qui exprime la proximité d’une observation à la frontière de la classe dans laquelle elle est classée. La frontière est apprise sur la base d’apprentissage, l’observation provient de n’importe quelle base.
Sérialisation
La sérialisation est le fait de transcrire une structure de données parfois cyclique (comme un graphe) en une seule séquence d’octets. On s’en sert surtout pour transmettre ces données (via internet) ou les stocker.
skewed join
Voir Map Reduce et Skew Join, 3A.mr - Données antipathiques (skewed), Appariement - énoncé.
Spark
Couche logicielle au-dessus de Hadoop permettent de distribuer des calculs. Se distingue de Hadoop grâce aux Resilient Distributed Datasets (RDD) qui sont plus efficace. Voir Spark.
sparse
Les matrices sparse (ou creuses) sont des matrices de grandes dimensions dont la plupart des coefficients sont nuls. En tenant compte de cette information, il est possible de réduire la taille de stockages et d’optimiser le calcul matriciel. Il n’existe pas encore de modules standard pour gérer ce cas. Quelques liens : sparse et pandas, sparse matrix avec scipy, Handling huge matrices in Python, sparse matrix et cvxopt, présentation de blaze, blaze (peut-être le futur de numpy), Introducing Blaze - HMDA Practice
Sphinx
Dans le cadre de ce cours, Sphinx est un module Python qui permet de générer la documentation de la grande majorité des modules Python incluant ce cours. Le langage de la documentation est RST (reStructuredText). Quelques exemples : Cheat Sheet, Sphinx and RST syntax guide.
Stemmer
Un stemmer permet de réduire les différentes formes d’un mot. Les mots apparaissent au singulier, au pluriel, collés à une apostrophes, conjugués… Il n’est pas toujours évident de dire si un document contient un mot précis. C’est pourquoi on effectue une étape de nettoyage qui consite à séparer un texte en mot et à les réduire à une forme canonique. Cette seconde étape est appelée le stemming. NLP & Sentiment Analysis
Stemming
Voir stemmer.
Stroustrup
Bjarne Stroustrup est l’inventeur du langage C++.
Sphinx
Sphinx est un moteur qui génère de la documentation à partir de fichier au format reStructuredText. Voir également Restructured Text (reST) and Sphinx CheatSheet.
SQL
Le SQLStructured Query Language est un language dédié aux base de données relationnelles. Sa logique est plus proche de la programmation fonctionnelle.
SVN
SVN est un logiciel de suivi de source, de même que Git. Il est centralisé : une modification doit d’abord être appliquée à la branche centrale avant de pouvoir être propagée aux autres branches.
Theano
Librairie de calcul GPU pour Python. Voir theano.
Torch
Librairie de deep learning pour Lua. Voir Torch. Voir également Torch vs Theano.
transport
Théorie du transport, m usines, n entrepôts, on définit c(i,j) le coût de transport d’une usine à un entrepôt, comment optimiser l’acheminement ? Lire Transport optimal de mesure : coup de neuf pour un très vieux problème de Cédric Villani.
warnings
Non-blocking error but it should be read and the cause removed. See Python: Use Warnings!.
Wheel
Nouveau format pour installer des modules Python. Voir Install a Python module with Wheel.