Vous êtes intéressé·e par la Data Science et vous cherchez justement une porte d'entrée vers ce domaine en plein essor ? Ce cours d'initiation au machine learning est fait pour vous !Le machine learning (aussi appelé apprentissage automatique en français) est un outil essentiel des Data Scientists, qui a grandement fait parler de lui ces dernières années de par les applications exceptionnelles qu’il a permises... Une fois que le ou la Data Scientist a effectué son travail de collecte, de nettoyage et d’exploration des données, il peut passer à la partie de modélisation statistique. C’est ce processus que nous allons explorer ensemble dans ce premier cours consacré au machine learning, un ensemble de techniques puissantes permettant de créer des modèles prédictifs à partir de données, sans avoir été explicitement programmées.Les compétences d’un·e Data Scientist résident non seulement dans sa capacité à traduire les challenges de l’entreprise en problèmes de machine learning, mais aussi dans son agilité à proposer des solutions qui peuvent aider à résoudre ces problèmes de manière performante.Je vous propose d'aborder cela avec moi, étape par étape, en restant concret et au plus proche des problématiques actuelles que permet de résoudre la Data Science. C'est parti ?Pré-requis :Ce cours est un cours d'initiation au machine learning, un domaine au croisement des mathématiques et de l'informatique. Pour en profiter pleinement, n'hésitez pas à vous rafraîchir la mémoire, avant ou pendant le cours, sur :Python pour le calcul numérique que nous utiliserons dans la partie TP du cours (librairie numpy et création de graphes avec pyplot)Quelques notions d'algèbre linéaire, telles que manipulation de vecteurs, multiplications de matrices, normesQuelques notions de probabilités et statistiques, telles que distribution de loi de probabilité et variancePour suivre ce cours dans les meilleurs conditions, n'hésitez pas à suivre cette leçon introductive au Machine Learning en vidéo.
Dans le cours Entraînez un modèle prédictif linéaire, vous avez appris à construire des modèles linéaires de classification binaire ou multi-classe et de régression.Mais ceux-ci peuvent ne pas être adaptés à la nature de vos données. Dans ce cours, vous apprendrez à entraîner des modèles supervisés non-linéaires sur vos données.Vous comprendrez comment construire un modèle non-linéaire grâce à une redescription des données, et saurez utiliser les méthodes à noyaux, qui permettent d’étendre les notions de SVM et de régression ridge au cas non-linéaire.Prérequis :Ce cours fait partie du parcours Data Scientist. Il se situe au croisement des mathématiques et de l'informatique. Pour en profiter pleinement, n'hésitez pas à vous rafraîchir la mémoire, avant ou pendant le cours, sur :Python pour le calcul numérique (numpy) et la création de graphiques (pyplot), que nous utiliserons dans les parties TP du cours,Quelques notions d'algèbre linéaire : manipulation de vecteurs, multiplications de matrices, normes, et valeurs/vecteurs propres,Quelques notions de probabilités et statistiques, telles que distribution de loi de probabilité et variance,Les notions de régression linéaire ridge et SVM.
Bienvenue dans ce cours de traitement du langage naturel ! L’objectif de ce cours est de comprendre les méthodes qui permettent de transformer le texte en features exploitables par des algorithmes de machine learning classiques, et les architectures et modèles qui correspondent le mieux à ce type de données. En l’occurence un ensemble de documents texte non-structurés.Ce cours est donc divisé en 3 parties : une première qui traite de l'exploration, du nettoyage et de la normalisation du texte. Une seconde partie est dédiée au différents types de transformations qui vont nous permettre de mieux comprendre nos données textuelles et de créer des features que nous pourrons utiliser dans les algorithmes classiques de machine learning. La dernière partie sera consacrée à la classification du texte à l'aide de l'apprentissage automatique.Prérequis :Ce cours fait partie du parcours Data Scientist. Il se situe au croisement des mathématiques et de l'informatique. Pour en profiter pleinement, n'hésitez pas à vous rafraîchir la mémoire, avant ou pendant le cours, sur :Python pour le calcul numérique (numpy) et la création de graphiques (pyplot), que nous utiliserons dans les parties TP du cours,Quelques notions d'algèbre linéaire : manipulation de vecteurs, multiplications de matrices, normes, et valeurs/vecteurs propres,Quelques notions de probabilités et statistiques, telles que distribution de loi de probabilité et varianceLes modèles non-supervisées permettront de modéliser des features automatiquement à partir du texteLes modèles supervisées non-linéaires sont indispensables au traitement du texte, notamment les réseaux de neurones séquentiels
Comment gérer une énorme base de données et comment l'interroger efficacement ? Ces questions, on se les pose dès que le volume devient ingérable et que répondre à de simples requêtes prend des heures.Oubliez les SGBD traditionnels, ils peinent à passer à l'échelle ! Vous devez être capable de choisir la bonne solution parmi les dizaines qui s'offrent à vous.Dans ce cours, vous découvrirez l'univers du NoSQL. Nous ferons un focus sur deux solutions NoSQL extrêmement populaires : MongoDb et ElasticSearch. Vous apprendrez à stocker et à réaliser des requêtes sur vos données tout en assurant le passage à l'échelle.Vous voulez faire du NoSQL et dire adieu aux bases relationnelles ? C'est parti !Prérequis :Bases de donnéesCompréhension des bases de données relationnellesLangage de requêtes SQLNotions d'optimisation de bases de données : indexation, hachage, plans d’exécutionIngénierie informatiqueBonne connaissance de l'environnement UNIXConnaissances réseau élémentaires
Que faire lorsque la complexité de vos applications dépasse votre capacité de calcul ? La solution consiste à distribuer les calculs sur un cluster constitué de plusieurs machines, mais faut-il pour cela avoir un supercalculateur dans son garage ? Non ! Aujourd'hui, le cluster computing est à la portée de tous grâce à MapReduce, qui permet de créer facilement des applications distribuées, et au cloud, qui fournit des ressources de calculs pratiquement infinies pour un coût modique.C'est le rôle des Data Architects de déployer des clusters de calculs permettant de réaliser des analyses complexes sur des données massives. Pour cela, nous verrons ensemble comment écrire des applications distribuées avec Hadoop MapReduce et Spark, éléments essentiels de la boîte à outil des Data Architects. À l'issue de ce cours, vous serez en mesure de lancer des calculs distribués sur des clusters contenant des dizaines de machines à l'aide d'Amazon Web Services.Vous voulez faire du Big Data sans blabla ? Alors on y va !Prérequis :AlgorithmiqueEstimation et optimisation de complexité en temps et espace, notation asymptotiqueStructures de données (listes, piles, files, ensembles, tas, arbres binaires de recherche, tables de hachage)Théorie des graphes (parcours, plus court chemin)Conception d'algorithmes (diviser pour régner, force brute)ProgrammationSolides connaissances en programmation objet (Java, Scala, Python, Ruby, C++ ou autre)Structures de donnéesNotions de parallélisationIngénierie informatiqueSolides connaissances de l'environnement UNIXGestion de la mémoire et des transferts de donnéesConnaissances élémentaires des réseaux
Lors de la conception d’une architecture Big Data, la première question concerne le stockage pur et simple des données brutes.Où stocker les données ? Selon quel format ? Selon quelle hiérarchie ? Les solutions choisies doivent répondre à des impératifs de passage à l’échelle puisque la quantité de données à stocker va toujours croissant. Mais il ne s’agit pas pour autant d’archivage car il faut établir un accès aisé aux données pour permettre leur exploitation par des applications tierces.Dans ce cours, vous apprendrez à concevoir un Data Lake : il s’agit d’un dépôt de données brutes accessible en lecture seule qui doit être la source de données de référence utilisée par les autres applications de traitement de données. C’est donc un composant fondamental de toute architecture Big Data !Vous trouviez le stockage de données boring ? Vous allez changer d’avis !Prérequis :Programmation : Connaissances en programmation objet (Java, Scala, Python, Ruby, C++ ou autre) et en structures de données.Ingénierie informatique :- Solides connaissances de l'environnement Unix.- Gestion de la mémoire et des transferts de données.- Connaissances réseau élémentaires.
Bienvenue dans le cours de vision par ordinateur ! Dans ce cours, vous allez apprendre à classifier des images à l'aide des algorithmes issus du Machine Learning, en particulier de l'apprentissage supervisé (approche plutôt traditionnelle) et du Deep Learning (approche très moderne).La première partie vous permettra d'acquérir les bases en traitement d'images, en particulier les opérations de lissage avec les filtres. Dans une deuxième partie, vous découvrirez la notion fondamentale de features en vision, et étudierez les méthodes classiques de détection et de description de features. Vous pourrez alors développer votre premier algorithme de classification d'images, en entraînant un algorithme d'apprentissage supervisé sur les features extraites. Enfin, la troisième partie est dédiée aux fameux réseaux de neurones convolutifs (CNN), qui constituent aujourd'hui les algorithmes les plus performants pour classer des images.Prérequis :Ce cours fait partie du parcours Data Scientist. Il se situe au croisement des mathématiques et de l'informatique. Pour en profiter pleinement, n'hésitez pas à vous rafraîchir la mémoire, avant ou pendant le cours, sur :Python pour le calcul numérique (numpy) et la création de graphiques (pyplot), que nous utiliserons dans les parties TP du coursQuelques notions d'algèbre linéaire : manipulation de vecteurs, multiplications de matrices, normes, et valeurs/vecteurs propresQuelques notions de probabilités et statistiques, telles que distribution de loi de probabilité et varianceLes méthodes supervisées linéairesLes méthodes supervisées non-linéaires, en particulier les réseaux de neurones
Après avoir étudié les méthodes supervisées linéaires et non-linéaire les plus utilisés dans les cours précédent, il est temps d'aborder la famille des méthodes ensemblistes.Êtes-vous prêt·e à décupler la puissance de vos modèles grâce aux méthodes ensemblistes ? C'est ce que nous allons voir dans ce cours, en nous intéressant à une famille d'algorithme parmi les plus performantes actuellement.En effet, en utilisant de manière rusée notre jeu de données, nous pouvons exploiter tout son potentiel, en créant un grand nombre de petit modèles rapidement puis en développant un méta-modèle qui les rassemble.Suivez ce cours pour apprendre les deux familles de modèles les plus utilisées par les data scientists : les méthodes parallèles avec les forêts aléatoires et les méthodes séquentielles dont le modèle phare est le gradient boosting.PrérequisCe cours de Data Science se situe au croisement des mathématiques et de l'informatique. Pour en profiter pleinement, n'hésitez pas à vous rafraîchir la mémoire, avant ou pendant le cours, sur :Python pour le calcul numérique que nous utiliserons dans la partie TP du cours (librairie numpy et création de graphes avec pyplot)Quelques notions d'algèbre linéaire, telles que manipulation de vecteurs, multiplications de matrices, normesQuelques notions de probabilités et statistiques, telles que distribution de loi de probabilité et varianceLe cours sur les méthodes supervisées linéaire et non linéaires
Dans le cours Initiez-vous au machine learning, vous avez découvert les fondements de l'analyse de donnée automatisée. Dans ce deuxième cours, vous apprendrez à évaluer vos algorithmes pour les rendre plus performants.De nombreux choix d'algorithmes d'apprentissage et de leurs hyperparamètres s'offrent aux Data Scientists. La nature du problème à résoudre permet en partie de guider ce choix. Par exemple, on n'appliquera pas un algorithme de classification à un problème de régression.Néanmoins, il est nécessaire de savoir évaluer n'importe quel algorithme d'apprentissage sur son jeu de données, en évitant au mieux le biais de sur-apprentissage. Une évaluation rigoureuse des performances d'un algorithme est une étape indispensable à son déploiement.Suivez ce cours pour apprendre à évaluer un modèle d'apprentissage supervisé afin de choisir le bon modèle pour votre problème, en évitant de tomber dans un des principaux pièges qui guettent les Data Scientists.Prérequis :Ce cours de Data Science se situe au croisement des mathématiques et de l'informatique. Pour en profiter pleinement, n'hésitez pas à vous rafraîchir la mémoire, avant ou pendant le cours, sur :Python pour le calcul numérique que nous utiliserons dans la partie TP du cours (librairie numpy et création de graphes avec pyplot)Quelques notions d'algèbre linéaire, telles que manipulation de vecteurs, multiplications de matrices, normesQuelques notions de probabilités et statistiques, telles que distribution de loi de probabilité et varianceLe cours d'initiation au machine learning, afin d'avoir une meilleure idée du cycle global de travail d'un data scientist et comprendre où ce situe cette phase d'amélioration & mesure de performances
Il existe énormément d'outils différents pour manipuler des quantités massives de données : pour le stockage, l'analyse ou la diffusion, par exemple. Mais comment assembler ces différents outils pour réaliser une architecture capable de passer à l'échelle, d'être tolérante aux pannes et aisément extensible, tout cela sans exploser les coûts ?Dans ce cours, nous allons vous présenter un modèle d'architecture très populaire, applicable à pratiquement toutes les situations nécessitant des données massives. Il s'agit de la Lambda Architecture. C'est un modèle qui vous permettra de concevoir une architecture adaptée à vos besoins tout en conservant une structure modulaire. Nous présenterons dans le détail ce modèle générique ainsi que des choix techniques concrets répondant au cahier des charges des différents composants.Prérequis :Ce cours peut servir de point d'entrée dans le parcours Data Architect ou de conclusion ! Vous pouvez donc le consulter sans autres prérequis que ceux du parcours.Mais n'hésitez pas à y revenir souvent, après la lecture des autres cours, pour comprendre comment les différents éléments d'une architecture Big Data s'articulent.
Vous avez découvert le concept d’apprentissage supervisé dans le cours Initiez-vous au machine learning. Dans ce cours, vous avez appris à évaluer un modèle de classification ou de régression…Il est maintenant temps de découvrir les algorithmes classiques du machine learning supervisé. Dans ce cours, vous apprendrez à maîtriser les algorithmes dont la fonction de décision est une combinaison linéaire des variables.Vous découvrirez en particulier la régression linéaire et la régression logistique. Vous apprendrez à contrôler les poids affectés à chacune des variables pour éviter le sur-apprentissage ou construire des modèles parcimonieux. Vous comprendrez le fonctionnement des machines à vecteurs de support (SVM). Enfin, vous saurez résoudre des problèmes de classification à plus de deux classes.Suivez ce cours pour développer des modèles linéaires prédictifs sur vos données !Prérequis :Ce cours de Data Science se situe au croisement des mathématiques et de l'informatique. Pour en profiter pleinement, n'hésitez pas à vous rafraîchir la mémoire, avant ou pendant le cours, sur :Python pour le calcul numérique que nous utiliserons dans la partie TP du cours (librairie numpy et création de graphes avec pyplot),Quelques notions d'algèbre linéaire, telles que manipulation de vecteurs, multiplications de matrices, normes,Quelques notions de probabilités et statistiques, telles que distribution de loi de probabilité et variance.
Ce n'est un secret pour personne : toute entreprise a besoin d'argent pour fonctionner. Mais, quand on se prépare à lancer sa propre entreprise, concrètement, comment fait-on ?Lorsqu'on souhaite faire une levée de fonds auprès de business angels ou de capitaux risqueurs, qu'est-ce que cela implique ? Etes-vous sûr de vouloir travailler avec des business angels ou des capitaux risqueurs ? Et eux-mêmes d'ailleurs, à quoi pensent-ils lorsqu'ils font une levée de fonds ?Ce cours va vous présenter le processus de la levée de fonds et les relations qui s'établissent avec les business angels et capitaux risqueurs.
Dans le cours Initiez-vous au machine learning, vous avez découvert comment transformer une question que vous avez sur vos données en un problème d’apprentissage automatique non supervisé. Dans ce cours, vous apprendrez à choisir et utiliser les principaux algorithmes qui permettent de résoudre ces problèmes.Vous découvrirez comment réduire la dimension de vos données grâce à des techniques linéaires comme l’analyse en composantes principales (ACP), ou des techniques non linéaires comme le très populaire t-SNE. Vous découvrirez aussi comment fonctionnent trois familles d’algorithmes de clustering : le clustering hiérarchique, k-means et le clustering par densité.Suivez ce cours pour apprendre à réduire la dimension de vos données, mieux les visualiser ou pour rendre vos algorithmes plus efficaces, et pour découvrir comment segmenter automatiquement vos données, sans avoir à définir des classes a priori.Prérequis:Ce cours de Data Science se situe au croisement des mathématiques et de l'informatique. Pour en profiter pleinement, n'hésitez pas à vous rafraîchir la mémoire, avant ou pendant le cours, sur :Python pour le calcul numérique (numpy) et la création de graphiques (pyplot), que nous utiliserons dans les parties TP du cours,Quelques notions d'algèbre linéaire : manipulation de vecteurs, multiplications de matrices, normes, et valeurs/vecteurs propres,Quelques notions de probabilités et statistiques, telles que distribution de loi de probabilité et variance.Le cours d'initiation, qui vous permettra de situer les algorithmes non supervisées au sein de l'ensemble des méthodes de machine learning
Lorsqu'on réalise un calcul sur des données massives, on a parfois besoin du résultat dans la journée, dans l'heure, mais bien souvent c'est plutôt... dans le dixième de seconde qui suit ! Lorsque des flux massifs de données hétérogènes nous parviennent, comment les exploiter sans être submergés ? C'est tout l'enjeu du traitement de données temps réel.Au quotidien, nos actions génèrent des quantités massives de données dont la valeur réside dans le fait qu'elles soient transmises et décortiquées le plus rapidement possible : une voiture sans chauffeur doit pouvoir éviter des obstacles détectés par l'un de ses milliers de capteurs ; un site d'achats en ligne affichera des recommandations personnalisées en fonction des pages visitées juste avant ; une alerte doit être lancée lorsqu'un serveur tombe en panne dans un cluster de calcul comprenant plusieurs centaines de machines. La rapidité à laquelle il faut réagir à ces évènements exige de concevoir des architectures distribuées dédiées… et c'est ce que nous allons voir dans ce cours ! Vous y apprendrez comment les Data Architects conçoivent, déploient et administrent des plateformes de gestion de flux de données temps réel avec Kafka et Storm.PrérequisCe cours fait partie du parcours Data Architect et nécessite une bonne formation en informatique. Pour en profiter pleinement, n'hésitez pas à vous rafraîchir la mémoire, avant ou pendant le cours, sur :La programmation objet (Java, Scala, Python, Ruby, C++ ou autre) et la parallélisation.L'environnement Unix, la gestion de la mémoire et des transferts de données, les réseaux.