Ebook MachineLearnia

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 100

Introduction Pourquoi devez-vous lire ce livre ?

1
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Introduction Pourquoi devez-vous lire ce livre ?

2
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Introduction Pourquoi devez-vous lire ce livre ?

Table des matières


Introduction – Pourquoi devez-vous lire ce livre ? ................................................................ 4
Qui suis-je ?............................................................................................................................................. 6
Ce que vous allez apprendre dans les 7 prochains jours ........................................................................... 6

Chapitre 1 : Les fondations du Machine Learning ................................................................. 8


Comprendre pourquoi le Machine Learning est utilisé ............................................................................. 9
Laisser la Machine apprendre à partir d e périences.............................................................................. 11
L Apprentissage S per isé ..................................................................................................................... 12
A tres méthodes d apprentissage ......................................................................................................... 17
Les 4 notions clefs du Machine Learning que vous devez absolument retenir ......................................... 18

Chapitre 2 : La Régression Linéaire ..................................................................................... 19


Petit rappel : Apprentissage Supervisé et problème de Régression ......................................................... 20
Apprenez votre premier modèle linéaire ............................................................................................... 20
Résumé des étapes pour développer un programme de Régression Linéaire .......................................... 28

Chapitre 3 : Adieu Excel, bonjour Python. Vous voilà Data Scientist ! ................................ 29
Installer Python Anaconda : le meilleur outil de Machine Learning ......................................................... 30
Apprenez la programmation en 15 minutes ........................................................................................... 32
Développer enfin votre premier programme de Machine Learning ........................................................ 38
Résumé de ce Chapitre .......................................................................................................................... 46

Chapitre 4 : Régression Logistique et Algorithmes de Classification................................... 47


Les problèmes de Classification ............................................................................................................. 48
Le modèle de Régression logistique ....................................................................................................... 49
Développer un programme de classification binaire dans Jupyter .......................................................... 53
L Algorithme de Nearest Neighbo r....................................................................................................... 55
Vision par ordinateur avec K-NN dans Jupyter ....................................................................................... 58

Chapitre 5 : Réseaux de Neurones ...................................................................................... 61


Introduction aux Réseaux de Neurones ................................................................................................. 62
Programmer otre premier Résea de Ne rones po r identifier des espèces d Iris ............................... 68
Rés mé de l apprentissage s per isé .................................................................................................... 69

Chapitre 6 : Apprentissage Non-Supervisé ......................................................................... 70


Unsupervised Learning .......................................................................................................................... 71
Algorithme de K-Mean Clustering .......................................................................................................... 73
Programmer un K-Mean Clustering........................................................................................................ 74

Chapitre 7 : Comment gérer un projet de Machine Learning .............................................. 77


L erre r q e font la majorité des No ices .............................................................................................. 78
Le pl s important ce n est pas l algorithme ce sont les Données .......................................................... 79
Over fitting et Régularisation ................................................................................................................. 83
Diagnostiquer un modèle de Machine Learning ..................................................................................... 87
Cycle de développement du Machine Learning ...................................................................................... 91

CONCLUSION ...................................................................................................................... 93
Lexique : Formule Résumé du Machine Learning ............................................................... 94

3
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Introduction Pourquoi devez-vous lire ce livre ?

In od c ion Po oi de e o li e
ce li e
En 2019, Le Machine Learning est tout autour de nous. Il intervient
chaque fois que nous cherchons un mot dans Google, une série sur Netflix,
une vidéo sur YouTube, un produit sur Amazon.
Grâce au Machine Learning, des millions de cancers peuvent être
diagnostiqués chaque année, des milliards de spams et de virus
informatiques sont bloqués pour protéger nos ordinateurs, et sans lui la
oit re a tonome n e isterait pe t-être jamais.

Pourtant le grand public, qui lui donne à tort le nom « Intelligence


Artificielle », en ignore presque tout. Et il est bien conn q e l Homme a
pe r de ce q il ne comprend pas.
En lisant ce guide, je vous invite à un voyage qui va vous permettre de
briser la glace a ec l Intelligence Artificielle et d apprendre r ellement ne
nouvelle compétence professionnelle : Le Machine Learning.

4
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Introduction Pourquoi devez-vous lire ce livre ?

Apr s a oir l ce g ide, o s fere partie des pionniers d n no ea


monde, vous donnant accès à des opportunités professionnelles
extraordinaires, et vous aurez développé votre capacité à résoudre des
problèmes.
Quel que soit votre métier (Ingénierie, Marketing, Finance, ou même
artiste) ce livre vous sera utile, j en s is con ainc .

Harvard Business Review, 2012

Salaire de base moyen pour un Data Scientist à Paris. Glassdoor, 2019.

5
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Introduction Pourquoi devez-vous lire ce livre ?

Qui suis-je ?
Je m appelle G illa me Saint-Cirgue et je suis ingénieur en Machine
Learning au Royaume-Uni.
J e erce ce m tier alors q e, comme
vous peut-être, je n ai pas e la
chance de recevoir des cours
d Intelligence Artificielle a l c e, ni
même dans les études supérieures.

J ai d to t apprendre de moi-même,
en investissant mon temps et mon
argent dans des formations du MIT et
de Stanford et en passant des week-
end entiers à développer mes propres
projets.
Mais passionné par le Machine Learning, il n a pas t difficile de laisser
de côté les distractions pour me consacrer à mon développement
personnel.

A travers ce guide, je e o s offrir ce q e j ai appris car le monde a


urgemment besoin de se former en Intelligence Artificielle.
Que vous souhaitiez changer de vie, de carrière, ou bien développer vos
compétences à résoudre des problèmes, ce livre vous y aidera.
C est votre tour de passer l action !

Ce que vous allez apprendre dans les 7 prochains


jours
J ai crit ce li re en 7 chapitres qui retracent le cheminement naturel et
logique pour apprendre le Machine Learning sans aucun prérequis.
Je vous invite à lire un chapitre par jour, ce qui ne vous prendra pas plus
d ne demi-heure par jour.
Pour chaque chapitre, je me suis inspiré des meilleures formations qui
e istent ce jo r (parfois pa antes) et q e j ai p s i re (Stanford, MIT,
UCL, ).

6
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Introduction Pourquoi devez-vous lire ce livre ?

Jour 1 : Les fondations du Machine Learning


Jour 2 : La Régression Linéaire
Jour 3 : Votre premier programme de Machine Learning
Jour 4 : La Régression Logistique et les Algorithmes de Classification
Jour 5 : Les Réseaux de Neurones
Jour 6 : Unsupervised Learning
Jour 7 : Comment gérer un projet de Machine Learning

En avant pour ce voyage qui changera peut-être votre vie comme il a pu


changer la mienne !

7
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 1 : Les fondations du Machine Learning

Cha i e Le
fonda ion d Machine
Lea ning

Dans ce premier chapitre, nous allons voir :


Pourquoi le Machine Learning est vraiment utile
La définition du Machine Learning
Les 3 méthodes d apprentissage
Les 2 applications les plus courantes en Machine Learning
Les 4 notions clefs q i s appliq ent à tout le Machine Learning

8
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 1 : Les fondations du Machine Learning

Comprendre pourquoi le Machine Learning est


utilisé
Po r comprendre a mie ce q est le Machine Learning et comment cela
fonctionne, il faut commencer par comprendre pourquoi il est utilisé.

Nous, les êtres humains, sommes quotidiennement confronté à des


problèmes que nous cherchons à résoudre. Par exemple : Comment
construire un pont plus solide ? Comment augmenter nos bénéfices ?
Comment éliminer le cancer ? Ou tout simplement quelle route emprunter
pour aller au travail ?

PROBLEME A RESOUDRE

Pour nous aider dans nos recherches, nous avons inventé l ordinateur,
qui permet de résoudre en quelques minutes des calculs qui nous
prendraient des millions d ann es effect er. Mais il fa t sa oir q n
ordinate r ne sait en r alit faire q ne chose : résoudre les calculs
qu on lui donne.

9
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 1 : Les fondations du Machine Learning

À partir de là, 2 situations possibles :


1. On connait le calcul à effectuer pour résoudre notre problème.

Dans ce cas, facile ! On entre ce calc l dans l ordinate r, c est


ce q on appelle la programmation, et l ordinate r no s
donne le résultat.

Exemple :
Déterminer la structure d’un pont

2. On ne connait pas le calcul qui résout notre problème

Dans ce cas... on est bloqué. Impossible de donner à un


ordinateur un calcul que nous ne connaissons pas.

C es comme o loir pos er ne le re q e no s


n a rions pas cri e.

Exemples :
Reconnaitre un visage sur une photo
Prédire le cours de la Bourse
Eliminer le cancer
Composer de la musique
Conduire une voiture

Doit-on donc perdre tout espoir de voir un jour un ordinateur nous aider
dans la lutte contre le cancer ?
Bien sûr que non ! Le Machine Learning a justement été inventé pour
venir débloquer la situation 2 (quand on ne connait pas le calcul) en
utilisant une technique audacieuse, que je vais vous dévoiler tout de
suite.

10
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 1 : Les fondations du Machine Learning

Laisser la Machine apprendre à partir


d e p riences
Le Machine Learning consiste laisser l ordinate r apprendre quel calcul
effect er, pl t t q e de l i donner ce calc l (c est-à-dire le programmer
de façon explicite).

C est en tout cas la définition du Machine Learning selon son inventeur


Arthur Samuel, un mathématicien américain qui a développé un
programme pouvant apprendre tout seul comment jouer aux Dames en
1959.

“Machine Learning is the science of


getting computers to learn without
being explicitly programmed.”
Arthur Samuel, 1959.

Un autre américain du nom de Tom Mitchell donna en 1998 une définition


n pe pl s moderne d Machine Learning en non ant q ne machine
apprend q and sa performance faire ne certaine t che s am liore avec
de nouvelles expériences.

Mais comment apprendre ?


Po r donner n ordinate r la capacit d apprendre, on utilise des
méthodes d apprentissage qui sont fortement inspirées de la façon
dont nous, les êtres humains, apprenons à faire des choses. Parmi ces
méthodes, on compte :
L apprentissage supervisé (Supervised Learning)
L apprentissage non supervisé (Unsupervised Learning)
L apprentissage par renforcement (Reinforcement
Learning)

Vo ons d s pr sent ce q est l apprentissage s per is , qui est la


méthode la plus utilisée en Machine Learning.

11
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 1 : Les fondations du Machine Learning

L Apprentissage Supervis
Imaginez que vous commenciez à apprendre le chinois.
Pour ce faire, il vous faudra soit acheter un livre de traduction chinois-
français, ou bien trouver un professeur de chinois.

CHIEN

Le rôle du professeur ou du livre de traduction sera de superviser votre


apprentissage en vous fournissant des exemples de traductions français-
chinois que vous devrez mémoriser.
On parle ainsi d apprentissage supervisé lorsq e l on fo rnit ne
machine beaucoup d e emples q elle doit étudier.
Pour maîtriser l apprentissage s per is , il fa t absol ment comprendre
et connaitre les 4 notions suivantes :
Le Dataset
Le Modèle et ses paramètres
La Fonction Coût
L Algorithme d apprentissage

Notion 1 : Apprendre partir d e emples (Dataset)


Comme pour apprendre la langue chinoise, on parle d apprentissage
s per is lorsq e l on fo rnit ne machine bea co p d e emples 𝒙, 𝒚
dans le but de lui faire apprendre la relation qui relie 𝒙 à 𝒚.

X Y

CHIEN

12
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 1 : Les fondations du Machine Learning

En Machine Learning, on compile ces exemples 𝒙, 𝒚 dans un tableau


q e l on appelle Dataset :
La variable 𝒚 porte le nom de target (la cible). C est la
valeur que l on cherche pr dire.

La variable 𝒙 porte le nom de feature (facteur). Un facteur


influence la valeur de 𝒚, et on a en général beaucoup de
features 𝒙𝟏 , 𝒙𝟐 , … dans notre Dataset q e l on regro pe
dans une matrice 𝑿.

Ci-desso s, n Dataset q i regro pe des e emples d appartements avec


leur prix 𝒚 ainsi que certaines de leurs caractéristiques (features).

Ce Dataset, 99.9% des gens se contentent de l anal ser dans Excel. La


bonne no elle, c est q e vous ferez bientôt partie des 0.1% de gens qui
peuvent faire du Machine Learning avec ça !

13
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 1 : Les fondations du Machine Learning

Notion 2 : Développer un modèle à partir du Dataset


En Machine Learning, on développe un modèle à partir de ce Dataset. Il
pe t s agir d n mod le linéaire comme vous pouvez le voir à gauche, ou
bien un modèle non-linéaire comme vous pouvez le voir à droite. Nous
verrons dans ce livre comment choisir n mod le pl t t q n a tre.

On définit 𝒂, 𝒃, 𝒄, etc. comme étant les paramètres d n mod le.

Notion 3 : Les erreurs de notre modèle - la Fonction


Coût
A tre chose noter est q n mod le no s reto rne des erre rs par
rapport à notre Dataset. On appelle Fonction Coût l ensemble de ces
erreurs (le plus souvent on prend la moyenne quadratique des erreurs
comme dans le chapitre 2).

14
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 1 : Les fondations du Machine Learning

Allons droit au but : A oir n bon mod le, c est a oir n mod le q i no s
donne de petites erreurs, donc une petite Fonction Coût.

Notion 4 : Apprendre, c est minimiser la Fonction Coût


Ainsi l objectif central en Supervised Learning, c est de tro er les
paramètres du modèle qui minimisent la Fonction Coût. Pour cela, on
utilise un algorithme d apprentissage, l e emple le pl s co rant tant
l algorithme de Gradient Descent, que vous apprendrez dans le chapitre
2.

Les applications du Supervised Learning


Avec le Supervised Learning on peut développer des modèles pour
résoudre 2 types de problèmes :
Les problèmes de Régression
Les problèmes de Classification

Dans les probl mes de r gression, on cherche pr dire la ale r d ne


variable continue, c est-à-dire une variable qui peut prendre une infinité
de valeurs. Par exemple :
Pr dire le pri d n appartement 𝑦 selon sa surface
habitable 𝑥

15
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 1 : Les fondations du Machine Learning

Pr dire la q antit d essence consomm e 𝑦 selon la


distance parcourue 𝑥

Dans un problème de classification, on cherche à classer un objet dans


diff rentes classes, c est-à-dire q e l on cherche pr dire la ale r d ne
variable discrète (qui ne prend q n nombre fini de valeurs). Par
exemple :
Prédire si un email est un spam (𝑐𝑙𝑎𝑠𝑠𝑒 𝑦 = 1) ou non
(𝑐𝑙𝑎𝑠𝑠𝑒 𝑦 = 0) selon le nombre de liens pr sent dans l email
𝑥
Prédire si une tumeur est maligne 𝑦 = 1 ou bénigne 𝑦 =
0 selon la taille de la tumeur 𝒙𝟏 et l ge d patient 𝒙𝟐

Dans le cas d n probl me de classification, on repr sente so ent les


classes par des symboles, plutôt que par leur valeur numérique (0, 1, )

Régression Classification

Mais tout ça, on peut le faire dans Excel ?


A ce stade, o s po rrie penser q e calc ler le pri d n appartement
selon sa surface habitable, tout le monde peut le faire dans Excel (Il
existe même la fonction Régression dans Excel).
La force du Machine Learning, c est q il est très facile de développer des
modèles très complexes qui peuvent analyser des milliers de features 𝑥
q n tre h main ne serait pas capable de prendre en compte pour
faire son calcul (et Excel non plus).

16
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 1 : Les fondations du Machine Learning

Par exemple, pour prédire le prix d n appartement 𝑦 , un modèle de


Machine Learning peut prendre en compte :
sa surface 𝒙𝟏
sa localisation 𝒙𝟐
sa qualité 𝒙𝟑
sa proximité avec un parc 𝒙𝟒
etc.
De même, pour prédire si un email est un spam 𝑦 , le Machine Learning
peut analyser :
le nombre de liens 𝒙𝟏
le nombre de fa tes d orthographe 𝒙𝟐
etc.
Plus il y a de features disponibles, pl s il e iste d informations pour que le
mod le prenne des d cisions intelligentes , c est l intelligence artificielle.

Autres m thodes d apprentissage


Vo s connaisse d sormais l apprentissage s per is , q i s inspire de la
façon dont nous, les êtres humains, pourrions apprendre une langue
comme le chinois en t diant l aide d n bo q in les associations
français → chinois 𝑥 → 𝑦 .

Pourtant, si vous vous perdez, seul, en Chine, sans bouquin, sans


traducteur, il existe tout de même une méthode pour apprendre le
chinois. C est l apprentissage non-supervisé, et je vous dévoilerai
comment réussir cet exploit dans le chapitre 6.

Finalement, une 3ième m thode d apprentissage asse pop laire en


robotique est l apprentissage par renforcement.
Cette dernière m thode s inspire de la fa on dont no s d q ons nos
animaux de compagnie, en leur offrant une friandise quand ils font une
bonne action. Cette méthode étant mathématiquement plus avancée que
les de premi res, je n en parlerai pas dans ce li re, mais je o s in ite
à lire mon site si vous souhaitez en savoir plus !

17
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 1 : Les fondations du Machine Learning

Les 4 notions clefs du Machine Learning que vous


devez absolument retenir
Le Machine Learning est un domaine vaste et complexe, et de mon
expérience les gens perdent parfois de e l essentiel, même en suivant
des formations payantes.
Pour sortir du lot, il faut avoir les idées claires sur les bases du Machine
Learning. Vous devez ainsi retenir 4 notions essentielles, et vous verrez
q elles o s s i ront dans to s vos projets de Machine Learning.
1. Le Dataset
En Machine Learning, to t d marre d n Dataset qui contient nos
données. Dans l apprentissage s per is , le Dataset contient les
questions 𝑥 et les réponses 𝑦 au problème que la machine doit
résoudre.
2. Le modèle et ses paramètres
A partir de ce Dataset, on crée un modèle, q i n est a tre q ne
fonction mathématique. Les coefficients de cette fonction sont les
paramètres du modèle.
3. La Fonction Coût
Lorsq on teste notre mod le s r le Dataset, cel i-ci nous donne des
erreurs. L ensemble de ces erre rs, c est ce q on appelle la Fonction
Coût.
4. L Algorithme d apprentissage
L id e centrale d Machine Learning, c est de laisser la machine tro er
quels sont les paramètres de notre modèle qui minimisent la Fonction
Coût.

18
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 2 : La Régression Linéaire

Cha i e La
Rég e ion Linéai e

Il est temps de mettre en pratique les concepts que vous avez appris. A
tra ers l e emple de la Régression Linéaire, vous allez mieux
comprendre les notions de :
Dataset
Modèle
Fonction Coût
Gradient Descent

19
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 2 : La Régression Linéaire

Petit rappel : Apprentissage Supervisé et


problème de Régression
Si vous cherchez à pr dire le co rs de la bo rse, le pri d n
appartement, o bien l ol tion de la temp rat re s r Terre, alors vous
cherchez en fait à résoudre un problème de régression.
Si vous disposez d n Dataset 𝑥, 𝑦 alors vous pouvez utiliser
l apprentissage supervisé pour développer un modèle de régression.
Dans ce chapitre je vais vous montrer comment développer votre premier
modèle de Machine Learning !

Apprenez votre premier modèle linéaire


Voici la recette à suivre pour réaliser votre premier modèle de Machine
Learning.

1. Récolter vos données


Imaginez que plusieurs agences immobilières vous aient fourni des
données sur des appartements à vendre, notamment le prix de
l appartement 𝒚 et la surface habitable 𝒙 . En Machine Learning, on dit
que vous disposez de 𝒎 e emples d appartements.
On désigne :
𝒊
𝒙 la s rface habitable de l e emple 𝒊
𝒊
𝒚 le pri de l e emple 𝒊

En visualisant votre Dataset, vous obtenez le nuage de points suivant :

20
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 2 : La Régression Linéaire

2. Créer un modèle linéaire


A partir de ces données, on développe un modèle linéaire 𝒇 𝒙 = 𝒂𝒙 + 𝒃
où 𝒂 et 𝒃 sont les paramètres du modèle.
Un bon modèle donne de petites erreurs entre ses prédictions 𝒇 𝒙 et les
exemples 𝒚 du Dataset.
Nous ne connaissons pas les valeurs des paramètres 𝒂 et 𝒃, ce sera le
r le de la machine de les tro er, de sorte tracer n mod le q i s ins re
bien dans notre nuage de point comme ci-dessous :

3. Définir La Fonction Coût


Pour la régression linéaire, on utilise la norme euclidienne pour mesurer
les erreurs entre 𝒇 𝒙 et 𝒚 .

Concr tement, oici la form le po r e primer l erre r 𝑖 entre le prix 𝒚𝒊


et la prédiction faites en utilisant la surface 𝒙 𝒊 :
𝑖 𝑖 𝑖 2
𝑒𝑟𝑟𝑒𝑢𝑟 = 𝑓 𝑥 − 𝑦

21
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 2 : La Régression Linéaire

Par exemple, imaginez que le 10ième exemple de votre Dataset soit un


appartement de 𝑥 10 = 80 𝑚2 dont le pri s l e 𝑦 10 = 100,000 et
que votre modèle prédise un prix de 𝑓 𝑥 10 100,002 . L erre r po r
cette exemple est donc :

10 10 10 2
𝑒𝑟𝑟𝑒𝑢𝑟 = 𝑓 𝑥 − 𝑦
10 2
𝑒𝑟𝑟𝑒𝑢𝑟 = 100,002 − 100,000
10 2
𝑒𝑟𝑟𝑒𝑢𝑟 = 2
10
𝑒𝑟𝑟𝑒𝑢𝑟 = 4
Chaq e pr diction s accompagne d ne erre r, on a donc 𝒎 erreurs.

On définit la Fonction Coût 𝑱 𝒂, 𝒃 comme étant la moyenne de toutes


les erreurs :
𝑚
1
𝐽 𝑎, 𝑏 = 𝑒𝑟𝑟𝑒𝑢𝑟𝑖
2𝑚
𝑖=1
𝒎
𝟏 𝟐
𝑱 𝒂, 𝒃 =
𝟐𝒎
𝒇 𝒙𝒊 − 𝒚𝒊
𝒊=𝟏

Note : En français, cette fonction a un nom : c est l erreur quadratique


moyenne (Mean Squared Error)

22
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 2 : La Régression Linéaire

4. Trouver les paramètres qui minimisent la Fonction


Coût
La prochaine tape est l tape la pl s e citante, il s agit de laisser la
machine apprendre quels sont les paramètres qui minimisent la Fonction
Coût, c est-à-dire les paramètres qui nous donnent le meilleur modèle.

Po r tro er le minim m, on tilise n algorithme d optimisation q i


s appelle Gradient Descent (la descente de gradient).

Comprendre le Gradient Descent (la descente de gradient)


Imaginez-vous perdu en montagne. Votre but est de rejoindre le refuge
qui se trouve au point le plus bas de la all e. Vo s n a e pas pris de
carte avec vous donc vous ne connaissez pas les coordonnées de ce
refuge, vous devez le trouver tout seul.

Pour vous en sortir, voici une stratégie à adopter :


1. Depuis votre position actuelle, vous partez en direction de là où la
pente descend le plus fort.
2. Vous avancez une certaine distance en suivant cette direction
coûte que coûte (même si ça implique de remonter une pente)
3. Une fois cette distance parcourue, vous répétez les 2 premières
opérations en boucle, jusqu atteindre le point le pl s bas de la
vallée.

23
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 2 : La Régression Linéaire

Etape 1: Trouver la pente la Etape 2: Marcher une certaine Etape 3: Répéter les étapes 1
plus forte distance dans cette direction et 2 en boucle

Les tapes 1, 2 et 3 forment ce q on appelle l algorithme de Gradient


Descent.
Cet algorithme vous permet de trouver le minimum de la Fonction Coût
𝑱 𝒂, 𝒃 (le point le plus bas de la montagne) en partant de coordonnées 𝒂
et 𝒃 aléatoires (votre position initiale dans la montagne) :
1. Calculer la pente de la Fonction Coût, c est-à-dire la dérivée de
𝑱 𝒂, 𝒃 .
2. Evoluer d une certaine distance ∝ dans la direction de la pente la
plus forte. Cela a pour résultat de modifier les paramètres 𝒂 et 𝒃
3. Recommencer les étapes 1 et 2 j sq atteindre le minim m de
𝑱 𝒂, 𝒃 .
Po r ill strer l algorithme, o e le dessin ci-dessous, où je montre la
recherche du paramètre 𝒂 id al (la m me chose s appliq e a param tre
𝒃)

24
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 2 : La Régression Linéaire

Revenons à nos moutons : Comment utiliser l algorithme de


Gradient Descent
Pour rappel, no s a ons j sq pr sent cr un Dataset, développé un
modèle aux paramètres inconnus, et exprimé la Fonction Coût 𝑱 𝒂, 𝒃
associée à ce modèle.
Notre objectif final : Trouver les paramètres 𝒂 et 𝒃 qui minimisent 𝑱 𝒂, 𝒃 .
Pour cela, nous allons choisir 𝒂 et 𝒃 au hasard (nous allons nous perdre
en montagne) puis allons utiliser en boucle la descente de gradient pour
mettre à jour nos paramètres dans la direction de la Fonction Coût la plus
faible.

𝑅é𝑝𝑒𝑡𝑒𝑟 𝑒𝑛 𝑏𝑜𝑢𝑐𝑙𝑒:
𝝏 𝑱 𝒂, 𝒃
𝒂=𝒂−∝
𝝏𝒂
𝝏 𝑱 𝒂, 𝒃
𝒃 =𝒃−∝
𝝏𝒃

Je vous explique : à chaque itération de cette boucle, les paramètres 𝒂 et


𝒃 sont mis à jour en soustrayant leur propre valeur à la valeur de la
𝝏 𝑱 𝒂,𝒃
pente multipliée par la distance à parcourir ∝. On appelle ∝ la
𝝏…
itesse d apprentissage (Learning rate).
Si la vitesse est trop lente, le modèle peut mettre longtemps à être
entraîné, mais si la vitesse est trop grande, alors la distance parcourue
est trop longue et le modèle peut ne jamais converger. Il est important de
trouver un juste milieu. Le dessin ci-dessous illustre mes propos.

25
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 2 : La Régression Linéaire

Une fois cet algorithme programmé, vous allez vivre le moment le plus
excitant de votre vie de Data Scientist : voir votre première intelligence
artificielle apprendre pr dire le pri d n appartement selon sa
surface habitable. Vous verrez comme ci-dessous que votre algorithme
arrive à minimiser la Fonction Coût a ec le nombre d it rations.

A partir de l , c est la porte ouverte aux algorithmes qui automatisent les


transactions immobilières, et le même concept que celui que vous venez
d apprendre sera appliq po r apprendre ne machine comment
reconnaitre un visage sur une photo, comment prédire le cours de la
bourse, etc.
Mais a ant de oir la magie s op rer, il faut avoir préalablement calculer
les dérivées partielles de la Fonction Coût.

Calcul des dérivées partielles


Po r impl menter l algorithme de Gradient Descent, il fa t donc calculer
les dérivées partielles de la Fonction Coût. Rappelez- o s q en
mathématique, la dérivée d ne fonction en n point no s donne la ale r
de sa pente en ce point.

Fonction Coût :
𝒎
𝟏 𝒊 𝒊 𝟐
𝑱 𝒂, 𝒃 = 𝒂𝒙 +𝒃 − 𝒚
𝟐𝒎
𝒊=𝟏

26
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 2 : La Régression Linéaire

Dérivée selon le paramètre 𝒂 :


𝒎
𝝏 𝑱 𝒂, 𝒃 𝟏 𝒊 𝒊 𝒊
= 𝒂𝒙 +𝒃 − 𝒚 ×𝒙
𝝏𝒂 𝒎
𝒊=𝟏

Dérivée selon le paramètre 𝒃 :


𝒎
𝝏 𝑱 𝒂, 𝒃 𝟏 𝒊 𝒊
= 𝒂𝒙 +𝒃 − 𝒚
𝝏𝒃 𝒎
𝒊=𝟏

Note :
Surtout ne soyez pas impressionnés par ces formules mathématiques ! Il
s’agit simplement de la dérivée d’une fonction composée :
𝑔 ∘𝑓 = 𝑓 × 𝑔′ ∘ 𝑓
Avec : 𝒇 = 𝒂𝒙 + 𝒃 − 𝒚 et 𝒈 = 𝒇 𝟐

1
En dérivant, le carré tombe et se simplifie avec la fraction pour devenir
2𝑚
1
et 𝒙 𝒊 apparait en facteur pour la dérivée par rapport à 𝑎.
𝑚

Utilisation des matrices et des vecteurs


Dans la pratique, on exprime notre Dataset et nos paramètres sous forme
matricielle, ce qui simplifie beaucoup les calculs. On créer ainsi un
vecteur 𝜽 = 𝒂𝒃 ∈ ℝ 𝒏+𝟏 qui contient tous les paramètres pour notre
modèle, un vecteur 𝒚 ∈ ℝ𝒎×𝟏 et une matrice 𝑋 ∈ ℝ𝒎×𝒏 qui inclut toutes
les features 𝒏. Dans la régression linéaire, 𝒏 = 𝟏.
Au cas où vous seriez rouillé en algèbre : une matrice ℝ𝒎×𝒏 , c est comme
un tableau avec 𝑚 𝑙𝑖𝑔𝑛𝑒𝑠 𝑒𝑡 𝑛 𝑐𝑜𝑙𝑜𝑛𝑛𝑒𝑠.

27
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 2 : La Régression Linéaire

Résumé des étapes pour développer un


programme de Régression Linéaire
La recette de la régression linéaire :
1. Récolter des données 𝑿, 𝒚 𝑎𝑣𝑒𝑐 𝑿, 𝒚 ∈ ℝ𝒎×𝟏
2. Donner à la machine un modèle linéaire 𝑭 𝑿 = 𝑿. 𝜽 𝒐ù 𝜽 = 𝒂
𝒃
𝟏
3. Créer la Fonction Coût 𝑱 𝜽 = ∑ 𝑭 𝑿 −𝒚 𝟐
𝟐𝒎

4. Calc ler le gradient et tiliser l algorithme de Gradient Descent


𝑅é𝑝𝑒𝑡𝑒𝑟 𝑒𝑛 𝑏𝑜𝑢𝑐𝑙𝑒:
𝝏𝑱 𝜽
𝜽= 𝜽− 𝜶×
𝝏𝜽
𝜕𝐽 𝜃 1
𝑮𝒓𝒂𝒅𝒊𝒆𝒏𝒕: = 𝑋 . 𝐹 𝑋 −𝑌
𝜕𝜃 𝑚

Le 𝐿𝑒𝑎𝑟𝑛𝑖𝑛𝑔 𝑟𝑎𝑡𝑒 𝛼 prend le nom d h per-paramètre de par son influence


s r la performance finale d mod le (s il est trop grand o trop petit, la
fonction le Gradient Descent ne converge pas).
Dans le prochain chapitre, vous allez apprendre à programmer votre
premier algorithme de Machine Learning en utilisant Python.

28
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 3 : Adieu Excel, bonjour Python. Vous voilà Data Scientist !

Cha i e Adie
E cel bonjo P hon
Vo oilà Da a
Scien i

Fini la th orie, il est temps de passer l action !


Dans ce chapitre, vous allez apprendre à écrire de vrais programmes de
Machine Learning en utilisant Python et le module Sklearn.
Spécifiquement pour ce chapitre, vous allez écrire un programme de
Régression Linéaire à plusieurs variables et vous apprendrez
comment facilement modifier votre code pour faire des Régressions
polynômiales.

29
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 3 : Adieu Excel, bonjour Python. Vous voilà Data Scientist !

Installer Python Anaconda : le meilleur outil de


Machine Learning
Il e iste de fa ons d installer les outils de Machine Learning sur votre
ordinateur : La bonne et la mauvaise.

En installant Anaconda, vous vous épargnez des heures de souffrance à


taper des commandes en mode geek installer les packages, librairies et
éditeur de texte indispensables pour faire du Machine Learning.
Pourquoi faire simple quand on peut faire compliqué ?

a b

Autres méthodes

a b

Anaconda contient tous les outils et librairies dont vous avez besoin pour
faire du Machine Learning : Numpy, Matplotlib, Sklearn, etc.
Commencez par télécharger puis installer Anaconda depuis le site officiel :
https://www.anaconda.com/distribution/#download-section
Note: Téléchargez toujours la version la plus récente de Python (ici
Python 3.7)

30
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 3 : Adieu Excel, bonjour Python. Vous voilà Data Scientist !

Po r pl s d information, je o s montre ici en vidéo comment vous y


prendre pour installer Anaconda et comment vous en servir.

Une fois Anaconda install , o s po e lancer l application Jupyter


Notebook depuis votre barre de recherche Windows/Mac/Linux.

Utilisation de Jupyter Notebook pour vos projets


Jupyter Notebook est une application Web qui permet de créer et de
partager des codes Python.

Note : C est ne application Web, mais il n est pas n cessaire d a oir ne


connexion Internet pour vous servir de Jupyter. Aussi, vos données/codes
ne sont a c n moment stock s s r Internet (ce n est pas d Clo d).

Lorsque vous démarrez Jupyter, il est possible q e 2 fen tres s o rent,


auquel cas ne vous occupez pas de la fenêtre noire (la console) et surtout
ne la fermez pas (ceci déconnecterait Jupyter de votre disque dur).

Clique sur Ne
pour écrire un
nouveau programme

Fenêtre D acceuil de Jup ter. Vous y Ne vous occupez pas


trouvez les fichiers stockés sur votre de cette fenêtre. Ne la
disque dur. fermez surtout pas!

31
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 3 : Adieu Excel, bonjour Python. Vous voilà Data Scientist !

La fen tre principale de J p ter n est ni pl s ni moins q n e plorate r


de fichier relié à votre disque dur, vous pouvez ouvrir tous vos fichiers,
Dataset, codes, etc. depuis cette fenêtre.
Cliquez s r le bo ton New sit en ha t droite de cette fen tre po r
commencer à écrire un nouveau programme (puis cliquez sur Python 3).
La fenêtre s i ante s affiche alors : Vous êtes prêts à coder !

Apprenez la programmation en 15 minutes


Il est possible q e certains d entre o s n aient jamais écrit de
programme de leur vie, alors je vais vous expliquer à ma façon comment
comprendre le monde de la programmation en moins de 15 minutes.

La programmation : une nouvelle vision du monde


En programmation, on choisit d adopter ne certaine ision d monde
dans lequel nous vivons. On peut considérer que le monde peut être
modélisé à partir de 2 concepts :
Des objets
Des actions, q i modifient l tat des objets.

Regardez autour de vous. Vous êtes entourés d objets. En r alisant ne


action, des objets peuvent apparaitre, disparaitre, se combiner, se
transformer, etc.

D aille rs, q and no s no s e primons, il est nécessaire et suffisant de


dire un nom (objet) et un verbe (action) pour faire une phrase.
« Le chien boit. » ou bien « Le chien boit de l’eau. »
Chien : Objet
Boit : Action
Eau : Objet, q i dimin e a ec l action boire.

32
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 3 : Adieu Excel, bonjour Python. Vous voilà Data Scientist !

En programmation, ces deux notions prennent le nom de variable et de


fonction, les fonctions transformant la valeur des variables.

Input Output
Function
Variable Variable

Eau chaude
Mélanger Café
Café soluble

A=2
AxB C=6
B=3

Le pl s so ent, il n est pas n cessaire de d elopper ses propres


fonctions car celles-ci sont déjà développées dans des librairies open
source.
Par exemple, la librairie Sklearn contient toutes les fonctions
math matiq es et l algorithme de Gradient Descent q e no s a ons
appris dans le Chapitre 2 ! En pratiq e, il est donc in tile d crire la
moindre équation mathématique. Génial, non ?!

Au fil des exemples dans ce livre, vous allez naturellement apprendre


comment programmer en Python spécialement pour le Machine Learning.
Mon but est de vous épargner une avalanche de détails inutiles que vous
pourriez trouver dans une formation classique, pour vous montrer les
fonctions essentielles et utiles qui vous aideront réellement à résoudre
des problèmes dans votre travail après la lecture de ce livre.
Si toute fois vous désirez apprendre Python plus en profondeur, Internet
regorge de formations grat ites et ah o i j o bliais : il y a ma chaine
YouTube aussi !

33
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 3 : Adieu Excel, bonjour Python. Vous voilà Data Scientist !

Les bases de Python


1. Les commentaires
Dans to t langage de programmation, il est possible d crire des
commentaires. Un commentaire n est pas l par la machine et o s
pouvez donc y écrire ce que vous voulez pour documenter votre code.
Dans Python, il suffit de précéder votre code du symbole « # » pour le
transformer en commentaire.
# ceci est un commentaire

2. Les variables
Pour définir une variable dans Jupyter, il suffit de lui donner un nom et de
lui assigner une valeur. Par exemple, vous pouvez choisir de créer la
variable « vitesse » et de lui assigner la valeur 90.
Note : les accents et chiffres sont bannir po r le nom d ne ariable !
Vous pouvez effectuer des opérations mathématiques entre les variables
numériques.
Une fois le code écrit, appuyez sur CTRL + Entrée pour exécuter votre
code. Le r s ltat est affich et ne no elle cell le s o re en bas po r
continuer à écrire du code.

Il existe de nombreux types de variables : les variables numériques, les


listes, les matrices, les chaines de caract res

34
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 3 : Adieu Excel, bonjour Python. Vous voilà Data Scientist !

3. Les fonctions
Comme énoncé plus haut, Python contient déjà de nombreuses librairies
remplies de fonctions tr s tiles et il n est pas n cessaire de coder ses
propres fonctions pour faire du Machine Learning.
Cependant, je ais to t de m me o s montrer la str ct re d ne fonction
dans Python, pour votre connaissance personnelle. Vous êtes libres de
passer directement la page s i ante si l en ie o s prend.

Rappelez- o s q ne fonction transforme le pl s souvent une entrée en


sortie :

Input Output
Function
Variable Variable

Pour créer une fonction dans Python, il faut commencer par écrire
« def » en début de ligne, puis donner un nom à la fonction, écrire les
inputs entre parenthèse, et finir la ligne par un « : ».
Les lignes suivantes font partie de la fonction, vous pouvez y écrire des
commentaires, créer de nouvelles variables, faire des opérations
mathématiques etc.
La fonction s arr te la ligne « return » qui indique quelle sortie la
fonction doit produire.
Une fois la fonction créée, il est possible de l tiliser l infini !
Exemple :

Voyons maintenant les principales librairies qui contiendront les fonctions


à connaitre pour faire du Machine Learning comme un pro !

35
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 3 : Adieu Excel, bonjour Python. Vous voilà Data Scientist !

4. Les 4 librairies à maîtriser pour le Machine Learning


Pour importer une librairie dans Python, rien de plus simple. Il suffit
d crire le nom de la librairie pr c d de import » en tête de votre
programme. Il est galement possible d importer certaines fonctions de la
librairie en écrivant from « librairie » import « truc ».

Exemple :

Numpy est la librairie qui permet de créer et manipuler des matrices


simplement et avec efficacité.
En Machine Learning, on insère le plus souvent notre Dataset dans des
matrices. Ainsi le calc l matriciel repr sente l essentiel d Machine
Learning. Il est important de le comprendre, mais les fonctions présentes
dans Numpy font les calc ls matriciels notre place Magique !

Matplotlib est la librairie qui permet de visualiser nos Datasets, nos


fonctions, nos résultats sous forme de graphes, courbes et nuages de
points.

36
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 3 : Adieu Excel, bonjour Python. Vous voilà Data Scientist !

Sklearn est la librairie q i contient to tes les fonctions de l tat de l art


du Machine Learning. On y trouve les algorithmes les plus
importants ainsi que diverses fonctions de pre-processing.

Pandas est une excellente librairie pour importer vos tableaux Excel (et
autres formats) dans Python dans le but de tirer des statistiques et de
charger votre Dataset dans Sklearn.

5. Et to t ce dont je n ai pas parl


Dans cette introduction à Python, je n ai pas parl des bo cles for et
while. Je n ai pas parl des conditions if elif else et j ai omis d introd ire
d a tres commandes de bases comme « print(‘hello world’) ».
Ces codes sont bien évidemment importants, mais ils ne sont pas
essentiels la compr hension et l apprentissage d Machine Learning
pour ce livre.
Je vous invite à consulter ma chaine YouTube si vous désirez compléter
vos bases en Python.

37
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 3 : Adieu Excel, bonjour Python. Vous voilà Data Scientist !

Développer enfin votre premier programme de


Machine Learning
Fini de rigoler, il est temps de passer l action ! Vous allez maintenant
développer un programme de régression linéaire en suivant la méthode
apprise dans le chapitre 2.

Les étapes pour programmer une Régression Linéaire


Etape 1 : Importer les librairies
Commençons par ouvrir un nouveau Notebook dans Jupyter comme nous
l a ons appris précédemment. Ensuite, il faut importer les librairies et
fonctions suivantes :
Numpy pour manipuler notre Dataset en tant que matrice

Matplotlib.pyplot pour visualiser nos données

La fonction make_regression de Sklearn pour générer

un nuage de point (ici on va simuler des données)

SGDRegressor (qui signifie Stochastic Gradient Descent


Regressor) et qui contient le calcul de la Fonction Coût,
des gradients, de l algorithme de minimisation, bref
tout ce qui pouvait sembler compliqué dans le chapitre 2.

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_regression
from sklearn.linear_model import SGDRegressor

N o blie pas de taper CTRL + Entrée po r e c ter otre code. S il y a


une erreur, réviser vos compétences du copier/coller

38
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 3 : Adieu Excel, bonjour Python. Vous voilà Data Scientist !

Etape 2 : Créer un Dataset


Po r ce premier code, no s n allons pas importer de donn es
personnelles. Plutôt, nous allons générer un tableau de données 𝒙, 𝒚
aléatoires.
Pour cela, la fonction make_regression est très utile. La fonction prend
comme arguments (c est le mot po r d signer inp ts) le nombre
d chantillons g n rer, le nombre de variables et le bruit puis nous
retourne deux vecteurs 𝒙 et 𝒚.
Po r maitriser l al atoire, on crit la ligne np.random.seed(0).

Finalement, pour visualiser nos données on utilise la fonction


plt.scatter(x, y).

np.random.seed(0)
x, y = make_regression(n_samples=100, n_features=1, noise=10)
plt.scatter(x, y)

Voici le résultat que vous devriez obtenir :

Etape 3 : D elopper le mod le et l entra ner


Pour développer et entraîner un modèle, il a fallu beaucoup de maths
dans le chapitre 2 : Entre la Fonction Coût, les dérivées, l algorithme de
Gradient Descent
Dans Sklearn, tout cela est déjà fait pour vous !

39
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 3 : Adieu Excel, bonjour Python. Vous voilà Data Scientist !

Il vous suffit de définir une variable model depuis le générateur


SGDRegressor en entrant le nombre d it rations q e le Gradient Descent
doit effectuer ainsi que le Learning Rate.
Une fois le modèle défini, il vous faut l entra ner. Pour cela, il suffit
d tiliser la fonction fit.

Par exemple, entraînons notre modèle sur 100 itérations avec un


Learning rate de 0.0001 :
model = SGDRegressor(max_iter=100, eta0=0.0001)
model.fit(x,y)

Nous pouvons maintenant observez la précision de notre modèle en


utilisant la fonction score qui calcule le coefficient de détermination
entre le modèle et les valeurs 𝒚 de notre Dataset.
On peut aussi utiliser notre modèle pour faire de nouvelles prédictions
avec la fonction predict et tracer ces résultats avec la fonction
plt.plot :

print('Coeff R2 =', model.score(x, y))


plt.scatter(x, y)
plt.plot(x, model.predict(x), c='red', lw = 3)

40
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 3 : Adieu Excel, bonjour Python. Vous voilà Data Scientist !

Wow ! Notre modèle semble vraiment mauvais. C est parce q e no s ne


l a ons pas entra n suffisamment longtemps et parce que le Learning
rate était trop faible. Aucun problème, il est possible de le ré-entraîner
avec de meilleurs hyper-paramètres.
En Machine Learning, les valeurs qui fonctionnent bien pour la plupart
des entraînements sont :
Nombre d it rations = 1000
Learning rate = 0.001

Fantastico ! Vous avez entraîné votre premier modèle de Machine


Learning, et il fonctionne vraiment bien avec un coefficient 𝑅2 = 94%. Vous
pourriez maintenant vous en servir pour faire de bonnes prédictions ! Par
e emple po r pr dire le pri d n appartement selon sa s rface habitable,
o bien po r pr dire l ol tion de la température sur Terre.
Mais peut- tre n tes- o s pas tr s satisfait On pe t a ssi faire ce genre
de chose dans Excel, pourquoi se compliquer la vie ?

41
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 3 : Adieu Excel, bonjour Python. Vous voilà Data Scientist !

Certes, mais les choses vont commencer à devenir plus excitantes dans les
prochaines pages quand nous allons développer des modèles à partir de
centaines de variables (ici no s n en a ions q ne : 𝒙)

Mais auparavant, je vais vous montrer comment votre machine a appris


les paramètres du modèle avec le Gradient Descent. Pour cela, il existe ce
q on appelle les courbes d apprentissage.

Les co rbes d apprentissage


En Machine Learning, on appelle co rbe d apprentissage (Learning
curves) les courbes qui montrent l ol tion de la Fonction Coût au fil
des itérations de Gradient Descent. Si votre modèle apprend, alors sa
Fonction Coût doit diminuer avec le temps, comme ci-dessous :

A chaq e it ration, le mod le s am liore po r donner la droite ci-dessous.

42
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 3 : Adieu Excel, bonjour Python. Vous voilà Data Scientist !

Si vous souhaitez reproduire ces courbes, je vous ai mis à la fin de ce


livre le code que vous pourrez copier/coller (en bonus je vous donne la
ersion long e d code de Gradient Descent telle q e no s l a ons
dans le chapitre 2).

Régression Polynômiale à plusieurs variables


Si o s achete n st lo 1 , combien vous coûteront 100 stylos ?
100 ? Faux !
Nous vivons dans un monde régit par des lois souvent non-linéaires et
où une infinité de facteurs peuvent influencer nos résultats.
Par exemple, si vous achetez 100 stylos, vous aurez peut-être une
réduction à 90 . Si en re anche il a ne p n rie de st los, ce même
stylo qui coûtait 1 po rrait aloir 1.50
C est l q E cel ne po rra pl s rien po r o s et q e le Machine Learning
trouve son utilité dans le monde réel.

Problème non-linéaire : Un problème plus compliqué ?


Pour le nuage de point ci-dessous, il semblerait judicieux de développer
un modèle polynômial de degré 2.
𝒇 𝒙 = 𝒂𝒙𝟐 + 𝒃𝒙 + 𝒄

Ce modèle, plus complexe que le modèle linéaire précédent, va


engendrer des calculs algébriques plus intenses, notamment le calcul des
dérivées ou pas !

43
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 3 : Adieu Excel, bonjour Python. Vous voilà Data Scientist !

En fait, le code que nous avons écrit pour la régression linéaire peut être
utilisé pour des problèmes bien plus complexes. Il suffit de générer des
variables polynômiales dans notre Dataset en utilisant la fonction
PolynomialFeatures présente dans Sklearn.

from sklearn.preprocessing import PolynomialFeatures

Grâce au calcul matriciel (présent dans Numpy et Sklearn) la machine


peut intégrer ces nouvelles variables polynômiales sans changer son
calcul !
Dans l e emple ci-desso s, j ai choisi d ajo ter ne ariable polynômiale
de degré 2 pour forcer la machine à développer un modèle qui épousera
l all re parabolique de 𝒚 en fonction de 𝒙.

np.random.seed(0)

# création du Dataset
x, y = make_regression(n_samples=100, n_features=1, noise=10)
y = y**2 # y ne varie plus linéairement selon x !

# On ajoute des variables polynômiales dans notre dataset


poly_features = PolynomialFeatures(degree=2, include_bias=False)
x = poly_features.fit_transform(x)

plt.scatter(x[:,0], y)
x.shape # la dimension de x: 100 lignes et 2 colonnes

# On entraine le modele comme avant ! rien ne change !


model = SGDRegressor(max_iter=1000, eta0=0.001)
model.fit(x,y)
print('Coeff R2 =', model.score(x, y))

plt.scatter(x[:,0], y, marker='o')
plt.scatter(x[:,0], model.predict(x), c='red', marker='+')

44
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 3 : Adieu Excel, bonjour Python. Vous voilà Data Scientist !

Avec la fonction PolynomialFeatures on peut ainsi développer des


modèles bien plus complexes capable de prédire des résultats sur des
milliers de dimensions (un exemple ci-dessous)

45
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 3 : Adieu Excel, bonjour Python. Vous voilà Data Scientist !

Résumé de ce Chapitre
Pour faire vos premiers pas dans le Machine Learning, vous avez installé
Anaconda Python qui comprend tous les outils et librairies nécessaires
(Jupyter, Numpy, Sklearn etc).
Avec Sklearn, il s ffit d écrire quelques lignes pour développer des
modèles de Régression Linéaire et Polynômiale. Vous devez vous souvenir
des fonctions suivantes
model = SGDRegressor( nb_itérations, learning_rate)
model.fit(x, y) : pour entrainer votre modèle.
model.score(x, y) : pour évaluer votre modèle.
model.predict(x) : pour générer des prédictions.

Je n ai pas parl de la fonction de Sklearn.linear_model.LinearRegression


car cette méthode n int gre pas l algorithme de Gradient Descent. Elle
repose en fait sur les Equations Normales, et fonctionne très bien,
mais s adapte mal a gros Datasets (quand il y a plusieurs centaines de
features). Nous utiliserons cependant cette méthode dans le Chapitre 7.

46
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 4 : Régression Logistique et Algorithmes de Classification

Cha i e Rég e ion


Logi i e e
Algo i hme de
Cla ifica ion
Dans l apprentissage s per is , il a de t pe de probl mes :
Les régressions
Les classifications
Dans ce chapitre, vous allez découvrir le modèle de Régression
Logistique, qui permet de résoudre des problèmes de classification
binaires.
Je vais aussi vous présenter un des algorithmes les plus populaires et
simple : Le K-Nearest Neighbour.

47
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 4 : Régression Logistique et Algorithmes de Classification

Les problèmes de Classification


J sq pr sent, no s a ons appris comment r so dre des probl mes de
régression. A co rs d chapitre 1, j ai parl des probl mes de
classification, qui consistent par exemple à classer un email en tant que
spam o non spam .
Dans ce genre de problème, on aura un Dataset contenant une variable
target 𝒚 pouvant prendre 2 valeurs seulement, par exemple 0 ou 1
si 𝑦 = 0, alors l email n est pas n spam
si 𝑦 = 1, alors l email est n spam

On dit galement q e l on a 2 classes, c est ne classification binaire.

Pour ces problèmes, on ajoute au modèle une frontière de décision qui


permet de classer un email dans la 𝑐𝑙𝑎𝑠𝑠𝑒 0 ou la 𝑐𝑙𝑎𝑠𝑠𝑒 1.

48
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 4 : Régression Logistique et Algorithmes de Classification

Le modèle de Régression logistique


Pour les problèmes de classification binaire, un modèle linéaire 𝑭 = 𝑿. 𝜽,
comme je l ai trac s r la fig re pr c dente, ne convient pas. Voyez
pl t t le r s ltat q e l on obtient a ec n tel mod le po r le Dataset
suivant :

On développe alors une nouvelle fonction pour les problèmes de


classification binaire, c est la fonction logistique (aussi appelé fonction
sigmoïde ou tout simplement sigma 𝝈). Cette fonction a la particularité
d tre toujours comprise en 0 et 1.

Pour coller la fonction logistique sur un Dataset 𝑿, 𝒚 on y fait passer le


produit matriciel 𝑿. 𝜽 ce qui nous donne le modèle de Logistic
Regression :
𝟏
𝝈 𝑿. 𝜽 =
𝟏 + 𝒆− 𝑿.𝜽

49
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 4 : Régression Logistique et Algorithmes de Classification

A partir de cette fonction, il est possible de définir une frontière de


décision. Typiquement, on définit un seuil à 0.5 comme ceci :

𝒚 = 𝟎 𝒔𝒊 𝝈 𝑿. 𝜽 < 𝟎. 𝟓
𝒚 = 𝟏 𝒔𝒊 𝝈 𝑿. 𝜽 ≥ 𝟎. 𝟓

Fonction Coût associée à la Régression Logistique


𝟏
Pour la régression linéaire, la Fonction Coût 𝑱 𝜽 = ∑ 𝑿. 𝜽 − 𝒀 𝟐
donnait
𝟐𝒎
une courbe convexe (qui présente un unique minima). C est ce q i fait
q e l algorithme de Gradient Descent fonctionne.
En revanche, utiliser cette fonction pour le modèle Logistique ne donnera
pas de courbe convexe (dû à la non-lin arit ) et l algorithme de Gradient
Descent se bloquera au premier minima rencontré, sans trouver le
minimum global.

50
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 4 : Régression Logistique et Algorithmes de Classification

Il faut donc développer une nouvelle Fonction Coût spécialement pour la


régression logistique. On utilise alors la fonction logarithme pour
transformer la fonction sigma en fonction convexe en séparant les cas
où 𝑦 = 1 des cas où 𝑦 = 0.

Fonction Coût dans les cas où 𝑦 = 1


Voici la Fonction Coût q e l on tilise dans les cas o 𝑦 = 1 :
𝑱 𝜽 = − 𝐥𝐨𝐠 𝝈 𝑿. 𝜽
Explications :
Si notre modèle prédit 𝜎 𝑥 = 0 alors que 𝑦 = 1, on doit pénaliser la
machine par une grande erreur (un grand coût). La fonction logarithme
permet de tracer cette courbe avec une propriété convexe, ce qui
poussera le Gradient Descent à trouver les paramètres 𝜽 pour un coût
qui tend vers 0.

51
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 4 : Régression Logistique et Algorithmes de Classification

Fonction Coût dans les cas où 𝑦 = 0


Cette fois la Fonction Coût devient :
𝑱 𝜽 = − 𝐥𝐨𝐠 𝟏 − 𝝈 𝑿. 𝜽

Explications :
Si notre modèle prédit 𝜎 𝑥 = 1 alors que 𝑦 = 0, on doit pénaliser la
machine par une grande erreur (un grand coût). Cette fois − 𝐥𝐨𝐠 𝟏 − 𝟎
donne la m me co rbe, in ers e s r l a e ertical.

Fonction Coût complète


Pour écrire la Fonction Coût en ne se le q ation, on tilise l ast ce de
séparer les cas 𝑦 = 0 𝑒𝑡 𝑦 = 1 avec une annulation :
−𝟏
𝑱 𝜽 = 𝒚 × 𝐥𝐨𝐠 𝝈 𝑿. 𝜽 + 𝟏 − 𝒚 × 𝐥𝐨𝐠 𝟏 − 𝝈 𝑿. 𝜽
𝒎

Dans le cas où 𝑦 = 0, il nous reste :


−1
𝐽 𝜃 = 0 × log 𝜎 𝑋. 𝜃 + 𝟏 × 𝐥𝐨𝐠 𝟏 − 𝝈 𝑿. 𝜽
𝑚

Et dans le cas où 𝑦 = 1
−1
𝐽 𝜃 = 𝟏 × 𝐥𝐨𝐠 𝝈 𝑿. 𝜽 + 0 × log 1 − 𝜎 𝑋. 𝜃
𝑚

52
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 4 : Régression Logistique et Algorithmes de Classification

Gradient Descent pour la Régression Logistique


L algorithme de Gradient Descent s appliq e e actement de la même
manière que pour la régression linéaire. En plus, la dérivée de la
Fonction Coût est la même aussi ! On a :

𝝏𝑱 𝜽 𝟏
𝐺𝑟𝑎𝑑𝑖𝑒𝑛𝑡: = 𝝈 𝑿. 𝜽 − 𝒚 . 𝑿
𝝏𝜽 𝒎
𝝏𝑱 𝜽
𝐺𝑟𝑎𝑑𝑖𝑒𝑛𝑡 𝐷𝑒𝑠𝑐𝑒𝑛𝑡: 𝜽 = 𝜽 − 𝜶 ×
𝝏𝜽

Résumé de la Régression Logistique


1
𝑴𝒐𝒅è𝒍𝒆: 𝜎 𝑋. 𝜃 =
1 + 𝑒 −𝑋.𝜃
−1
𝑭𝒐𝒏𝒄𝒕𝒊𝒐𝒏 𝑪𝒐û𝒕: 𝐽 𝜃 = 𝑦 × log 𝜎 𝑋. 𝜃 + 1 − 𝑦 × log 1 − 𝜎 𝑋. 𝜃
𝑚
𝜕𝐽 𝜃 1
𝑮𝒓𝒂𝒅𝒊𝒆𝒏𝒕: = 𝑋 . 𝜎 𝑋. 𝜃 − 𝑦
𝜕𝜃 𝑚
𝜕𝐽 𝜃
𝑮𝒓𝒂𝒅𝒊𝒆𝒏𝒕 𝑫𝒆𝒔𝒄𝒆𝒏𝒕: 𝜃 = 𝜃 − 𝛼 ×
𝜕𝜃

Développer un programme de classification


binaire dans Jupyter
On est reparti dans Jupyter ! Comme pour le chapitre 3, nous allons
générer des données aléatoires, mais cette fois-ci avec la fonction
make_classification. Commençons par importer nos modules habituels :
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_classification
from sklearn.linear_model import SGDClassifier

# Génération de données aléatoires: 100 exemples, 2 classes, 2 features x0 et x1


np.random.seed(1)
X, y = make_classification(n_samples=100,n_features=2, n_redundant=0, n_informative=1,
n_clusters_per_class=1)

# Visualisation des données


plt.figure(num=None, figsize=(8, 6))
plt.scatter(x[:,0], x[:, 1], marker = 'o', c=y, edgecolors='k')
plt.xlabel('X0')
plt.ylabel('X1')
x.shape

53
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 4 : Régression Logistique et Algorithmes de Classification

Ensuite, nous devons créer un modèle en utilisant SGDClassifier.


# Génération d'un modele en utilisant la fonction cout 'log' pour Logistic Regression
model = SGDClassifier(max_iter=1000, eta0=0.001, loss='log')

model.fit(X, y)
print('score:', model.score(x, y))

Une fois le modèle entraîné, on peut afficher sa frontière de décision avec


le code s i ant n pe compliq je o s l accorde, mais n simple
copier/coller fera l affaire, pas rai ?
# Visualisation des données
h = .02
colors = "bry"
x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
xx, yy = np.meshgrid(np.arange(x_min, x_max, h),
np.arange(y_min, y_max, h))

Z = model.predict(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)
cs = plt.contourf(xx, yy, Z, cmap=plt.cm.Paired)
plt.axis('tight')

for i, color in zip(model.classes_, colors):


idx = np.where(y == i)
plt.scatter(X[idx, 0], X[idx, 1], c=color, cmap=plt.cm.Paired, edgecolor='black', s
=20)

54
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 4 : Régression Logistique et Algorithmes de Classification

Vous pouvez désormais réutiliser ce code sur vos propres données pour
ainsi prédire si un email est un spam ou encore si une tumeur est maligne
ou non.
Bon. No s a ons j sq pr sent des algorithmes bo rr s de maths et
donc pas forcément fun à étudier mais ça va changer tout de suite !

L Algorithme de Nearest Neighbour


Je ais d sormais o s montrer l algorithme q i est probablement le pl s
simple à comprendre de tous !
L algorithme de Nearest Neighbour (le voisin le plus proche) permet de
résoudre des problèmes de classification à plusieurs classes de façon
simple et très efficace.

55
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 4 : Régression Logistique et Algorithmes de Classification

Promenade en Montage
Vous partez vous promener en montagne avec un ami. Avant de partir, il
fait 30 °C et votre ami vous dit q il a cha d. Arri en montagne, il fait
d sormais 10 C et otre ami o s dit q il a froid.
En redescendant la vallée, il fait maintenant 15 °C, pensez-vous que
votre ami aura froid ou bien chaud ?
15 °C étant plus proche de 10 °C (froid) que de 30 °C (chaud), il semble
légitime de prédire que votre ami aura froid.

Froid ou Chaud ?
15°C
Froid Chaud
10°C 30°C

Voil l essentiel de ce q il sa oir s r l algorithme Nearest


Neighbour. Quand vous devez faire une nouvelle prédiction, trouvez
dans votre Dataset l e emple le plus proche par rapport aux conditions
dans lesquelles vous êtes.
Eh ! Qui a dit que le Machine Learning était difficile ?
Note :
Cet exemple vous montre au passage que la variété et la quantité de
données dans votre Dataset est primordiale ! Si vous ne disposez que de
2 points : -20 °C = froid ; 20 °C = chaud, alors vous pourriez conclure
que 1 °C est ne temp rat re cha de Pas s r q e a plaise to t le
monde ! On en reparlera dans le Chapitre 7.

56
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 4 : Régression Logistique et Algorithmes de Classification

K-Nearest Neighbour (K-NN)


La distance la plus courte
Regarde le n age de points q i s it. Q el est le l e emple le pl s proche
du point vert ? C est n e emple de la classe ro ge. L algorithme de
Nearest Neighbour calcule ainsi la distance entre le point vert et les
a tres points d Dataset et associe le point ert la classe dont l e emple
est le plus proche en terme de distance.

Typiquement, on utilise la distance euclidienne (c est la droite direct


entre de points) mais d a tres m triq es sont parfois pl s tiles,
comme la distance de Manhattan ou bien la distance cosinus.
Inutile de rentrer dans les détails mathématiques, vous savez désormais
que Sklearn implémente toutes les équations pour vous.

Le nombre de voisin K
Po r limiter les probl mes li s a br it (ce q on appelle Over fitting, et
q e no s errons dans le chapitre 7) on pe t demander l algorithme de
trouver les K voisins les plus proches du point vert.
Cela améliore la qualité du modèle car il devient moins sensible aux
impuretés et cas particuliers qui viendraient empêcher la bonne
généralisation (Chapitre 7).

57
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 4 : Régression Logistique et Algorithmes de Classification

Vision par ordinateur avec K-NN dans Jupyter


Cette fois ci, je vous propose de développer un programme capable de
reconnaitre un chiffre entre 0 et 9 écrit à la main. Fini les données
générées aléatoirement ! Voici les chiffres que la machine saura
reconnaitre dans quelques minutes.

Vous pouvez charger ces données depuis Sklearn (la librairie contient des
Datasets de base).
Commençons par importer les libraires habituelles :
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
from sklearn.neighbors import KNeighborsClassifier

Le code ci-dessous montre un exemple de chiffre présent dans le Dataset,


c est n exemple du chiffre 0.
On apprend a ssi q e le Dataset comprend 1797 e emples, c est-à-dire
1797 images, et que chaque exemple contient 64 features.
Que sont ces 64 features ? il s agit de la ale r de chac n des 64 pi els
qui forment les images.
Quand on soumet un nouveau chiffre la machine, l algorithme de K-NN
tro e l e emple d Dataset q i ressemble le pl s notre chiffre, bas
sur le voisin le plus proche pour la valeur de chaque pixel.

58
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 4 : Régression Logistique et Algorithmes de Classification

# importons une base de données de chiffre


digits = load_digits()

X = digits.data
y = digits.target

print('dimension de X:', X.shape)

L tape s i ante consiste entra ner le mod le de Nearest Neighbo r. En


exécutant le code vous-même, vous devriez obtenir un score de 99%, ce
qui signifie que votre modèle reconnaitra le bon chiffre 99% du temps.
Perso, je trouve ça impressionnant. Aujourd h i, o s po rre clairement
dire que vous savez faire du Machine Learning !
# visualisons un de ces chiffres
plt.imshow(digits['images'][0], cmap = 'Greys_r')

# Entraînement du modele
model = KNeighborsClassifier()
model.fit(X, y)
model.score(X, y)

Pour finir en beauté, testons une image au hasard et voyons si la machine


arrive à identifier de quel chiffre il s agit. En l occ rrence, j ai choisi de
tester la 100ième image de notre Dataset, qui est un 4 et la machine a su
la reconnaître !
#Test du modele
test = digits['images'][100].reshape(1, -1)
plt.imshow(digits['images'][100], cmap = 'Greys_r')
model.predict(test)

59
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 4 : Régression Logistique et Algorithmes de Classification

Bravo pour avoir su développer votre premier vrai programme de vision


par ordinateur !

Bilan de ce chapitre
Dans ce chapitre, vous avez appris 2 algorithmes très populaires pour les
problèmes de Classification :
- La Régression Logistique avec Gradient Descent
- Le K-Nearest Neighbour.
La fonction Logistique est ne fonction importante dans l histoire d
Machine Learning. C est elle q e l on tro e a c r des ne rones des
fameux Réseaux de Neurones, dont nous allons parler dans le prochain
chapitre.

60
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 5 : Réseaux de Neurones

Cha i e Ré ea de
Ne one

Dans ce dernier chapitre s r l apprentissage s per is , no s allons


démystifier les fameux Réseaux de Neurones. Ces modèles qui font le
b a jo rd h i sont utilisés pour la reconnaissance vocale, la vision par
ordinateur et autres applications complexes.
Vous allez apprendre :
Ce q est le Deep Learning
Ce qui compose un Réseau de Neurones dans les détails
Comment programmer votre premier Réseau de Neurones

61
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 5 : Réseaux de Neurones

Introduction aux Réseaux de Neurones


Ah ! Il est temps de sortir l artillerie lo rde avec les Réseaux de
Neurones (Ne ral Net ork) q i font a jo rd h i le s cc s d Deep
Learning.
Les Réseaux de Neurones sont des modèles bien plus complexes que
tous les autres modèles de Machine Learning dans le sens où ils
représentent des fonctions mathématiques avec des millions de
coefficients (les paramètres). Rappelez-vous, pour la régression linéaire
no s n a ions q e 2 coefficients 𝑎 𝑒𝑡 𝑏

A ec ne telle p issance, il est possible d entra ner la machine sur des


tâches bien plus avancées :
La reconnaissance d objets et reconnaissance faciale
L anal se de sentiments
L anal se d langage naturel
La création artistique
Etc.

Cependant, développer une fonction aussi complexe à un coût. Pour y


parvenir, il faut souvent fournir :
Un Dataset beaucoup plus grand (des millions de
données)
Un temps d apprentissage pl s long (parfois plusieurs
jours)
Une plus grande puissance de calcul.

62
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 5 : Réseaux de Neurones

Pour dépasser ces challenges, les chercheurs dans le domaine ont


développés des variantes d Gradient Descent ainsi q e d a tres
techniques pour calculer plus rapidement les dérivées sur des millions de
données. Parmi ces solutions on trouve :
Mini-Batch Gradient Descent : Technique pour laquelle
le Dataset est fragmenté en petits lots pour simplifier le
calcul du gradient à chaque itération.
Batch Normalization: Mettre à la même échelle toutes
les ariables d entr e et de sortie internes au Réseau de
Ne rone po r iter d a oir des calc ls de gradients
extrêmes.
Distributed Deep Learning : Utilisation du Cloud pour
diviser le travail et le confier à plusieurs machines.

Sans pl s tarder, o ons l anatomie d n R sea de Ne rones po r


démystifier ce concept.

Comprendre les Réseaux de Neurones


Voilà à quoi ressemble un Réseau de Neurones :

Vo s remarq e n ni ea d entr es (input layer) à gauche, un niveau de


sorties (output layer) à droite, et plusieurs niveaux cachés entre deux.
Les petits ronds sont appelés les neurones et représentent des
fonctions d activation. Pour un réseau de neurone basique, la fonction
Logistique est utilisée comme fonction d acti ation. C est po r cela q e
no s l a ons e dans le chapitre 4.
Commençons par analyser ce qui se passe dans 1 neurone.

63
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 5 : Réseaux de Neurones

Réseau de Neurone à 1 Neurone : Le perceptron


Le réseau de Neurones le plus simple qui existe porte le nom de
perceptron. Il est identique à la Régression Logistique du chapitre 4.
Les entrées du neurone sont les features 𝒙 multipliées par des
paramètres 𝜽 à apprendre. Le calcul effectué par le neurone peut être
divisé en deux étapes :
1. Le neurone calcule la 𝒔𝒐𝒎𝒎𝒆 𝒛 de toutes les entrées 𝒛 =
∑ 𝒙𝜽. C est n calc l lin aire
2. Le neurone passe z dans sa fonction d acti ation. Ici la
fonction sigmoïde (fonction Logistiq e). C est n calc l
non-linéaire.

Note :
On tilise so ent d a tres fonctions d acti ation q e la fonction
sigmoïde pour simplifier le calcul du gradient et ainsi obtenir des cycles
d apprentissage plus rapides :
La fonction tangente hyperbolique tanh 𝑧
La fonction 𝑅𝑒𝑙𝑢 𝑧

Réseaux à plusieurs neurones : le Deep Learning


Pour créer un Réseaux de Neurones, il suffit de développer plusieurs de
ces perceptrons et de les connecter les ns a a tres d ne fa on
particulière :

64
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 5 : Réseaux de Neurones

On réunit les neurones en colonne (on dit q on les r nit


en couche, en layer). Au sein de leur colonne, les
neurones ne sont pas connectés entre eux.
On connecte toutes les sorties des ne rones d ne colonne
à gauche aux entrées de tous les neurones de la colonne
de droite qui suit.
On peut ainsi construire un réseau avec autant de couches et de neurones
q e l on e t. Pl s il a de couches, plus on dit que le réseau est
profond (deep) et plus le modèle devient riche, mais aussi difficile à
entraîner. C est a, le Deep Learning.
Voici n e emple d n réseau à 5 neurones (et 3 layers). Tous les layers
entre la co che d entrée et la couche de sortie sont dits cachés car nous
n a ons pas acc s le r entrées/sorties, qui sont utilisées par les layers
suivants.

Input hidden Output


layer layer layer
Entrées

Sortie

Dans les détails, un réseau plus simple (à 3 neurones) nous donnerait la


sortie 𝒂𝟑 = 𝝈 𝜽𝟏 𝒂𝟏 + 𝜽𝟐 𝒂𝟐 où 𝜽𝟏 et 𝜽𝟐 sont les coefficients liés aux
connections entre neurones 𝒂𝟏 → 𝒂𝟑 et 𝒂𝟐 → 𝒂𝟑 . Ce sont les paramètres
de notre modèle.
Dans le réseau suivant, on a donc 6 paramètres (que je différencie par les
couleurs, la réelle annotation des paramètres étant plus complexe).

65
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 5 : Réseaux de Neurones

C est comme le cer ea h main ?


On a longtemps fait le rapprochement entre le cerveau humain et les
Neural Network pour démontrer la puissance de ces algorithmes. Voici
l analogie q i est encore a jo rd h i pr sent e a no ices :
La fonction d acti ation prod it ne sortie si les entr es q elle re oit
dépassent un certain seuil, à la manière qu un neurone biologique produit
n signal lectriq e en fonction des stim l s q il re oit a Dendrites
(ce sont les entrées du neurone).
Dans un Neurone, ce signal circ le j sq a diff rents terminaux de
l a one po r tre transmis d a tres ne rones, tout comme la fonction
activation envoie sa sortie aux neurones du niveau suivant.

En r alit , les R sea de Ne rones n ont rien à voir avec le cerveau


humain. D sol

66
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 5 : Réseaux de Neurones

Un R sea de Ne rone n est en fait q une énorme composée de milliers


de fonctions mathématiques, et a jo rd h i les neuroscientifiques ont
démontré q e le fonctionnement d cer ea d passe de loin l architect re
« simpliste » des réseaux de neurones.

Pourquoi utilise-t-on alors l e pression de R sea de Ne rone ?


S rement parce q e l analogie a ec les ne rones facilite la
compréhension de ce type de modèle, mais également parce que
l tilisation de ce Buzz word a permis de solliciter l int r t des
journalistes et des entreprises dans les années 2010. Une histoire de
marketing

L entra nement d n R sea de Ne rone


Rappelez-vous : Pour résoudre un problème de Supervised Learning, il
vous faut les 4 éléments suivants.
1. Un Dataset
2. Un Modèle et ses paramètres
3. Une Fonction Coût et son gradient
4. Un Algorithme de minimisation (Gradient Descent)

Pour le Dataset, pas de probl me, il s ffit de disposer d n tableau


𝑿, 𝒚 comme pour les autres problèmes. Les features 𝒙𝟏 , 𝒙𝟐 , 𝒙𝟑 , … sont
distrib es l entr e d réseau (dans le premier layer)

Pour programmer le Modèle, il faut emboîter les fonctions des


diff rent ni ea d acti ation les nes dans les a tres comme je l ai
montr pl s ha t po r l e emple des 3 ne rones. C est ce q on
appelle Forward Propagation (faire le chemin des entrée 𝑿 vers la
sortie 𝒚).

Pour exprimer la Fonction Coût et son gradient, c est


mathématiquement délicat. Il faut calculer la contribution de chaque
neurone dans l erreur finale. To t ce q e o s a e sa oir, c est q e
cela est possible avec une technique appelée Back Propagation (faire
le chemin dans le sens inverse : 𝒚 vers 𝑿).

Enfin, pour minimiser la Fonction Coût, il s ffit d tiliser Gradient


Descent en utilisant les gradients calculés avec Back Propagation. Le
Gradient Descent en lui-m me n est pas différent de celui que nous
avons vu dans le chapitre 2 (bonne nouvelle).

67
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 5 : Réseaux de Neurones

Programmer votre premier Réseau de Neurones


pour identifier des esp ces d Iris.
Normalement, on développe des Réseaux de Neurones avec un
Framework comme Tensorflow, mais l apprentissage de cet o til
dépasse un peu le cadre de ce livre. Cependant, je veux bien me faire
violence en vous montrant comment faire avec Sklearn . Pour cela, il
faudra importer MLPClassifier (qui signifie : Multi-Layer Perceptron
Classifier).
Cette fois, je vous propose de développer un programme capable de
reconnaitre une espèce parmi plusieurs de la famille des Iris. L algorithme
utilise 4 features pour effectuer son calcul :
𝒙𝟏 : La longueur du pétale
𝒙𝟐 : La largeur du pétale
𝒙𝟑 : La longueur du sépale
𝒙𝟒 : La largeur du sépale

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.neural_network import MLPClassifier

# charger les données


iris = load_iris()

X = iris.data
y = iris.target

X.shape # notre Dataset comprend 150 exemples et 4 variables

# Visualisation des donées


colormap=np.array(['Red','green','blue'])
plt.scatter(X[:,3], X[:,1], c = colormap[y])

Pour développer un réseau à 3 hidden layers et 10 neurones dans chaque


layer, j tilise le code suivant : hidden_layer_sizes=(10, 10, 10)
# Création du modele
model = MLPClassifier(hidden_layer_sizes=(10, 10, 10), max_iter=1000)
model.fit(X, y)
model.score(X, y)

68
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 5 : Réseaux de Neurones

Normalement, vous devriez obtenir un score de 98% pour votre Neural


Network. Cela signifie que la machine arrive à prédire la bonne espèce de
fleur 98% du temps.

R sum de l apprentissage supervis


C est a ec les R sea de Ne rones q e s ach e ces 4 chapitres s r
l apprentissage supervisé, qui est la technique la plus utilisée en
Machine Learning et en Deep Learning. Rappelez- o s q il e iste 2
familles de probl mes dans l apprentissage s per is :
Les Régressions
Les Classifications
Pour résoudre ces problèmes, ne perdez jamais de vue les 4 étapes
essentielles pour développer votre modèle :
1. Dataset
2. Modèle
3. Fonction Coût
4. Algorithme de minimisation
Avec Sklearn, vous pouvez développer des modèles de Machine Learning
simplement en utilisant les fonctions que nous avons vues et qui intègrent
directement les tapes 3 et 4. Il ne o s reste alors q :
1. Importer un Dataset
2. Choisir un modèle parmi ceux proposés par sklearn :
o SGDRegressor()
o KNeighborsClassifier()
o MLPClassifier()
o Etc
3. Utiliser la fonction model.fit po r effect er l apprentissage

Il e iste bea co p d algorithmes de R gression et de Classification, je n ai


pas parlé de Support Vector Machine ou bien de Random Forest, mais
o s po e tro er pl s d information ce s jet sur machinelearnia.com

Dans le prochaine chapitre, vous allez découvrir une nouvelle technique


d apprentissage, dont la m thodologie est bien diff rente de celle q e
nous avons vue j sq pr sent : L apprentissage non-supervisé.

69
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 6 : Apprentissage Non-Supervisé

Cha i e
A en i age Non
S e ié

Dans ce chapitre, vous allez découvrir la deuxième technique


d apprentissage tilis e en Machine Learning : L apprentissage non-
supervisé.
Vo s alle apprendre l algorithme le pl s pop laire dans cette techniq e :
le K-Mean Clustering, qui permet de segmenter des données clients
dans le monde du marketing, ou bien de faciliter la recherche scientifique
en associant ensemble des molécules/matériaux/phénomènes semblables.

70
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 6 : Apprentissage Non-Supervisé

Unsupervised Learning

Le probl me de l Apprentissage S per is


D n certain point de e, l apprentissage s per is consiste enseigner
à la machine des choses que nous connaissons déjà, étant donné que
nous constr isons l a ance un Dataset qui contient des questions 𝑿 et
des réponses 𝒚.
Que faire alors si o s dispose d n Dataset sans ale r 𝒚 ? Que faire si
vous voulez que la machine vous aide à compléter vos connaissances en
apprenant certaines choses que vous ignorez ?

Rappelez-vous, dans le Chapitre 1, no s a ons parl d apprendre la


lang e chinoise partir d n li re de trad ction 𝑥, 𝑦 . Que faire alors si je
vous retire le bouquin et que je vous envoie vivre seul en Chine ?
Arriverez-vous à apprendre le chinois tout seul ? Il y a forcément un
mo en d par enir, c est ce q on appelle l apprentissage non-supervisé
(Unsupervised Learning).

71
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 6 : Apprentissage Non-Supervisé

Comment apprendre sans exemple de ce q il fa t


apprendre ?
Regardez ces 6 photos. Pouvez-vous les regrouper en 2 familles selon leur
ressemblance ?

Bien sûr ! C est m me pl t t simple. N l besoin de sa oir s il s agit de


cellules animales, de bactéries ou de protéines pour apprendre à classer
ces images. Votre cerveau a en fait reconnu des structures communes
dans les données que vous lui avez montrées.

GROUPE A GROUPE B

Dans l apprentissage non-supervisé, on dispose ainsi d n Dataset 𝑥


sans valeur 𝑦 , et la machine apprend à reconnaitre des structures
dans les données 𝑥 q on l i montre.
On peut ainsi regrouper des donnés dans des clusters (c est le
Clustering), détecter des anomalies, ou encore réduire la dimension
de données très riches en compilant les dimensions ensembles.

72
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 6 : Apprentissage Non-Supervisé

Algorithme de K-Mean Clustering


Le K-Mean Clustering est sans doute l algorithme le pl s pop laire po r
les problèmes de Clustering (regrouper des données selon leur structure
commune). Il est souvent utilisé en marketing pour cibler des groupes de
clients semblables pour certaines campagnes publicitaires.
L algorithme fonctionne en 2 tapes répétées en boucle. On commence
par placer au hasard un nombre K de centres dans notre nuage de
points. Dans l e emple ci-dessous, K=2. Ensuite :
- L tape 1 consiste à rallier chaque exemple au centre le plus
proche. Après cette étape, nous avons K Clusters (ici 2 clusters)
- L tape 2 consiste à déplacer les centres au milieu de leur Cluster.

On r p te ainsi les tapes 1 et 2 en bo cle j sq ce q e les centres ne


bougent plus.

73
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 6 : Apprentissage Non-Supervisé

Programmer un K-Mean Clustering


La librairie Sklearn nous permet aussi de faire du Unsupervised Learning !
La fonction make_blobs permet de simuler des clusters dans un Dataset.
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets.samples_generator import make_blobs
from sklearn.cluster import KMeans

Pour cet exemple, nous allons créer un Dataset de 100 exemples à 2


features, en simulant 3 clusters.
# Générer des données:
X, y = make_blobs(n_samples=100, centers = 3, cluster_std=0.5, random_state=0) #nb_feat
ures = 2 par défaut
plt.scatter(X[:,0], X[:, 1])

Dans le code ci-dessous, on entraîne un modèle de K-Mean Clustering à 3


centres (K=3). J ai a ssi affich les r s ltats q e l on obtient a ec K = 2
et K = 4.
# Entrainer le modele de K-mean Clustering
model = KMeans(n_clusters=3)
model.fit(X)

74
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 6 : Apprentissage Non-Supervisé

#Visualiser les Clusters


predictions = model.predict(X)
plt.scatter(X[:,0], X[:,1], c=predictions)

K=2 K=3 K=4

La prochaine fois que vous avez à disposition un tableau de données sur


os clients, s r les caract ristiq es d n prod it, o s r des doc ments
que vous devez classer, pensez à utiliser le K-Mean Clustering pour laisser
la machine proposer sa méthode de classement.

Po r finir, prenons le Dataset des fle rs d Iris q e o s a e s classer


grâce à un réseau de neurones dans le chapitre 5 et voyons les clusters
prod its par l algorithme de K-Mean Clustering.

Neural Network K-Mean Clustering

Les résultats sont tr s ressemblants, pre e q il est possible de faire de


bonnes classifications même avec des Datasets 𝑥 sans valeur 𝑦 en
tilisant l apprentissage non-supervisé.

75
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 6 : Apprentissage Non-Supervisé

Conclusion sur le Unsupervised Learning


Dans l apprentissage supervisé, la machine reçoit un Dataset où les
exemples 𝒙 sont étiquetés d ne ale r 𝒚 (on appelle ça un Labelled
Dataset). Il est alors possible de trouver une relation générale qui relie 𝑥
à 𝑦 .

Dans l apprentissage non-supervisé, nous ne pouvons pas faire cela,


parce q il manq e la ariable 𝑦 à notre Dataset. Il est donc Unlabelled.

Apprentissage Supervisé Apprentissage Non-Supervisé


Labelled Dataset (x, y) Unlabelled Dataset (x)

Mais cela ne nous empêche pas de pouvoir segmenter le Dataset en


différents Clusters grâce au K-Mean Clustering, ou bien de détecter des
anomalies en calc lant des densit s de probabilit s (dont no s n a ons
pas parlé). A ec d a tres algorithmes (le Principal Component Analysis)
on peut aussi r d ire efficacement les dimensions d n Dataset.
Avec ces méthodes, il est possible de segmenter un marché, de
développer des systèmes de détection de fraude bancaire, o d aider la
recherche scientifique.
Maintenant que vous connaissez les principaux outils du Machine
Learning, il est temps d apprendre comment se servir de ces outils pour
résoudre de vrais problèmes. C est l objet d chapitre final de ce li re !

76
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 7 : Comment gérer un projet de Machine Learning

Cha i e Commen
gé e n oje de
Machine Lea ning

Votre voyage arrive à sa fin. Au cours de ce livre, vous avez appris des
algorithmes puissants et réellement utilisés dans l ind strie pour
construire des modèles à partir de données. Mais un algorithme seul ne
résout aucun problème. Il est temps d apprendre comment utiliser vos
connaissances pour résoudre des problèmes. Dans ce chapitre, vous
allez apprendre :
Comment préparer votre Dataset
Comment lutter contre Le phénomène d Over fitting
Comment diagnostiquer un modèle de Machine Learning
avec le Train set et Test Set
Le c cle de d eloppement d n mod le de Machine
Learning

77
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 7 : Comment gérer un projet de Machine Learning

L erreur que font la majorit des Novices


Beaucoup de gens travaillent longtemps leur maitrise des algorithmes au
détriment de leur compétence à résoudre des problèmes.
Pour mener à bien un projet de Machine Learning, il ne suffit pas de
connaitre des algorithmes (comme ceux que nous avons appris dans ce
livre) mais il faut également savoir comment se servir de ces algorithmes,
ce que peu de gens savent bien faire !
C est ce q e o s alle apprendre dans ce dernier chapitre, q i est l n
des chapitres les plus importants de ce livre.

Un exemple de scénario typique


Votre patron souhaite automatiser la logistique de son usine. Il vous
confie un Dataset et vous demande de développer un modèle de Machine
Learning pouvant identifier différents fruits (pommes, poires, etc.) pour
que la machine puisse les ranger automatiquement dans la bonne boîte.

Vous entraînez un modèle complexe (par exemple un réseau de neurones


avec beaucoup de layers) suffisamment longtemps pour minimiser la
Fonction Coût et vous obtenez une précision de 99%. Bien joué !
Vous livrez ce modèle à votre patron, mais quelques jours plus tard il
revient très mécontent : votre modèle n est pas a ssi bon q e o s le
prétendez, il a une précision de 70%.
Q e s est-il passé ?
Je vais vous dévoiler les causes plausibles et les erreurs à ne pas
commettre pour éviter ce genre de situation, puis les solutions à ces
challenges. Nous allons parler des 2 problèmes les plus courants en
Machine Learning :
- Une mauvaise préparation du Dataset
- Le problème d’Over fitting

78
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 7 : Comment gérer un projet de Machine Learning

Le plus important, ce n est pas l algorithme, ce


sont les Données

Une étude menée en 2001 par Michelle Banko et Eric Brill montre que la
performance d n programme de Machine Learning d pend a ant to t de
la quantité de données que comporte votre Dataset. Cela explique en
partie l obsession q on les g ants d Web (les GAFAM) r colter des
quantités colossales de données.
L t de r le a ssi q e bea co p d algorithmes de Machine Learning
sont similaires en terme de performance.

Conséquence : Si vous avez plus de données que votre concurrent, vous


êtes vainqueur, même si votre concurrent à un meilleur algorithme !
Mais avoir beaucoup de données ne suffit pas, il faut aussi avoir de
bonnes données et comprendre ces donn es. C est ce point qui fait
défaut à de nombreux Data Scientists. Po rtant, l tape de pr paration
des données (Data pre-processing) représente le plus grand temps passé
sur un projet de Machine Learning, voyons pourquoi.

Data pre-processing: Comment préparer votre Dataset


Lorsque vous recevez un Dataset, il est impératif de procéder à quelques
retouches avant de commencer à faire du Machine Learning. Voici une
liste des actions à compléter pour bien préparer son Dataset :
Il est fréquent q n Dataset contienne q elq es anomalies, voire
des erre rs, q il fa t supprimer pour ne pas biaiser
l apprentissage de la machine ( o s ne o drie pas q e la machine
apprenne quelque chose de faux).

Il est aussi important de normaliser os donn es, c est-à-dire les


mettre sur une même échelle po r rendre l apprentissage de la
machine plus rapide et aussi plus efficace.
79
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 7 : Comment gérer un projet de Machine Learning

Si vous avez des valeurs manquantes, il faut être capable de leur


assigner une valeur défaut.

Si vous avez des features catégoriales (exemple : homme/femme)


il faut les convertir en données numériques (homme=0, femme=1).

Egalement, il est très important de nettoyer le Dataset des features


redondantes (qui ont une forte corrélation) pour faciliter
l apprentissage de la machine.

Finalement, un point qui peut faire toute la différence est la création


de nouvelles feat res, ce q on appelle feature engineering.
Exemple : Prenez un Dataset immobilier qui contient les features :
o 𝑥1 = 𝑙𝑜𝑛𝑔𝑢𝑒𝑢𝑟 𝑗𝑎𝑟𝑑𝑖𝑛
o 𝑥2 = 𝑙𝑎𝑟𝑔𝑒𝑢𝑟 𝑗𝑎𝑟𝑑𝑖𝑛
Alors il est possible de créer 𝑥 = 𝑥1 × 𝑥2 qui équivaut à la surface du
jardin.

Typiquement, sklearn et pandas disposent des fonctions nécessaires


pour faire un bon data pre-processing. Pour charger un fichier Excel au
format csv dans Jupyter, utiliser la librairie pandas.
import pandas as pd

Dataset = pd.read_csv('dataset.csv')
print(Dataset.head()) # afficher le Dataset

Attention ! Le tableau que vous cherchez à importer doit convenir à un


certain format. Pour vos débuts, assurez- o s d a oir n fichier E cel q i
ne contient que vos données (pas de notes ni commentaires) et qui
commence dès la colonne A ligne 1 :

Exemple à NE PAS suivre

Exemple à suivre

VS

80
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 7 : Comment gérer un projet de Machine Learning

Vous pouvez ensuite utiliser certaines fonctions pour nettoyer votre


Dataset, convertir les catégories en valeurs numériques, et charger
votre Dataset dans une 𝒎𝒂𝒕𝒓𝒊𝒄𝒆 𝑿 et un 𝒗𝒆𝒄𝒕𝒆𝒖𝒓 𝒚 pour commencer le
Machine Learning !
Dataset = Dataset.fillna(value=99999) # assigner une valeur défaut
Dataset = pd.get_dummies(Dataset) # remplacer les catégories

y = Dataset['prix'].values # Créer le vecteur target y


X = Dataset.drop(['prix'], axis=1).values # Créer la matrice features X

L e pertise est cr ciale


Jouer ainsi avec les données peut s a rer dangere si le Data Scientist
n a pas de connaissances techniques s r l application finale : finance,
médecine, ingénierie, climatologie, etc.
Exemple : En donnant le Dataset suivant à un modèle de Machine
Learning, vous obtiendrez ne fronti re de d cision q i indiq e q il fait
chaud quand la température est supérieure à 5 °C

Dans cette application aussi simple, vous avez une certaine expertise qui
vous permet de rejeter la réponse de la machine, et vous comprenez que
le Dataset a besoin d tre complété avec des données supplémentaires.
Etes- o s certain d a oir ce ni ea d expertise en médecine pour
développer un modèle qui pourrait décider de la ie d n patient ?
Conclusion : vous serez un meilleur Data Scientist en travaillant sur les
projets qui se rattachent à vos compétences techniques.
81
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 7 : Comment gérer un projet de Machine Learning

Les données doivent toujours venir de la même


distribution
Une dernière erreur que je veux partager avec vous et qui peut causer
une chute de performance assez importante est l tilisation d n mod le
de machine Learning s r des donn es pro enant d ne autre
distribution que les données sur lesquelles la machine a été entraînée.
Par exemple, si vous développez un modèle pour reconnaitre des poires
en donnant à la machine des photos Haute Définition de poires bien
droites et sans taches, mais que la machine utilise ensuite une mauvaise
caméra qui déforme les couleurs et qui voit les poires toutes empilées les
unes sur les autres, le modèle ne pourra pas reconnaitre les features q il
a appris d rant l entrainement a ec la m me pr cision.

Ce que vous aviez donné à Ce que la machine voit


apprendre après l apprentissage

Conclusion
Il est important de bien préparer son Dataset, en supprimant les
défauts q il contient, en s ass rant q il représente des données
provenant de la même distribution que pour l application finale, et en
comprenant en profondeur le sens des données dont on dispose.
Le travail de préparation des données prend en général 80% du temps
de travail d n Data Scientist, mais s il est bien fait, alors o s n a e
plus aucun problème par la suite.
Pl s a c n probl me sauf un : L Over fitting. J ai o l garder ce
point-là pour le sprint final du livre ! Vous êtes prêts ?

82
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 7 : Comment gérer un projet de Machine Learning

Over fitting et Régularisation


Dans les chapitres d apprentissage s per is , nous avons développé des
modèles en cherchant à minimiser les erreurs avec le Dataset. J ai
même affirmé (page 15) q n bon mod le no s donne de petites
erreurs. En fait, ce n est pas si simple
Que pensez-vous des deux modèles ci-dessous ?

Dataset (x, y) Modèle A Modèle B

J 0 J=0

Le modèle B ne donne aucune erreur par rapport au Dataset, donc


d apr s ce q e no s a ons , il devrait être parfait !
Pourtant, le modèle A semble plus convaincant, alors que celui-ci donne
une Fonction Coût plus élevée.
Le modèle B so ffre ici d n probl me appel Over fitting, qui est un
phénomène très courant en Machine Learning et q il o s fa t
absolument éviter.

Over fitting : A vouloir aller trop loin, on va TROP loin.


On parle d Over fitting pour dire que le modèle s est trop spécialisé sur
les données qui lui ont été fournies et a perdu tout sens de
généralisation.
Un Over fitting survient le plus souvent quand un modèle trop complexe
(avec trop de paramètres ou trop de features) a été entraîné. Dans ce
cas, le modèle a certes un faible coût 𝑱 𝜽 , mais il a aussi ce q on appelle
une grande variance. Conséquence : un modèle moins performant que
prévu quand on le soumet à de nouvelles données et une machine qui
confond les pommes et les poires.

83
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 7 : Comment gérer un projet de Machine Learning

Modèle A Modèle B

Sur le Dataset B était meilleur que A.


Mais sur de nouvelles données, A est meilleur que B
On pourrait alors se dire q il s ffit de d elopper des mod les moins
complexes avec moins de features… Et Pouf ! Plus de problème de
variance !
C est rai, Mais on risq e alors d a oir n mod le erron q i manq e de
précision. On appelle ça Under fitting, et on dit que le modèle a un
grand biais.
Ce problème touche à la fois les régressions et les classifications :
Under Fitting Over Fitting
Le bon modèle
Grand Biais Grande Variance
Regressions
Classification

Comment trouver alors le juste milieu entre biais et variance ? C est ne


des grandes questions à laquelle sont confrontés les Data Scientists.

84
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 7 : Comment gérer un projet de Machine Learning

Il existe une méthode qui permet de garder toutes les features d n


modèle tout en régulant l amplitude des paramètres 𝜽. Cette méthode
porte justement le nom de Régularisation.

La Régularisation
La régularisation permet de limiter la ariance d n mod le sans sacrifier
son biais. Pour cela, différentes techniques existent:
1. On peut légèrement pénaliser la Fonction Coût du modèle en
ajoutant un terme de pénalité sur ses paramètres. Pour la
régression linéaire, la Fonction Coût devient alors :
𝟏
𝑱 𝜽 = 𝑭 𝑿 −𝒀 𝟐+ 𝝀 𝜽𝟐 𝑅𝑖𝑑𝑔𝑒 𝑜𝑢 𝐿2 𝑅é𝑔𝑢𝑙𝑎𝑟𝑖𝑠𝑎𝑡𝑖𝑜𝑛
𝟐𝒎

Le facteur de régularisation 𝝀 correspond au niveau de pénalité : s il


est trop grand, on risque l’Under fitting, et s il est trop faible, c est
l’Over fitting. On peut le contrôler directement dans Sklearn.

2. Pour le K-Nearest Neighbour, on peut augmenter la valeur de K


(nombre de voisins). Le modèle ne tient alors pas compte des
anomalies noyées dans la masse.
3. Pour les Réseaux de Neurones, une technique nommée Dropout
pénalise le modèle en désactivant aléatoirement certains neurones
à chaque cycle de Gradient Descent. Le Réseau perd alors
légèrement de ses facultés et est moins sensible aux détails.

Voici ce que la Régression linéaire classique vous donnera en développant


un modèle polynômial de degré 10 sur le Dataset suivant :

85
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 7 : Comment gérer un projet de Machine Learning

import numpy as np
import matplotlib.pyplot as plt
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression

# Creation d'un Dataset x, y


np.random.seed(0)
x = np.linspace(0, 5, 10)
y = x - 2 * (x ** 2) + 0.5 * (x ** 3) + np.random.normal(-2, 2, 10)
plt.scatter(x, y)

# Creation de plusieurs features pour notre modele


X = x[:, np.newaxis]
X = PolynomialFeatures(degree=10, include_bias=False).fit_transform(X)
X.shape

# Entraînement du modele. Ici on utilise les Equations Normales (LinearRegression)


# Les Equations normales reposent sur la méthode des moindres carrées, c est plus
# rapide que le Gradient Descent.
model = LinearRegression()
model.fit(X,y)
print('Coeff R2 =', model.score(X, y))
plt.scatter(x, y, marker='o')
plt.plot(x, model.predict(X), c='red')

Dans Sklearn, vous pouvez développer un modèle avec régularisation


grâce au modèle Ridge : Sklearn.linear_model.Ridge. Le modèle a
certes un coefficient 𝑅2 plus faible, mais il produit une meilleure
g n ralisation et fera donc moins d erre rs s r les donn es f t res.
from sklearn.linear_model import Ridge

ridge = Ridge(alpha=0.1) # alpha est le facteur de régularisation.


ridge.fit(X,y)
print('Coeff R2 =', ridge.score(X, y))

plt.scatter(x, y, marker='o')
plt.plot(x, ridge.predict(X), c = 'green')

86
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 7 : Comment gérer un projet de Machine Learning

Vous savez maintenant que la performance réelle d n mod le de


Machine Learning ne repose pas simplement sur sa Fonction Coût : vous
risquez l’Over fitting chaq e fois q n mod le se spécialise trop sur les
donn es q on l i donne t dier.
Mais comment être sûr de la performance que votre modèle aura sur des
données futures, c est-à-dire des données sur lesquelles il n a ra pas
été entraîné ?
La réponse est dans la question ! Il faut entraîner votre modèle sur une
partie seulement du Dataset et utiliser la seconde partie pour évaluer la
vraie performance de notre modèle. On appelle cela le Train set et le Test
set.

Diagnostiquer un modèle de Machine Learning

Train set et Test set


La bonne manière de mesurer la performance de votre modèle de
Machine Learning est de tester celui-ci sur des données qui n ont pas
servi l entraînement. On divise ainsi le Dataset aléatoirement en deux
parties avec un rapport 80/20 :
Train set (80%), q i permet la machine d entra ner n
modèle.
Test set (20%), q i permet d al er la performance d
modèle.

87
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 7 : Comment gérer un projet de Machine Learning

Pour créer un Train set et Test set à partir de notre Dataset, on utilise la
fonction train_test_split de Sklearn :

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_regression
from sklearn.preprocessing import PolynomialFeatures
from sklearn.model_selection import train_test_split

# Creation d'un Dataset Aleatoire


np.random.seed(0)
x, y = make_regression(n_samples=100, n_features=1, noise=10)
y = np.abs(y) + y + np.random.normal(-5, 5, 100)
plt.scatter(x, y)

# Creation des Train set et Test set a partir du Dataset


x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)

# Visualisation des Train set et Test set


plt.scatter(x_train, y_train, c='blue', label='Train set')
plt.scatter(x_test, y_test, c='red', label='Test set')
plt.legend()

On peut ensuite entraîner notre modèle sur le 𝑻𝒓𝒂𝒊𝒏 𝑺𝒆𝒕: 𝒙𝒕𝒓𝒂𝒊𝒏 , 𝒚𝒕𝒓𝒂𝒊𝒏 , puis
l al er s r le 𝑻𝒆𝒔𝒕 𝑺𝒆𝒕: 𝒙𝒕𝒆𝒔𝒕 , 𝒚𝒕𝒆𝒔𝒕 .

88
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 7 : Comment gérer un projet de Machine Learning

Dans le code ci-dessous je décide de mettre en pratique tout ce que nous


avons vu : Je crée plusieurs features polynômiales (degré 10) et j tilise
la régularisation de Ridge pour éviter l’Over fitting. On obtient un score de
92% po r l entra nement et n score de 91% po r l al ation s r des
données nouvelles.

X = PolynomialFeatures(degree = 10, include_bias=False).fit_transform(x)

x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

from sklearn.linear_model import Ridge

model = Ridge(alpha = 0.1, random_state=0)


model.fit(x_train, y_train)

print('Coefficient R2 sur Train set:', model.score(x_train, y_train))


print('Coefficient R2 sur Test set:', model.score(x_test, y_test))

plt.figure(figsize=(8,6))
plt.scatter(x, y, c='blue')
a = np.linspace(-2, 2, 100).reshape((100, 1))
A = PolynomialFeatures(degree = 10, include_bias=False).fit_transform(a)
plt.plot(a, model.predict(A), c = 'green', lw=2)

89
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 7 : Comment gérer un projet de Machine Learning

Repérer un problème d Under fitting ou d Over fitting


La technique la plus efficace pour repérer si votre modèle a un problème
de biais (Under fitting) ou de variance (Over fitting) consiste à analyser
les erreurs (la Fonction Coût) sur le Train set 𝑱 𝜽 𝒕𝒓𝒂𝒊𝒏 et le Test set
𝑱 𝜽 𝒕𝒆𝒔𝒕 :
Si les erreurs sont grandes sur le Train set et le Test
Set, alors le modèle a un grand biais, et il faut développer
un modèle plus complexe ou développer plus de features.
Si les erreurs sont faibles sur le Train set, mais sont
grandes sur le Test set, alors le modèle a une grande
variance.

Biais Variance

Nombre de paramètres

Que faire en cas d’Over fitting ou Under fitting ?


Dans le cas où votre modèle a un grand biais (Under fitting) vous
pouvez :
Créer un modèle plus complexe, avec plus de paramètres.
Créer plus de features à partir des features existantes.
Entraîner votre modèle plus longtemps.
Diminuer le Learning Rate du Gradient Descent (si le
Learning Rate est trop grand, la Fonction Coût ne converge
pas)
Récolter plus de features dans les données (parfois une
feature importante n a pas t r colt e)

90
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 7 : Comment gérer un projet de Machine Learning

A l in erse, si otre mod le a ne grande variance (Over fitting) vous


pouvez :
Utiliser la régularisation
Utiliser un modèle avec moins de paramètres ou un
Dataset avec moins de features
Collecter plus de données (avoir un Dataset plus grand
permet de développer un modèle qui généralise mieux)

Cycle de développement du Machine Learning


Développer un modèle de Machine Learning ne se fait pas du premier
coup. On commence souvent avec une première idée de modèle simple
et rapide à développer, puis on analyse si on a une variance ou un biais
et on tente une nouvelle idée pour corriger les problèmes rencontrés,
etc.

Idée

Evaluation Code

Le diagramme de la page suivante résume le cycle de développement du


Machine Learning avec toutes les étapes que vous avez apprises, et
marque la fin de ce chapitre final.

Notre voyage s ach e ici, mais j espère que vous continuerez à tracer
votre chemin dans le Machine Learning après avoir lu ce livre, et me
soutenir sur machinelearnia.com et YouTube est le meilleur moyen de me
remercier pour ce livre gratuit.
N omette pas de lire la concl sion d li re, je garde pour vous un petit
bonus !

91
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 7 : Comment gérer un projet de Machine Learning

Résumé des étapes de développement en Machine


Learning

IDÉE

Diviser
Importer un Pre-process le
Train Set
Dataset (x, y) Dataset
Validation Set

Entrainer un
Evaluer le Modèle
modèle
(Validation Set)
(Train Set)

Under fitting Over fitting


(grand biais) (grande variance)

Modèle Plus Collecter plus de


complexe données

Entrainement plus Modèle


long Moins complexe
NOUVELLE IDÉE
Learning rate plus
Régularisation
petit

92
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
CONCLUSION

CONCLUSION

Bravo ! Vous avez lu ce livre en entier, ce qui vous distingue de la


majorité des gens qui commencent un livre sans jamais le finir. Le simple
fait de l a oir termin doit o s conforter dans l id e q e o s a e les
capacités de devenir un excellent Data Scientist !
Le Monde, et tout particulièrement la France, manque cruellement de
Data Scientists ! Il y a énormément de places à prendre sur le marché
d tra ail, mais d ici 5 ans cela a ra certainement chang .
Agissez donc MAINTENANT. Utilisez les techniques que vous avez
apprises pour des t ches a tra ail et contin er d apprendre gr ce mon
site Internet : machinelearnia.com. Pour finir, je vous livre quelques
conseils et un formulaire de Machine Learning.

D fond d c r, MERCI.
Guillaume Saint-Cirgue93
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Lexique : Formule Résumé du Machine Learning

Le i e Fo m le Ré mé d Machine
Lea ning
Différences entre Data Science, Machine Learning et
Deep Learning
L Intelligence Artificielle est l ensemble des techniq es et th ories q i
cherchent à développer des modèles capables de simuler le
comportement humain.
Parmi ces techniques, on trouve le Machine
Learning, très populaire depuis 2010. Le Deep
Learning est un domaine du Machine Learning qui
est focalisé sur le développement des réseaux de
ne rones et q i fait face d a tres d fis q e ce
du machine Learning. Parmi ces défis, comment
entrainer des modèles avec des millions de
paramètres et des milliards de données dans des
temps raisonnables.
On dit souvent que ce sont des disciplines de Data Science parce q elles
utilisent des données pour construire les modèles. Mais en Data Science,
on analyse plus souvent des données pour en créer un modèle en réaction
ces donn es, alors q en Machine Learning on créé un programme qui
acquiert une aptitude : conduire une voiture, voir des objets, etc.

Dataset :
Tableau de données 𝑿, 𝒚 qui contient 2 types de variables :
- Target 𝒚
- Features 𝑿
On note 𝒎 le nombre d e emples q e contient le tablea (le nombre de
lignes) et 𝒏 le nombre de features (le nombre de colonnes 𝑋).
Ainsi :
- 𝑿 est une matrice à 𝒎 lignes et 𝒏 colonnes. 𝑿 ∈ ℝ𝒎×𝒏
- 𝒚 est un vecteur à 𝒎 lignes. 𝒚 ∈ ℝ𝒎
𝒊
Pour désigner la feature 𝒋 de l’exemple 𝒊 on écrit 𝒙𝒋

94
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Lexique : Formule Résumé du Machine Learning

Modèle :
Fonction mathématique qui associe 𝑿 à 𝒚, telle que 𝒇 𝑿 = 𝒚. Un bon
modèle doit être une bonne généralisation, c est-à-dire q il doit fo rnir
de petites erreurs entre 𝒇 𝒙 et 𝒚 sans être sujet à l’Over fitting.
On note 𝜽 le vecteur qui contient les paramètres de notre modèle. Pour
une régression linéaire, la formulation matricielle de notre modèle
devient : 𝑭 𝑿 = 𝑿. 𝜽

Fonction Coût :
La Fonction Coût 𝑱 𝜽 mes re l ensemble des erre rs entre le mod le et le
Dataset. De nombreux métriques d al ations pe ent tre tilis s
pour la Fonction Coût :
- Mean Absolute Error (MAE)
- Mean Squared Error (MSE) : Utilisée dans le Chapitre 3
- Root Mean Squared Error (RMSE)
- Accuracy : pour les classifications
- Precision
- Recall
- F1 score.

𝝏𝑱 𝜽
Gradient de la Fonction Coût
𝝏𝜽

Gradient Descent :
Algorithme de minimisation de la Fonction Coût. Il existe beaucoup de
variante de cet algorithme :
- Mini Batch Gradient Descent
- Stochastic Gradient Descent
- Momentum
- RMSProp
- Adam

95
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Lexique : Formule Résumé du Machine Learning

Variance :
C est l erre r d e n mod le trop sensible aux détails et incapable de
généraliser, ce qui donne lieu à un Over fitting.

Biais :
C est l erre r d e n mod le erron qui manque de précision et donne
lieu à un Under fitting.

Résumé de la Régression Linéaire


𝑫𝒂𝒕𝒂𝒔𝒆𝒕: 𝑋, 𝑦 𝑎𝑣𝑒𝑐 𝑋, 𝑦 ∈ ℝ𝑚×𝑛
𝑴𝒐𝒅è𝒍𝒆: 𝐹 𝑋 = 𝑋. 𝜃
1 2
𝑭𝒐𝒏𝒄𝒕𝒊𝒐𝒏 𝑪𝒐û𝒕: 𝐽 𝜃 = 𝐹 𝑋 −𝑦
2𝑚
𝜕𝐽 𝜃 1
𝑮𝒓𝒂𝒅𝒊𝒆𝒏𝒕: = 𝑋 . 𝐹 𝑋 −𝑦
𝜕𝜃 𝑚
𝜕𝐽 𝜃
𝑮𝒓𝒂𝒅𝒊𝒆𝒏𝒕 𝑫𝒆𝒔𝒄𝒆𝒏𝒕: 𝜃 = 𝜃 − 𝛼 ×
𝜕𝜃

96
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Lexique : Formule Résumé du Machine Learning

Résumé de la Régression Logistique


1
𝑴𝒐𝒅è𝒍𝒆: 𝜎 𝑋. 𝜃 =
1 + 𝑒 −𝑋.𝜃
−1
𝑭𝒐𝒏𝒄𝒕𝒊𝒐𝒏 𝑪𝒐û𝒕: 𝐽 𝜃 = 𝑦 × log 𝜎 𝑋. 𝜃 + 1 − 𝑦 × log 1 − 𝜎 𝑋. 𝜃
𝑚
𝜕𝐽 𝜃 1
𝑮𝒓𝒂𝒅𝒊𝒆𝒏𝒕: = 𝑋 . 𝜎 𝑋. 𝜃 − 𝑦
𝜕𝜃 𝑚
𝜕𝐽 𝜃
𝑮𝒓𝒂𝒅𝒊𝒆𝒏𝒕 𝑫𝒆𝒔𝒄𝒆𝒏𝒕: 𝜃 = 𝜃 − 𝛼 ×
𝜕𝜃

Code pour visualiser les co rbes d apprentissage s r


une régression linéaire (Chapitre 3)

Copier/coller le code suivant dans Jupyter ou bien Spyder pour visualiser


les co rbes d apprentissage.
Importer les libraires :
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_regression

Générer un Dataset aléatoire


np.random.seed(4)
n = 1
m = 100

x, y = make_regression(n_samples=m, n_features=n, noise=10)


y = y + 100
plt.scatter(x, y)
y = y.reshape(y.shape[0], 1)

#ajouter le Bias a X
X = np.hstack((np.ones(x.shape), x))
X.shape

Définir sous forme matricielle le modèle, la Fonction Coût et le gradient.


On définit 𝜽 le vecteur qui contient les paramètres 𝒂 et 𝒃.
𝑭 = 𝑿. 𝜽

97
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Lexique : Formule Résumé du Machine Learning

𝟏 𝟐
𝑱 𝜽 = 𝑿. 𝜽 − 𝒚
𝟐𝒎
𝟏 𝑻
𝑮𝒓𝒂𝒅 𝜽 = 𝑿 . 𝑿. 𝜽 − 𝒚
𝒎
#definir la fonction modele
def model(X, theta):
# x shape: (m, n)
# theta shape: (n,1)
return X.dot(theta) #shape: (m, 1)

#definir la fonction cout


def cost_function(X, y, theta):
m = len(y)
J = 1/(2*m) * np.sum((model(X, theta) - y)**2)
return J

#definit la fonction gradient


def gradient(X, y, theta):
return 1/m * X.T.dot((X.dot(theta) - y))

On définit la fonction Gradient Descent avec une boucle for :


For all itérations :

𝜽 = 𝜽 − ∝ 𝑮𝒓𝒂𝒅 𝜽

#algorithme de Gradient Descent


def gradient_descent(X, y, theta, learning_rate =0.001, iterations = 1000):
m = len(y)
cost_history = np.zeros(iterations)
theta_history = np.zeros((iterations, 2))

for i in range(0, iterations):


prediction = model(X, theta)
theta = theta - learning_rate * gradient(X, y, theta)
cost_history[i] = cost_function(X, y, theta)
theta_history[i,:] = theta.T

return theta, cost_history, theta_history

On passe à l entraînement du modèle, puis on visualise les résultats.


# utilisation de l'algorithme

np.random.seed(0)
theta = np.random.randn(2, 1)

iterations = 10
learning_rate = 0.3
theta, cost_history, theta_history = gradient_descent(X, y, theta, learning_rate=learni
ng_rate, iterations = iterations)

#visualisation des courbes d'apprentissage


fig,ax = plt.subplots(figsize=(12,8))

98
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Lexique : Formule Résumé du Machine Learning

ax.set_ylabel('J(Theta)')
ax.set_xlabel('Iterations')
_=ax.plot(range(iterations),cost_history)

# visualisation du modele au cours de son apprentissage


fig,ax = plt.subplots(figsize=(12,8))
_=ax.plot(x, y, 'b.')
for i in range(iterations):
_=ax.plot(x, model(X, theta_history[i]), lw=1)

Autres Algorithmes de Machine Learning:


Po r otre c lt re, oici d a tres algorithme de Machine Learning tr s
populaires. Vous pouvez les apprendre en détail sur machinelearnia.com.
- Support Vector Machine : Consiste à trouver la frontière de
d cision lin aire q i loigne le pl s les classes l nes de l a tres. Il
est facile de créer des modèles aux dimensions infinies avec cette
méthode.

- Decision Tree : Consiste à ordonner une série de tests dans un


arbre pour arriver à une conclusion.

- Random Forest : Un ensemble de Decision Tree construits


aléatoirement (avec Bootstrap) qui chacun émet sa solution au
problème. La solution majoritairement choisie par la forêt l emporte.

- Naive Bayes : Repose s r l inf rence de Ba es (probabilit s


conditionnelles)

- Anomaly Detection Systems : Algorithme de Unsupervised


Learning qui consiste à détecter des anomalies grâce aux densités
de probabilités.

- Principal Component Analysis : Technique de réduction de


dimension qui consiste à réduire le nombre de variables de votre
Dataset en créant des variables non-corrélées.

99
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Lexique : Formule Résumé du Machine Learning

Mes 3 conseils perso pour le Machine Learning


Conseil #1 : Notez toujours les dimensions de votre problème
100% des Data Scientists ont déjà fait cette erreur : ne pas noter sur
une feuille de papier les dimensions des matrices du problème.
A un moment ou un autre, vous aurez un bug parce que vous tentez de
multiplier deux matrices A et B aux dimensions incompatibles. Il est alors
très utile de vérifier les dimensions des matrices du Dataset, Train set,
Test set, et des paramètres en utilisant la fonction numpy.shape pour les
comparer à vos calculs.

Conseil #2 : Loi de Pareto


Vous connaissez la Loi de Pareto ? 80% des effets sont le produit de
20% des causes.
J ai p obser er q e ce principe s appliq e tr s so ent en Machine
Learning : 80% des erreurs de votre modèle sont produites par 20% des
prédictions, ou bien 20% des points du Dataset, ou bien 20% des hyper-
paramètres, etc. De la même manière, 80% de la performance de votre
programme est atteinte après seulement 20% de travail.
Faites alors le diagnostic de votre système en cherchant les points 80/20
Si vous voulez vous améliorer de 80% en produisant seulement 20%
d efforts. Bonne chance !

Conseil #3 : Philosophez et ne soyez pas obsédés par la


performance
En Machine Learning, il est important de savoir prendre du recul. Selon
l application, ne pr cision de 98% est a ssi bien q ne pr cision de
98,1%. Pourtant, beaucoup de Data Scientists peuvent perdre des
semaines à gagner ce petit 0,1%... pour pas grand-chose. Je vous invite
philosopher, garder l esprit o ert et passer pl s de temps
chercher des sol tions d a tres probl mes.
Bonne chance à vous !

100
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com

Vous aimerez peut-être aussi