Ebook MachineLearnia
Ebook MachineLearnia
Ebook MachineLearnia
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 ?
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
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.
4
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Introduction Pourquoi devez-vous lire ce livre ?
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.
6
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Introduction Pourquoi devez-vous lire ce livre ?
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
8
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 1 : Les fondations du Machine Learning
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
Exemple :
Déterminer la structure d’un pont
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
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
X Y
CHIEN
12
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 1 : Les fondations du Machine Learning
13
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 1 : Les fondations du Machine Learning
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.
15
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 1 : Les fondations du Machine Learning
Régression Classification
16
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 1 : Les fondations du Machine Learning
17
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 1 : Les fondations du Machine Learning
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
20
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 2 : La Régression Linéaire
21
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 2 : La Régression Linéaire
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.
22
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 2 : La Régression Linéaire
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
24
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 2 : La Régression Linéaire
𝑅é𝑝𝑒𝑡𝑒𝑟 𝑒𝑛 𝑏𝑜𝑢𝑐𝑙𝑒:
𝝏 𝑱 𝒂, 𝒃
𝒂=𝒂−∝
𝝏𝒂
𝝏 𝑱 𝒂, 𝒃
𝒃 =𝒃−∝
𝝏𝒃
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.
Fonction Coût :
𝒎
𝟏 𝒊 𝒊 𝟐
𝑱 𝒂, 𝒃 = 𝒂𝒙 +𝒃 − 𝒚
𝟐𝒎
𝒊=𝟏
26
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 2 : La Régression Linéaire
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 à 𝑎.
𝑚
27
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 2 : La Régression Linéaire
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
29
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 3 : Adieu Excel, bonjour Python. Vous voilà Data Scientist !
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 !
Clique sur Ne
pour écrire un
nouveau programme
31
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 3 : Adieu Excel, bonjour Python. Vous voilà Data Scientist !
32
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 3 : Adieu Excel, bonjour Python. Vous voilà Data Scientist !
Input Output
Function
Variable Variable
Eau chaude
Mélanger Café
Café soluble
A=2
AxB C=6
B=3
33
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 3 : Adieu Excel, bonjour Python. Vous voilà Data Scientist !
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.
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.
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 :
35
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 3 : Adieu Excel, bonjour Python. Vous voilà Data Scientist !
Exemple :
36
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 3 : Adieu Excel, bonjour Python. Vous voilà Data Scientist !
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.
37
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 3 : Adieu Excel, bonjour Python. Vous voilà Data Scientist !
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_regression
from sklearn.linear_model import SGDRegressor
38
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 3 : Adieu Excel, bonjour Python. Vous voilà Data Scientist !
np.random.seed(0)
x, y = make_regression(n_samples=100, n_features=1, noise=10)
plt.scatter(x, y)
39
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 3 : Adieu Excel, bonjour Python. Vous voilà Data Scientist !
40
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 3 : Adieu Excel, bonjour Python. Vous voilà Data Scientist !
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 : 𝒙)
42
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 3 : Adieu Excel, bonjour Python. Vous voilà Data Scientist !
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.
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 !
plt.scatter(x[:,0], y)
x.shape # la dimension de x: 100 lignes et 2 colonnes
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 !
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.
46
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 4 : Régression Logistique et Algorithmes de Classification
47
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 4 : Régression Logistique et Algorithmes de Classification
48
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 4 : Régression Logistique et Algorithmes de Classification
49
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 4 : Régression Logistique et Algorithmes de Classification
𝒚 = 𝟎 𝒔𝒊 𝝈 𝑿. 𝜽 < 𝟎. 𝟓
𝒚 = 𝟏 𝒔𝒊 𝝈 𝑿. 𝜽 ≥ 𝟎. 𝟓
50
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 4 : Régression Logistique et Algorithmes de Classification
51
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 4 : Régression Logistique et Algorithmes de Classification
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.
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
𝝏𝑱 𝜽 𝟏
𝐺𝑟𝑎𝑑𝑖𝑒𝑛𝑡: = 𝝈 𝑿. 𝜽 − 𝒚 . 𝑿
𝝏𝜽 𝒎
𝝏𝑱 𝜽
𝐺𝑟𝑎𝑑𝑖𝑒𝑛𝑡 𝐷𝑒𝑠𝑐𝑒𝑛𝑡: 𝜽 = 𝜽 − 𝜶 ×
𝝏𝜽
53
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 4 : Régression Logistique et Algorithmes de Classification
model.fit(X, y)
print('score:', model.score(x, y))
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')
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 !
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
56
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 4 : Régression Logistique et Algorithmes de Classification
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
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
58
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 4 : Régression Logistique et Algorithmes de Classification
X = digits.data
y = digits.target
# Entraînement du modele
model = KNeighborsClassifier()
model.fit(X, y)
model.score(X, y)
59
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 4 : Régression Logistique et Algorithmes de Classification
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
61
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 5 : Réseaux de Neurones
62
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 5 : Réseaux de Neurones
63
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 5 : Réseaux de Neurones
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 𝑅𝑒𝑙𝑢 𝑧
64
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 5 : Réseaux de Neurones
Sortie
65
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 5 : Réseaux de Neurones
66
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 5 : Réseaux de Neurones
67
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 5 : Réseaux de Neurones
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.neural_network import MLPClassifier
X = iris.data
y = iris.target
68
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 5 : Réseaux de Neurones
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é
70
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 6 : Apprentissage Non-Supervisé
Unsupervised Learning
71
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 6 : Apprentissage Non-Supervisé
GROUPE A GROUPE B
72
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 6 : Apprentissage Non-Supervisé
73
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 6 : Apprentissage Non-Supervisé
74
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 6 : Apprentissage Non-Supervisé
75
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 6 : Apprentissage Non-Supervisé
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
78
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 7 : Comment gérer un projet de Machine Learning
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.
Dataset = pd.read_csv('dataset.csv')
print(Dataset.head()) # afficher le Dataset
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
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
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
J 0 J=0
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
84
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 7 : Comment gérer un projet de Machine Learning
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 𝑅é𝑔𝑢𝑙𝑎𝑟𝑖𝑠𝑎𝑡𝑖𝑜𝑛
𝟐𝒎
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
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
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
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
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
Biais Variance
Nombre de paramètres
90
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Chapitre 7 : Comment gérer un projet de Machine Learning
Idée
Evaluation Code
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
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)
92
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
CONCLUSION
CONCLUSION
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.
96
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Lexique : Formule Résumé du Machine Learning
#ajouter le Bias a X
X = np.hstack((np.ones(x.shape), x))
X.shape
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)
𝜽 = 𝜽 − ∝ 𝑮𝒓𝒂𝒅 𝜽
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)
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)
99
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com
Lexique : Formule Résumé du Machine Learning
100
Tous droits réservés © 2019 Guillaume Saint-Cirgue
machinelearnia.com