and finance
Présenté par :
Pr. Achraf BERRAJAA
Outline
1 Introduction
Machine learning
Projet
Scikit learn
Applications réelles Projet
Introduction Machine learning &
de Kaggle et Github
Machine Learning
Problem statement
• Intelligence artificielle
• Big Data
Introduction • Data Science
• Machine Learning application
• Kaggle
• Outils nécessaires pour l'apprentissage automatique
Scikit learn
• Decision Tree
&
• Random forest
Machine • K Nearest Neighbours
Learning • Naives Bayes ….
Applications
• Sklearn Library
réelles de Kaggle
• Tensorflow et Keras
et Github
Projet
3
Introduction
4
Introduction
Biens de consommation
Sélections des produits, classification des
La logistique
clients ... La planification de la production, transport,
acheminement automatique …
5
Introduction
L'intelligence artificielle (IA) est l'ensemble des théories et des techniques mises en œuvre en
vue de réaliser des machines capables de simuler l'intelligence humaine.
Comme la capacité d’apprendre des décision non explicitement programmés.
6
Introduction
C’est un chat !!
C′est très basique pour un humain de reconnaître que c′est un
chat en revanche si je vous demande pourquoi c′est un chat ??
Le fonctionnement !!
Il faut lui monter énormément d′image de chat (des milliers) et
spécifier que se sont des chats, le système va devoir analyser
les images et il sera capable à extraire dans les images
qu′est ce qui fait que tous ça c′est un chat.
7
Introduction
8
Introduction
9
Introduction
Data Science ?
Machine learning ?
L′apprentissage automatique est un champ d′étude de l′intelligence artificielle qui se fonde sur des
approches mathématiques et statistiques pour donner aux ordinateurs la capacité d′ « apprendre » à partir
de données.
Avec le machine learning, on passe d′une informatique impérative basée sur des hypothèses à une
informatiques probabiliste basé sur des informations réelles.
10
Machine learning
Une donnée est "le résultat d′une observation faite sur une population ou sur un échantillon".
Une donnée est donc un nombre, une caractéristique, qui m′apport une information sur un individu,
un objet ou une observation."
Par exemple, 40 est un nombre sans intérêt, mais si quelqu’un vous dit “j’ai 40 ans”, 40 devenu une
donnée qui vous permettra d’en savoir plus sur lui.
Généralement, on lie les données à des variables parce que le nombre/la caractéristique varie si on
observer plusieurs objets/individus/observations.
11
Machine learning
Les principaux type de données ?
On distingue généralement les données quantitatives et les donnée qualitatives.
Les données quantitatives sont des valeurs qui décrivent une quantité mesurable.
sous la forme de nombres sur lesquels on peut faire des calculs (moyenne, etc.) et des comparaisons
(égalité/différence, infériorité/supériorité, ...).
Elles répondent typiquement à des questions du type «combien» On fait parfois la différence entre :
• les données quantitatives continues, qui peuvent prendre n’importe quelle valeur dans un ensemble
de valeurs : la température, le taux de chômage, ect ;
• et les données quantitatives discrètes, qui ne peuvent prendre qu’un nombre limité de valeurs dans
un ensemble de valeurs : le nombre d’enfants par famille, le nombre de pièces d’un logement, etc.
12
Machine learning
Les principaux type de données ?
Les données qualitatives décrivent quant à elles des qualités ou des caractéristiques. Elles répondent
à des questions de la forme « quel type » ou « quelle catégorie ».
Ces valeurs ne sont plus des nombres, mais un ensemble de modalités. On ne peut pas faire de calcul
sur ces valeurs.
les données qualitatives nominales (ou catégorielles), dont les modalités ne peuvent être ordonnées.
Par exemple : la couleur des yeux (bleu, vert, marron, etc.), le sexe (homme, femme), la région
d’appartenance (68, 38, etc.) ;
et les données qualitatives ordinales, dont les modalités sont ordonnées selon un ordre « logique ».
Par exemple : les tailles de vêtements (S, M, L, XL), le degré d’accord à un test d’opinion (fortement
d’accord, d’accord, pas d’accord, fortement pas d’accord).
13
Machine learning
D’où viennent les données ?
La réponse à cette question n’est pas bien difficile : elles viennent de partout !
En premier lieu, distinguons les données dites privées des données publiques.
• Les données privées : sont tout simplement les données qui en théorie n’appartiennent qu’à
vous ou à votre organisation.
• Les données publiques : accessibles par tout le monde. Dans ce cas, vous disposez d’une source
de données quasi infinie : "Internet " Big Data
Ensembles de données extrêmement volumineux qui peuvent être analysés par ordinateur pour révéler des
modèles, des tendances et des associations, en particulier concernant le comportement humain et les
interactions.
14
Introduction
Parmi les données on trouve : des images et des vidéos. Ces objets, assez complexes à manipuler, sont dits non
structurés.
À l’opposé, les données les plus faciles à traiter comme les bases de données, qui sont indexées, elles sont dites
structurées.
Niveau de
Modèle de données Exemples Facilité de traitement
structuration
Structuré Système de données relationnel Base de données Facile (Indexé)
objet/colonne d’entreprise
Semi-structuré XML, JSON, CSV, logs API Google, API Twitter, Facile (Non indexé)
Web, logs
15
Introduction
16
Introduction
17
Machine learning
18
Machine learning
• Ces couples sont déjà « connus », dans le sens où les sorties sont définies a priori.
• La valeur de sortie peut être une indication fournie par un expert : par exemple, des valeurs de
vérité de type OUI/NON ou MALADE/SAIN.
• Ces algorithmes cherchent à définir une représentation compacte des associations
entrée−sortie, par une fonction de prédiction.
• Toutes les données sont équivalentes (on pourrait dire qu’il n’y a que des entrées).
• Les algorithmes cherchent à organiser les données en groupes.
• Chaque groupe doit comprendre des données similaires et les données différentes doivent se
retrouver dans des groupes distincts.
19
Machine learning
Apprentissage supervisé et non supervisé
Imaginons un ensemble d’individus décrits par deux variables d’entrée, X1 et X2.
Dans le cas d’un apprentissage supervisé, il faudra ajouter une variable de sortie Y, qui pourra par
exemple prendre deux valeurs {O, X}. L’algorithme proposera alors une fonction de prédiction de la
forme Y= f(X1, X2).
Dans le cas de l’apprentissage non supervisé : l’algorithme va trouver tout seul, les deux groupes
d’individus, juste à partir des positions dans le plan défini par X1 et X2.
20
Machine learning
La distinction régression/classification se fait au sujet des algorithmes supervisés. Elle distingue deux
types de valeurs de sorties qu’on peut chercher à traiter.
Dans le cadre d’un problème de régression, Y peut prendre une infinité de valeurs dans l’ensemble
continu des réel (noté Y ϵ R). Ce peut être des températures, des tailles, ou tout autre type de mesure
n’ayant pas de valeurs finies.
Dans le cadre d’un problème de classification, Y prend un nombre fini k de valeurs (Y = {1, …, k}). On
parle alors d’étiquettes attribuées aux valeurs d’entrée.
21
Machine learning
La figure répond au problème : quel est le La figure répond au problème : selon sa taille, une
prix d’une maison en fonction de sa taille ? tumeur est−elle dangereuse ou pas ? Ici, on va
Ce prix peut prendre une infinité de chercher à classer les observations en fonction de
valeurs dans R c’est un problème de valeurs de réponse possibles en nombre limité :
régression. OUI, NON. C’est un problème de classification.
22
Machine learning
𝑥11 … 𝑥1𝑚
. .
X= . . .
. .
𝑥𝑛1 … 𝑥𝑛,𝑚
Le machine learning a pour seul objectif la manipulation de vecteurs et de matrices pour en dégager des
représentations synthétiques des données observées.
23
Machine learning
Que font les algorithmes ?
Quel que soit l’algorithme utilisé, le but sera toujours le même.
• Les algorithmes non supervisés vont chercher à produire des représentations compactes des données,
en regroupant les individus similaires compte tenu des valeurs de la matrice X.
24
Machine learning
Parmi les algorithmes les plus connus selon ces deux axes, on trouve :
Type de problème à
Algorithme Mode d’apprentissage
traiter
Régression linéaire univariée Supervisé Régression
Régression linéaire multivariée Supervisé Régression
Régression polynomiale Supervisé Régression
Régression régularisée Supervisé Régression
Naive Bayes Supervisé Classification
Régression logistique Supervisé Classification
Clustering hiérarchique Non supervisé -
Clustering non hiérarchique Non supervisé -
Arbres de décision Supervisé Régression ou classification
Random forest Supervisé Régression ou classification
Support Vector Machine Supervisé Régression ou classification
25
Machine learning
• L’objectif du machine learning est d’apprendre à partir de données issues d’observations réelles.
• Les données peuvent être de diverses natures et provenir de différentes sources. Selon le cas, elles
sont plus ou moins complexes à manipuler.
• Les algorithmes visent à en extraire des régularités qui permettront l’apprentissage. On distingue :
Les algorithmes de régression (quand la valeur à prédire est continue) des algorithmes de
classification (quand la valeur à prédire est catégorielle).
26
Introduction
27
Introduction
28
Introduction
Variables et Operations
Opérations arithmétiques
29
Introduction
30
Introduction
La meilleure façon de créer une fonction est d'utiliser la structure suivante : def
31
Introduction
Structures de Contrôle :
Dans le monde de la programmation, il existe 3 principales structures de controle pour créer des algorithmes.
• Les alternatives If / Else
• Les boucles For
• Les boucles While
Alternatives If / Else :
Cette structure permet de tester une séquence
d'alternatives. Si une condition est respectée, alors les
instructions qui la suivent sont exécutée et la structure de
contrôle est stoppée, sinon la condition suivante est
testée.
32
Introduction
Structures de Contrôle :
Note importante : Une condition est respectée si et seulement si elle correspond au résultat booléen
True
33
Introduction
Boucle For :
Une boucle for permet de créer des algorithmes itératifs (qui effectuent une certaine tache plusieurs
fois de suite). Pour ça, la boucle parcourt tous les éléments d'un objet dit itérable. Il peut s'agit d'une
liste, d'un dictionnaire, d'un range, d'un tableau numpy, ou bien d'autres objets...
Boucle While :
Une boucle While permet d'effectuer en boucle une action, tant que la condition d'execution est
validée (tant que la condition est True)
34
Introduction
La différence entre les 2 est qu'une liste est mutable alors qu'un Tuple ne l'est pas (on ne peut pas le
changer après qu'il soit crée)
35
Introduction
Indexing et Slicing
Dans une séquence, chaque élément est rangé selon un index (le premier index étant l'index 0)
Pour accéder à un élément d'une liste ou d'un tuple, on utilise une technique appelée Indexing
Pour accéder à plusieurs éléments d'une liste ou d'un tuple, on utilise une technique appelée Slicing
Indexing
36
Introduction
Indexing et Slicing
Slicing
37
Introduction
38
Introduction
39
Introduction
La fonction enumerate est très utile pour sortir à la La fonction zip est aussi très utile pour itérée à travers
fois les éléments d'une liste et leurs index. C'est une 2 listes en parallèles. Si une liste est plus courte que
fonction très utilisée en datascience. l'autre, la boucle for s'arrête à la liste la plus courte
40
Introduction
Solution :
41
Introduction
Dictionnaires
Les dictionnaires sont des structures de contrôle non-ordonnées, c'est-a-dire que les valeurs qu'ils contiennent
ne sont pas rangée selon un index, mais suivant une clef unique.
Une utilisation parfaite des dictionnaires est pour regrouper ensemble des "variables" dans un même
contenaire.
42
Introduction
Dictionnaires
43
Introduction
Dictionnaires
Exercice :
Implémentez une fonction trier(classeur, valeur)
qui place une valeur dans un dictionnaire en
fonction de son signe.
Solution :
44
Introduction
List Comprehension
Les listes compréhension sont une façon habile de créer des listes sur une seule ligne de code, ce qui rend le
code beaucoup plus rapide.
Les deux code ci-dessous effectuent chacun la même opération. On peut voir (grâce à la commande %%time)
que le temps d'exécution avec liste compréhension est bien inférieur au temps d'exécution avec la méthode
append()
45
Introduction
Built-in Functions
Python contient un grand nombre de fonctions intégrées très utiles à connaitre. Cela vous permet de construire
des codes plus rapidement, sans avoir à développer vos propres fonctions pour les taches les plus basique.
• Fonctions de bases : abs(), round(), max(), min(), len(), sum(), any(), all()
• Conversions de types de variables: int() str(), float(), type()
• Conversions de structures de données: list(), tuple()
• Conversions binaires (moins utile en machine learning): bin(), oct(), hex()
• Fonction input()
• Fonction format() (f-string)
• Fonction open()
Fonction de bases
Utiles en toute circonstance !
46
Introduction
Built-in Functions
La fonction input() :
Cette fonction est très utile pour demander à l'utilisateur du programme d'entrer une valeur dans votre
programme.
47
Introduction
Built-in Functions
La fonction format() :
Cette fonction permet d'insérer la valeur d'une variable au sein d'une chaine de caractères (string).
Une méthode plus rapide pour utiliser cette fonction est de faire appel au f-string
48
Introduction
Built-in Functions
La fonction open()
Cette fonction est l'une des plus utile de Python. Elle permet d'ouvrir n'importe quel fichier de votre ordinateur
et de l'utiliser dans Python. Différents modes existent :
49
Introduction
Built-in Functions
La fonction open()
Dans la pratique, on écrit plus souvent with open() as f pour ne
pas avoir a fermer le fichier une fois le travail effectué :
Exercice : 1) Créer un fichier qui contient les nombres carrée de 0 jusqu'a 19.
2) Implémenter un code qui permet de lire ce fichier et d'écrire chaque ligne dans une liste.
Note que la fonction read().splitlines() sera très utile,
Solution :
50
Introduction
Si on compare une List avec un objet ndarray le tableau ndarray beaucoup plus rapide,
meilleur aux calculs scientifique.
51