Introduction au Machine Learning et IA
Introduction au Machine Learning et IA
16/03/2022 1
16/03/2022 2
Plan
1. Introduction générale et Agents Intelligents
2. Logique du premier ordre
3. Machine Learning : Pré-traitement des données
4. Machine Learning : Supervised vs Unsupervised
5. Machine Learning : Construire un bon modèle
6. Machine Learning : Raisonnement probabiliste et réseaux bayésiens
7. Machine Learning: Algorithmes d’apprentissage automatique
8. Machine Learning: Apprentissage par renforcement, vision par ordinateur,
NLP, Deep Learning
16/03/2022 3
Plan
1. Introduction générale et Agents Intelligents
2. Logique du premier ordre
3. Machine Learning : Pré-traitement des données
4. Machine Learning : Supervised vs Unsupervised
5. Machine Learning : Construire un bon modèle
6. Machine Learning : Raisonnement probabiliste et réseaux bayésiens
7. Machine Learning: Algorithmes d’apprentissage automatique
8. Machine Learning: Apprentissage par renforcement, vision par ordinateur,
NLP, Deep Learning
16/03/2022 4
Machine Learning
Sommaire
• Qu’est-ce que l’apprentissage automatique?
• Concepts.
• Algorithmes de bases.
• Regression linéaire/multiple/polynomiale
• Naïve Bayes
• Decision Trees
• K-Nearest Neighbors
• K-Means
• Neural Networks (Réseaux de Neurones)
16/03/2022 6
Introduction
• Machine Learning qui est une branche de l’Intelligence Artificielle, appelée aussi
Apprentissage Automatique est un outil essentiel de la science des données (Data Science).
• Le Machine Learning a grandement fait parlé de lui ces dernières années surtout avec les
applications qu'il a permit de construire.
Formes d’apprentissage
• Il existe plusieurs sortes de problèmes d'apprentissage, qui se distinguent par la nature de la
supervision offertes par nos données.
• Apprentissage supervisé: sortie désirée (cible ou target) est fournie explicitement par les
données
(ex: reconnaissance de caractères a l'aide d'un ensemble de paires (images, identité du caractère))
Et plusieurs autres …
16/03/2022 11
Les données?
Les données peuvent être vues comme une collection d’instances d’objets (enregistrements) et
leurs attributs.
Un attribut est une propriété et ou une caractéristique de l’objet.
Un ensemble d’attributs décrit un objet
16/03/2022 18
Les données?
Types
Quantitative (numérique, exprime une quantité)
• Discrète (ex : nombre d’étudiants dans un cours) ou continue (ex : longueur)
• Echelle proportionnelle (chiffre d’affaires, taille), ou échelle d’intervalle
(température, QI)
Qualitative
• Variable ordinale (classement à un concours, échelle de satisfaction client)
• Variable catégorique (couleur de yeux, diplôme obtenu,…)
Modalités
• Les modalités d’un attribut sont l’ensemble des valeurs qu’il prend dans les données.
• Ex : les modalités de l’attribut note sont {0;1;2;…;20} et les modalités de l’attribut
couleur sont {bleu,vert,noir,...}
16/03/2022 19
Attributs
• L’attribut est une caractéristique de l’ensemble de données. Il a un type et des
valeurs contraintes par son type.
• On peut attribuer des nombres aux catégories afin de les représenter de manière
plus compacte, mais les nombres n'ont pas de signification mathématique.
• Cas particulier: Les attributs de type booléen
Attributs à valeurs Numériques
• Représente une mesure quantitative (Taille des personnes, temps de
chargement des pages, cours d’actions en bourse,etc)
• Exemple:
L’attribut Longueur_d’une_pétale_de_fleur est décrite par une valeur 𝜖 ℝ
L’attribut Température est numérique exprimée en degrés Celsius ou Fahrenheit
Les données?
L'idée est que plus vous aurez une bonne compréhension de vos données, plus vous
serez en mesure de bien les utiliser lors de la phase d'entraînement de votre modèle
d’apprentissage.
Ci-après vous aurez une vue d'ensemble du type de données habituelles rencontrées en
Machine Learning.
16/03/2022 27
Ces bases de données peuvent comprendre différents types d'information, une bonne
partie généralement spécifiques à l'activité de l'entreprise.
• En Machine Learning, chaque entité ou ligne est un échantillon (i.e. data point), tandis que
les colonnes contiennent les attributs qui décrivent ces entités (i.e. features).
16/03/2022 33
• Minimum (Min): la plus petite valeur des valeurs enregistrées à un moment donné.
• Maximum (Max): la plus grande valeur des valeurs enregistré que l'on retrouve.
• Moyenne (Mean): la somme des valeurs numériques divisée par le nombre de ces valeurs
numériques. 𝟏 𝒏
𝑿= 𝒊=𝟏 𝒙𝒊 𝒂𝒗𝒆𝒄 𝒙𝒊𝝐 𝑿 𝒆𝒕 𝒊 = 𝟏, … , 𝒏
𝒏
• Variance: La variance (𝝈𝟐 ) mesure la dispersion d'un ensemble de valeurs autour de leur
moyenne. 𝒏
𝟏
𝑽= 𝝈𝟐 = 𝒙𝒊 − 𝑿 ²
𝒏 𝒊=𝟏
𝟏 𝒏
𝝈= 𝒙𝒊 − 𝑿 ²
𝒏 𝒊=𝟏
16/03/2022 36
Mean
Mean : La somme des valeurs numériques divisée par le nombre de ces
valeurs numériques.
𝟏 𝒏
𝑿= 𝒊=𝟏 𝒙𝒊 𝒂𝒗𝒆𝒄 𝒙𝒊 𝝐 𝑿 𝒆𝒕 𝒊 = 𝟏, … , 𝒏
𝒏
Exemple:
• Nombre d'enfants dans chaque maison de mon quartier:
{0, 2, 3, 2, 1, 0, 0, 2, 0}
Variance
• La variance (𝝈𝟐 ) est simplement la moyenne des différences (valeur et moyenne)
au carré. 𝟏 𝒏
𝑽 = 𝝈𝟐 = 𝒙𝒊 − 𝑿 ²
𝒏 𝒊=𝟏
• Exemple: C’est quoi la variance de cette Dataset {1, 4, 5, 4, 8}?
Standard Deviation 𝜎
• Standard Deviation (L‘écart type) 𝜎 est que la racine carrée de la variance.
𝟏 𝒏
𝝈= 𝒙𝒊 − 𝑿 ²
𝒏 𝒊=𝟏
• Exemple:
C’est quoi la variance de cette Dataset {1, 4, 5, 4, 8}?
𝑽 = 𝝈𝟐 = 5.04 et donc 𝝈 = 5.04 = 𝟐. 𝟐𝟒
• Standard deviation est 2.24 pour cette Dataset
La StdDev est généralement utilisé comme moyen pour identifier les valeurs
aberrantes (Outliers). Les Data points qui se situent à plus d'un 𝝈 du Mean peuvent
être considérés comme inhabituels.
On peut décrire un data point comme extrême, en parlant de «combien de sigmas»
est-il loin du Mean.
16/03/2022 39
Exemple
On considère 5 instances qui ont l'attribut A avec les valeurs suivantes:
{-5, 6, 9, 2, 4}
Exemple
• Le minimum Min = -5 Dataset {-5, 6, 9, 2, 4}
• Le maximum Max= 9
• La moyenne:
Mean = (-5+6+9+2+4) / 5 = 3.2
Normalisation et standardisation
Normalisation
• min‐max
v minA
v' (new _ maxA new _ minA) new _ minA
maxA minA
Standardisation
• z‐score
v meanA
v '
Stand_devA
16/03/2022 43
Exemple
On considère 5 instances qui ont l'attribut A avec les valeurs suivantes:
{-5, 6, 9, 2, 4}
Exemple
On considère 5 instances qui ont l'attribut A avec les valeurs suivantes:
{-5, 6, 9, 2, 4}
Standardisation
• Standardisation (centrer-réduire ): c’est la conversion des valeurs vers un
standard commun (les rendre conforme à un standard). On veut ramener la
distribution de chaque variable a une loi normale centrée-réduite 𝒙′𝒊 ~𝑵(0,1)
Exercice
On considère 5 instances qui ont l'attribut A avec les valeurs suivantes:
{-5, 6, 9, 2, 4}
Median
• la Médiane d'un ensemble de valeurs est une valeur x qui permet de couper
l'ensemble des valeurs en deux parties égales
• La médian met d'un côté une moitié des valeurs, qui sont toutes inférieures ou
égales à x et de l'autre côté l'autre moitié des valeurs, qui sont toutes supérieures ou
égales à x
• Exemple:
On commence par mettre les valeurs de la Dataset en ordre:
0, 2, 3, 2, 1, 0, 0, 2, 0 0, 0, 0, 0, 1, 2, 2, 2, 3
Median
La Médiane est moins sensible aux Outliers que le Mean.
• Exemple:
• La moyenne (Mean) des revenus aux États-Unis est de 72 641 $, mais la
médiane n'est que de 51 939 $ parce que la moyenne est biaisée (skewed)
par une poignée de milliardaires.
• La médiane représente mieux l'américain «typique» dans cet exemple.
16/03/2022 49
InterQuartile Range
• En statistiques, l’écart interquartile ou étendue interquartile (IQR) est une
mesure de dispersion qui s'obtient en faisant la différence entre le troisième et
le premier quartile : IQR = Q3 - Q1.
• L‘IQR est un estimateur statistique robuste.
16/03/2022 50
Mode
• Mode : la valeur la plus fréquente dans un ensemble de données. Il n’est pas
utilisé dans le cas des valeurs numériques continues.
• Exemple:
• Nombre d'enfants dans chaque maison de mon quartier:
{0, 2, 3, 2, 1, 0, 0, 2, 0}
Missing values
Information manquante
• Cas où les champs ne contiennent aucune donnée.
• Parfois, il est intéressant de conserver ces enregistrements car l’absence d’information
peut être informative (e.g. fraude).
Outils et Environnement
16/03/2022 54
Python
• Python est devenu le langage de la science des données. Il combine la puissance des
langages de programmation à usage général avec la facilité d'utilisation des langages de
script spécifiques au domaine comme MATLAB ou R.
Scikit-learn
• Scikit-learn est open-source, il a une communauté d'utilisateurs et développeurs très
active, il s'améliore constamment.
Anaconda
• On va utiliser le gestionnaire de paquets Anaconda.
• Anaconda: une distribution Python conçue pour le traitement de données à grande
échelle, l'analyse prédictive et le calcul scientifique.
• Anaconda intègre NumPy, SciPy, matplotlib, pandas, IPython, Jupyter Notebook et
Scikit-learn.
• Disponible sur Mac OS, Windows et Linux, c'est une solution pratique pour les
débutants qui n'ont pas une installation existante des packages scientifiques Python.
• Remarques:
• Téléchargez la dernière version compatible avec votre OS.
• Double click pour l’installation sous Windows
• Et suivez ces étapes pour Linux https://docs.anaconda.com/anaconda/install/linux/
16/03/2022 57
Jupyter
• Jupyter Notebook est un environnement de programmation interactif basé
sur le navigateur.
• Jupyter permet d'exécuter du code dans le navigateur. C'est un excellent outil
pour l'analyse des données et est largement utilisé par les Data scientists.
• il existe deux modes dans Jupyter Notebook: le mode commande et le mode
édition.
• Shortcuts:
16/03/2022 58
Jupyter
Command mode
(Tapez ESC pour l’activer)
16/03/2022 59
Jupyter
Edit mode
(Tapez ENTER pour l’activer)
16/03/2022 60
Autres packages
• NumPy est l'un des packages fondamentaux pour le calcul scientifique en Python. Il contient des
fonctionnalités pour les tableaux multidimensionnels, des fonctions mathématiques de haut niveau
telles que les opérations d'algèbre linéaire, les générateurs de nombres pseudo-aléatoires…
• En scikit-learn, le tableau NumPy (NumPy array) est la structure de données fondamentale. scikit-learn
prend les données sous forme de NumPy arrays. Toutes les données que vous utilisez devront alors
être converties en un tableau NumPy.
• Exemple:
16/03/2022 61
Autres packages
• SciPy est une librairie visant à unifier et fédérer un ensemble de bibliothèques Python à
usage scientifique. Scipy utilise les tableaux et matrices du module NumPy.
• Cette distribution de modules est destinée à être utilisée avec le langage interprété Python
afin de créer un environnement de travail scientifique très similaire à celui offert par Scilab,
GNU Octave, Matlab voire R.
• Il contient par exemple des modules pour l'optimisation, l'algèbre linéaire, les statistiques, le
traitement du signal ou encore le traitement d'images.
• Afin d'obtenir d'excellentes performances d'exécution (point faible des langages interprétés),
la plupart des algorithmes de SciPy et NumPy sont codés en C.
16/03/2022 62
Autres packages
• Matplotlib est la principale librairie de traçage (Plotting) scientifique en Python. Elle
fournit des fonctions pour effectuer des visualisations de qualité telles que des
graphiques linéaires, des histogrammes, des diagrammes de dispersion, etc.
• La visualisation de vos données et des différents aspects de votre analyse peut vous
fournir des informations importantes. Sur Jupyter, vous pouvez afficher des figures
directement dans le navigateur à l'aide de la commande %matplotlib inline
16/03/2022 63
Autres packages
• Pandas est une librairie Python pour l'analyse des données. Elle est construite autour d'une structure de
données appelée DataFrame. Un pandas DataFrame est un tableau, semblable à une feuille de calcul
Excel.
• Pandas fournit une large gamme de méthodes pour modifier et opérer sur cette table. Contrairement à
NumPy, qui exige que toutes les entrées d'un tableau soient du même type, pandas permet à chaque
colonne d'avoir un type distinct (par exemple, des nombres entiers, des dates, et des chaînes).
• Pandas supporte plusieurs formats de fichiers et de bases de données, comme SQL, les fichiers Excel
et les fichiers de valeurs séparées par des virgules (CSV).