Vous êtes sur la page 1sur 51

Data Science for business

and finance

Présenté par :
Pr. Achraf BERRAJAA
Outline

1 Introduction

Machine learning

Scikit learn & Machine Learning

Applications réelles de Kaggle et Github

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

• Machine learning Regression


Machine learning • Classification and Logistic Regression
• Unsupervised ML

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

Les télécommunications La médecine


La transmission en parallèle, les réseaux de Les algorithmes de traitements
communication… d’image médicale requièrent de
grandes capacités de calcul.

L’industrie Sciences Les calculs financiers


La classification des images, l’analyse de Le calcul des prix et des risques associés
vidéo, la reconnaissance des formes,
données aux options les plus complexes.
traitement automatique des langues.

Biens de consommation
Sélections des produits, classification des
La logistique
clients ... La planification de la production, transport,
acheminement automatique …

5
Introduction

Qu'est-ce que Intelligence artificielle ?

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.

Qu'est-ce que l'apprentissage automatique ?

L'apprentissage automatique (en anglais : machine learning),


apprentissage artificiel 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, c'est-à-dire d'améliorer leurs performances à
résoudre des tâches sans être explicitement programmés pour
chacune (Wikipédia).

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 ??

Les explication selon les gens peut être différents, alors


comment on peut rentrer cette définition là et cette
compréhension que ça c′est un chat à un système par des
simple règles. C′est pas possible.

La solution : faire apprendre au système que ça c′est un chat.


Donc le système qui va devoir comprendre par lui même que ça
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 ?

La science des données est un mélange multidisciplinaire d'inférence


de données, de développement d'algorithmes et de technologie afin
de résoudre des problèmes analytiquement complexes.

Data science is a multidisciplinary blend of data inference, algorithm


development, and technology in order to solve analytically complex
problems.

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

Que sont les données ?

 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).

Les opération supportées par chaque type de données


Type de données Opérations supportées
Quantitatives continues Calculs, égalité/différence, infériorité/supériorité
Quantitatives discrètes Calculs, égalité/différence, infériorité/supériorité
Qualitatives nominales Égalité/différence
Qualitatives ordinales Égalité/différence, infériorité/supériorité

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.

Sachez qu’il existe un niveau de structuration intermédiaire, dit semi−structuré.

Les différents niveaux de structuration des donné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

Non structuré Texte, image, vidéo Web, e-mail, documents Complexe

15
Introduction

Machine Learning application


Un système de reconnaissance faciale est
Système de une application logicielle visant à
reconnaissance reconnaître une personne grâce à son
faciale visage de manière automatique.

Le filtrage des e-mails est le traitement


Filtre anti-spam des e-mails pour les organiser selon des
critères spécifiés

Véhicule Un véhicule autonome est un véhicule


autonome automobile apte à rouler, sur route ouverte,
(Self-driving sans intervention d'un conducteur.
car)

Les systèmes de recommandation sont une


Système de forme spécifique de filtrage de l'information
visant à présenter les éléments
recommandation
d'information qui sont susceptibles
d'intéresser l'utilisateur.

16
Introduction

L'apprentissage par renforcement consiste,


L'apprentissage supervisé est une pour un agent autonome,
tâche d'apprentissage automatique à apprendre les actions à prendre,
consistant à apprendre une fonction de à partir d'expériences, de façon à optimiser
prédiction à partir d'exemples annotés une récompense quantitative au cours
(avec Target). du temps

L'apprentissage non supervisé désigne la


situation d'apprentissage automatique où
les données ne sont pas étiquetées.

17
Machine learning

Apprentissage supervisé et non supervisé

18
Machine learning

Apprentissage supervisé et non supervisé


Les algorithmes supervisés extraient de la connaissance à partir d’un ensemble de données contenant
des couples entrée−sortie.

• 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.

les algorithmes non supervisés n’intègrent pas la notion d’entrée−sortie.

• 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

Algorithmes de régression et de classification

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

Algorithmes de régression et de classification

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

Représentation matricielle des données


Si on a ′m′ variables décrivant ′n′ individus, ils sont représentés par une matrice X de dimensions (n,m).

On la représente comme suit :

𝑥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.

• Les algorithmes supervisés, c’est un peu différent.


 X va représenter les valeurs d’entrée (on parle aussi d’attributs ou de features).
 Pour chaque individu il faut un vecteur Y représentant les valeurs de sortie ; il sera donc de
dimension (m,1).
• Le but du jeu est de décrire une relation liant X à Y. Pour cela, nous avons besoin d’un deuxième
vecteur, nommé A.
Lorsqu’on recherche ces valeurs de A, on
• Cela revient à écrire : parle d’entrainement ou d’apprentissage
du modèle.
𝑦1 𝑥11 … 𝑥1𝑚 A1
. . . .
. = . . . . Pour un problème donne, différents
. . . . algorithmes donneront des valeurs de A
𝑦𝑛 𝑥𝑛1 … 𝑥𝑛,𝑚 A𝑚 plus ou moins efficaces pour modéliser les
données.

24
Machine learning

Parmi les algorithmes les plus connus selon ces deux axes, on trouve :

Taxinomie des algorithmes

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

À RETENIR Savoir poser un problème de data science

• 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

Outils nécessaires pour l'apprentissage automatique

Anaconda est une distribution libre et


open source des langages de
programmation Python et R appliqué au
développement d'applications dédiées à la
science des données et à l'apprentissage
automatique, qui vise à simplifier la
gestion des paquets et de déploiement.

27
Introduction

Outils nécessaires pour l'apprentissage automatique

28
Introduction

Les Bases de Python - Variables et Fonctions

Variables et Operations

Il existe 4 grands types de variables

int (nombre entier)


float (nombre décimal)
string (chaine de characteres)
bool (booléen)

Opérations arithmétiques

29
Introduction

Les Bases de Python - Variables et Fonctions

Opérations de comparaison Opérations Logiques

30
Introduction

Les Bases de Python - Variables et Fonctions


Fonctions
Une fonction anonyme est une fonction créée avec lambda. Ce type de fonction est basique et est utile
pour être intégrée au milieu de structures de contrôles ou bien d'autres fonctions. On l'utilise rarement.

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

Cela permet de développer des


algorithmes avec des mélanges
d'opérations Logiques et d'opérations
de comparaisons.

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

Structure de données (Listes et Tuples) :


Une structure de données est une variable capable de contenir plusieurs valeurs à la fois. Une structure
de données peut former une séquence si les valeurs qui la composent sont rangées dans un certains
ordre. C'est le cas des listes et des tuples. A l'inverse un Dictionnaire ne forme pas une séquence.

Création de Listes et de Tuples


Une liste ou un tuple peuvent contenir tout types de valeurs (int, float, bool, string). On dit que ce sont
des structures hétérogènes.

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

Actions utiles sur les listes :

38
Introduction

Actions utiles sur les listes :


Les listes et les tuples fonctionnent en harmonies avec les structures de controle if/else et For

39
Introduction

Actions utiles sur les listes :

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

Structure de données (Listes et Tuples) :


Exercice :
Transformer le code suivant qui donne la suite de Fibonacci
pour enregistrer les résultats dans une liste et retourner cette
liste a la fin de la fonction

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

Voici comment ajouter une association


key/value dans notre dictionnaire
(attention si la clef existe déjà elle est
remplacée)

Attention : si vous cherchez une clef qui


n'existe pas dans un dictionnaire, python
vous retourne une erreur. Pour éviter
cela, vous pouvez utiliser la méthode get()

Pour utiliser une boucle for avec un


dictionnaire, il est utile d'utiliser la
méthode items() qui retourne a la fois les
clefs et les valeurs

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 :

• le mode 'r' : lire un fichier de votre ordinateur


• le mode 'w' : écrire un fichier sur votre ordinateur
• le mode 'a' : (append) ajouter du contenu dans un fichier existant

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

Numpy : Tableau ndarray


NumPy est une bibliothèque pour langage de programmation Python, destinée à
manipuler des matrices ou tableaux multidimensionnels ainsi que des fonctions
mathématiques opérant sur ces tableaux.

Il nous permet de créer des tableaux à une


dimension à deux dimensions jusqu’à N dimensions.

Si on compare une List avec un objet ndarray  le tableau ndarray beaucoup plus rapide,
meilleur aux calculs scientifique.

51

Vous aimerez peut-être aussi