Vous êtes sur la page 1sur 125

Younes Benzaki

Y. Benzaki
Préface de Farid Oukaci
+ 2 études
de cas
commentées

DATA
Un livre à la fois théorique et pratique
Cet ouvrage a pour ambition de couvrir un large spectre du domaine des data sciences. Il va plus loin qu’un simple tour sur les algorithmes
d’apprentissage automatique et s’attaque aux autres aspects, malheureusement négligés mais fondamentaux pour tout data scientist :
• concepts généraux mais poussés, dont la maîtrise est indispensable ;

Les
• algorithmes d’apprentissage automatique les plus connus ;
• aspects liés à l’exploration des données ;
• mesures de performances et d’autres métriques utilisées par les algorithmes ;

SCIENCES
• différents concepts fondamentaux en mathématiques à connaître pour mieux explorer et comprendre les données ;
• notions importantes des big data ;

Les DATA SCIENCES en 100 questions/réponses


• études de cas pratiques en langage Python.
La première partie de ce livre est théorique et adopte un format questions/réponses qui présente plusieurs avantages, dont la possibilité
pour le lecteur de lire distinctement chacune des questions pour parfaire son savoir. Un autre point fort de cette structure est qu’elle
incite à entrer dans un dialogue. Ainsi, grâce aux questions posées, le lecteur est poussé vers une réflexion où il confronte ses réponses
à celles données par le livre.
La deuxième partie est pratique et propose deux exemples d’implémentation de modèles d’apprentissage automatique. Vous y trouverez
des codes écrits en Python et un aperçu de différentes difficultés que peut rencontrer un spécialiste lors de l’exercice de son métier.

À qui s’adresse cet ouvrage ?


Le présent ouvrage est adapté à toute personne ayant une certaine maîtrise de la data science et du Machine Learning. Il aidera notamment
en 100 questions/réponses
à se rappeler des concepts importants, mais suppose que le lecteur soit initié sur le sujet. Il sera particulièrement utile à ceux qui veulent
se préparer pour un concours, un examen ou un entretien.

Au sommaire
Partie théorique. Questions généralistes • Vue d’ensemble des algorithmes • Préparation des données • Mesures, métriques et performances
• Mathématiques pour l’apprentissage automatique • Big data • Partie pratique. Études de cas • La data science dans la pratique • Aborder
un problème de Machine Learning • Étude de cas #1 : Régression linéaire • Étude de cas #2 : Régression logistique

Younes Benzaki est consultant informatique depuis plus de dix ans auprès
de grands acteurs de l’économie française. Il a fait ses débuts dans les
ISBN : 978-2-212-67951-9
Code éditeur : G67951

technologies Java EE. Avec l’émergence du big data, Younes s’est tourné 32 €
vers la data science et y consacre depuis des articles sur Mister Mint
(https://mrmint.fr), son site Internet, également dédié au Machine
Learning. Depuis 2018, il accompagne la Banque de France dans Studio Eyrolles © Éditions Eyrolles
le développement du langage Python dans son parc logiciel.

67951-LesaDataScienceEn100QuestionsRéponses-CV.indd 1 31/08/2020 15:25


Younes Benzaki

Y. Benzaki
Préface de Farid Oukaci
+ 2 études
de cas
commentées

DATA
Un livre à la fois théorique et pratique
Cet ouvrage a pour ambition de couvrir un large spectre du domaine des data sciences. Il va plus loin qu’un simple tour sur les algorithmes
d’apprentissage automatique et s’attaque aux autres aspects, malheureusement négligés mais fondamentaux pour tout data scientist :
• concepts généraux mais poussés, dont la maîtrise est indispensable ;

Les
• algorithmes d’apprentissage automatique les plus connus ;
• aspects liés à l’exploration des données ;
• mesures de performances et d’autres métriques utilisées par les algorithmes ;

SCIENCES
• différents concepts fondamentaux en mathématiques à connaître pour mieux explorer et comprendre les données ;
• notions importantes des big data ;

Les DATA SCIENCES en 100 questions/réponses


• études de cas pratiques en langage Python.
La première partie de ce livre est théorique et adopte un format questions/réponses qui présente plusieurs avantages, dont la possibilité
pour le lecteur de lire distinctement chacune des questions pour parfaire son savoir. Un autre point fort de cette structure est qu’elle
incite à entrer dans un dialogue. Ainsi, grâce aux questions posées, le lecteur est poussé vers une réflexion où il confronte ses réponses
à celles données par le livre.
La deuxième partie est pratique et propose deux exemples d’implémentation de modèles d’apprentissage automatique. Vous y trouverez
des codes écrits en Python et un aperçu de différentes difficultés que peut rencontrer un spécialiste lors de l’exercice de son métier.

À qui s’adresse cet ouvrage ?


Le présent ouvrage est adapté à toute personne ayant une certaine maîtrise de la data science et du Machine Learning. Il aidera notamment
en 100 questions/réponses
à se rappeler des concepts importants, mais suppose que le lecteur soit initié sur le sujet. Il sera particulièrement utile à ceux qui veulent
se préparer pour un concours, un examen ou un entretien.

Au sommaire
Partie théorique. Questions généralistes • Vue d’ensemble des algorithmes • Préparation des données • Mesures, métriques et performances
• Mathématiques pour l’apprentissage automatique • Big data • Partie pratique. Études de cas • La data science dans la pratique • Aborder
un problème de Machine Learning • Étude de cas #1 : Régression linéaire • Étude de cas #2 : Régression logistique

Younes Benzaki est consultant informatique depuis plus de dix ans auprès
de grands acteurs de l’économie française. Il a fait ses débuts dans les
technologies Java EE. Avec l’émergence du big data, Younes s’est tourné
vers la data science et y consacre depuis des articles sur Mister Mint
(https://mrmint.fr), son site Internet, également dédié au Machine
Learning. Depuis 2018, il accompagne la Banque de France dans
le développement du langage Python dans son parc logiciel.

67951-LesaDataScienceEn100QuestionsRéponses-CV.indd 1 31/08/2020 15:25


G67951-Les data sciences en 100 questions réponses-INT-.book Page I Monday, August 24, 2020 8:17 AM

Les data sciences


en 100 questions/réponses
G67951-Les data sciences en 100 questions réponses-INT-.book Page II Monday, August 24, 2020 8:17 AM

SUR LE MÊME THÈME

M-R. AMINI. ET AL. – Data science – Cours et exercices.


N°67410, 2018, 272 pages.
H. WICKHAM, G. GROLEMUND. – R pour les data sciences.
N°67571, 2018, 496 pages.
F. PROVOST, T. FAWCETT. – Data science pour l’entreprise.
N°67570, 2018, 384 pages.
J. GRUS. – Data science par la pratique.
N°11868, 2017, 308 pages.
E. BIERNAT, M. LUTZ. – Data science : fondamentaux et études de cas.
N°14243, 2015, 312 pages.
W. MCKINNEY. – Analyse de données en Python.
N°14109, 2015, 488 pages.
M.-R. AMINI. – Apprentissage machine, de la théorie à la pratique.
N°13800, 2015, 272 pages.

DANS LA MÊME COLLECTION

K. NOVAK. – Administration Linux par la pratique – Tome 2.


N°67949, 2020, 418 pages.
C. DELANNOY. – Le guide complet du langage C.
N°67922, 2020, 876 pages.
J. LORIAUX, T. DEFOSSEZ. – Emailing : développement et intégration.
N°67849, 2020, 160 pages.
B. BARRÉ. – Concevez des applications mobiles avec React Native.
N°67889, 2e édition, 2019, 224 pages.
S. RINGUEDÉ. – SAS.
N°67631, 4e édition, 2019, 688 pages.
C. BLAESS. – Développement système sous Linux.
N°67760, 5e édition, 2019, 1080 pages.
T. PARISOT. – Node.js.
N°13993, 2018, 472 pages.

Retrouvez nos bundles (livres papier + e-book) et livres numériques sur


http://izibook.eyrolles.com
G67951-Les data sciences en 100 questions réponses-INT-.book Page III Monday, August 24, 2020 8:17 AM

Younes Benzaki
Préface de Farid Oukaci

Les data sciences


en 100 questions/réponses
G67951-Les data sciences en 100 questions réponses-INT-.book Page IV Monday, August 24, 2020 8:17 AM

ÉDITIONS EYROLLES
61, bd Saint-Germain
75240 Paris Cedex 05
www.editions-eyrolles.com

En application de la loi du 11 mars 1957, il est interdit de reproduire intégralement ou partiellement le présent ouvrage,
sur quelque support que ce soit, sans l’autorisation de l’Éditeur ou du Centre Français d’exploitation du droit de copie,
20, rue des Grands Augustins, 75006 Paris.
© Éditions Eyrolles, 2020, ISBN : 978-2-212-67951-9
G67951-Les data sciences en 100 questions réponses-INT-.book Page V Monday, August 24, 2020 8:17 AM

Avertissement

Les informations contenues dans ce livre ont un but strictement éducatif. Si vous souhaitez
appliquer les idées présentées dans l’ouvrage, vous assumez l’entière responsabilité de vos
actions.
L’auteur s’est efforcé de garantir l’exactitude des informations au moment de la publication.
L’auteur n’assume aucune responsabilité vis-à-vis d’une partie en cas de perte, de dommage
ou de perturbation causé par des erreurs ou des omissions, que ces erreurs ou omissions
résultent d’un accident, d’une négligence ou de toute autre cause.
G67951-Les data sciences en 100 questions réponses-INT-.book Page VI Monday, August 24, 2020 8:17 AM
G67951-Les data sciences en 100 questions réponses-INT-.book Page VII Monday, August 24, 2020 8:17 AM

Remerciements

Ce livre est dédicacé à mes parents, mon épouse, mon fils, ma famille et mes amis. Sans leur
soutien, leur inspiration et leur optimisme, ce livre n’aurait pu aboutir. Mes chaleureux remer-
ciements vont à tous ceux qui ont contribué directement ou indirectement à l’élaboration de
ce livre.
G67951-Les data sciences en 100 questions réponses-INT-.book Page VIII Monday, August 24, 2020 8:17 AM
G67951-Les data sciences en 100 questions réponses-INT-.book Page IX Monday, August 24, 2020 8:17 AM

Préface

La data science (ou science des données) est une discipline sortie des laboratoires de recherche
et qui, de jour en jour, gagne en popularité, y compris auprès du public, de plus en plus intrigué
par les exploits très médiatisés des derniers algorithmes en intelligence artificielle.
La data science vise à résoudre des problématiques de tous les jours grâce à la collecte et à l’ana-
lyse des données. Les entreprises, et dans ce domaine les start-up ont été pionnières, y voient un
fabuleux outil pour explorer des opportunités immenses. Le défi de faire parler leurs gisements
de données et d’en tirer de la valeur est tout simplement très prometteur et passionnant.
Les étudiants, les organisations, ou simplement les passionnés curieux de ce domaine,
peuvent se former à cette discipline et apprendre les bonnes pratiques pour collecter les don-
nées, les nettoyer, les préparer et, ultime récompense, maîtriser les algorithmes de Machine
Learning, qui sont au cœur de la data science. Le chemin est long mais passionnant pour
devenir expert dans ce domaine.
Un livre de plus sur la data science ? Non ; bien que la littérature française sur le sujet soit
plutôt rare, ce livre se positionne avec une approche nouvelle. En effet, grâce à sa structure sous
forme de questions/réponses, il pourra être étudié de façon séquentielle dans le cadre d’un
apprentissage initial, en plus d’être un livre pratique qui servira de référence. Notamment grâce
au regroupement astucieux des questions selon des thématiques courantes en entreprise, le lec-
teur peut mieux se préparer à des concours ou des entretiens d’embauche. Les réponses appor-
tées se veulent succinctes mais complètes, pour mieux éclairer le contexte abordé.
Sous un autre angle, celui d’un recruteur, ce livre est aussi une bonne référence pour ceux qui
souhaitent évaluer les candidats en axant les questions sur des thématiques larges et pointues.
En effet, les réponses données permettent d’évaluer la compréhension du candidat et sa
vision globale sur les différents aspects de la data science.
Je conseille à chacun de se procurer un exemplaire de cet ouvrage pratique et en français ! Et
je souhaite à tout le monde une bonne réussite dans un domaine passionnant qui est à l’aube
de la prochaine révolution technologique.
Farid Oukaci,
Lead data scientist et chargé des innovations
en intelligence artificielle et data science à la Banque de France
G67951-Les data sciences en 100 questions réponses-INT-.book Page X Monday, August 24, 2020 8:17 AM
G67951-Les data sciences en 100 questions réponses-INT-.book Page XI Monday, August 24, 2020 8:17 AM

Table des matières

Avant-propos ................................................................................. 1
Objectif du livre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
À qui s’adresse ce livre ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Structure de l’ouvrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

PREMIÈRE PARTIE
Partie théorique .................................................. 3
CHAPITRE 1
Questions généralistes.................................................................. 5
1. Quelle est la différence entre data science et apprentissage machine ? . . . . . . . . . . . . . 5
2. Qu’est-ce que l’apprentissage automatique ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Quelles sont les différentes étapes d’un projet d’apprentissage automatique ? . . . . . . . . 6
Compréhension de la problématique et du but à atteindre . . . . . . . . . . . . . . . . . . . 6
Collecte et acquisition de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Exploration et compréhension des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Découper le jeu de données en jeu d’entraînement et jeu de test . . . . . . . . . . . . . . . 7
Préparation des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Modélisation du système prédictif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Évaluation du modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Déploiement de modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4. Qu’est-ce que l’apprentissage supervisé ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5. Qu’est-ce que l’apprentissage non supervisé ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
6. Qu’est-ce que l’apprentissage semi-supervisé ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
7. Qu’est-ce que l’apprentissage par renforcement ? . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
8. Qu’est-ce qu’une régression ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
9. Qu’est-ce qu’une classification ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
10. Quels sont les trois principaux algorithmes de régression ? . . . . . . . . . . . . . . . . . . . 12
11. Quels sont les trois principaux algorithmes de classification ? . . . . . . . . . . . . . . . . . 13
12. Quels sont les quatre algorithmes qui font aussi bien la classification
que la régression ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
13. Qu’est-ce que le partitionnement ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
14. Qu’est-ce que l’apprentissage hors ligne ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
G67951-Les data sciences en 100 questions réponses-INT-.book Page XII Monday, August 24, 2020 8:17 AM

Les data sciences en 100 questions/réponses


XII

15. Qu’est-ce que l’apprentissage incrémental ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15


16. Quel est le message véhiculé par l’expression « no free lunch » ? . . . . . . . . . . . . . . . 15
17. Comment fonctionne un réseau de neurones artificiels ? . . . . . . . . . . . . . . . . . . . . 16
18. Qu’est-ce qu’un algorithme paramétrique ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
19. Qu’est-ce qu’un algorithme non paramétrique ? . . . . . . . . . . . . . . . . . . . . . . . . . . 17
20. Quelle est la différence entre modèle linéaire et non linéaire ? . . . . . . . . . . . . . . . . . 17
21. Qu’est-ce qu’un hyperparamètre d’un algorithme d’apprentissage automatique ? . . . 17
22. Qu’est-ce que le surajustement ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
23. Qu’est-ce que le sous-ajustement ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
24. Quelles sont les différentes techniques pour éviter le surajustement ? . . . . . . . . . . . 18
25. Quelles sont les différentes techniques pour éviter le sous-ajustement ? . . . . . . . . . . 19
26. Qu’est-ce que le compromis biais/variance ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
27. Qu’est-ce que le fléau de la dimension ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
28. Comment et pourquoi réduire la dimension d’un jeu de données ? . . . . . . . . . . . . . 20
29. Quand faut-il utiliser la réduction de dimension ? . . . . . . . . . . . . . . . . . . . . . . . . . 21
30. En apprentissage automatique, qu’est-ce que la régularisation ? . . . . . . . . . . . . . . . 22
31. Quels sont les différents types de partitionnement ? . . . . . . . . . . . . . . . . . . . . . . . . 22

CHAPITRE 2
Vue d’ensemble des algorithmes............................................... 25
32. Qu’est-ce que la descente de gradient ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
33. Qu’est-ce que la régression logistique ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
34. Qu’est-ce que l’algorithme ADL ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
35. Qu’est-ce que la régression Ridge ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
36. Qu’est-ce que la régression LASSO ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
37. Qu’est-ce que la régression ElasticNet ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
38. Qu’est-ce que l’algorithme des K plus proches voisins ? . . . . . . . . . . . . . . . . . . . . . 28
39. Qu’est-ce que l’algorithme Bayes naïf ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
40. Qu’est-ce que le SVM ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
41. Qu’est-ce qu’une fonction noyau ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
42. Qu’est-ce que l’analyse en composantes principales ? . . . . . . . . . . . . . . . . . . . . . . . 33
43. Qu’est-ce qu’un arbre de décision ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
44. Qu’est-ce qu’une forêt aléatoire ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
45. Qu’est-ce qu’une série temporelle ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
46. Qu’est-ce que la technique du boosting ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
47. Qu’est-ce que le gradient boosting ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
48. Qu’est-ce que XGBoost ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

CHAPITRE 3
Préparation des données ............................................................ 37
49. Qu’est-ce qu’une variable dépendante/indépendante ? . . . . . . . . . . . . . . . . . . . . . . 37
50. Quelle est la différence entre les variables continues, discrètes (catégorielles)
et ordinales ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
G67951-Les data sciences en 100 questions réponses-INT-.book Page XIII Monday, August 24, 2020 8:17 AM

Table des matières


XIII

51. Qu’est-ce qu’une valeur aberrante ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38


52. Qu’est-ce que la normalisation des données ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
53. Qu’est-ce que la standardisation des données ? . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
54. En préparation de données, qu’est-ce que la discrétisation ? . . . . . . . . . . . . . . . . . . 39
55. Qu’est-ce que la binarisation des données ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
56. Qu’est-ce que l’encodage one-hot ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
57. Comment traiter les valeurs manquantes ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
58. Qu’est-ce que le principe de la validation croisée ? . . . . . . . . . . . . . . . . . . . . . . . . . 40
59. Comment expliquer le fonctionnement de la validation croisée en K passes ? . . . . . . 41
60. Qu’est-ce que le principe de la méthode LOOCV . . . . . . . . . . . . . . . . . . . . . . . . . 42

CHAPITRE 4
Mesures, métriques et performances ........................................ 43
61. Qu’est-ce qu’une matrice de confusion ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
62. En classification, qu’est-ce qu’un vrai positif ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
63. Qu’est-ce qu’un vrai négatif ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
64. Qu’est-ce qu’un faux positif ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
65. Qu’est-ce qu’un faux négatif ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
66. En classification, comment calculer le taux de faux positifs ? . . . . . . . . . . . . . . . . . . 45
67. Qu’est-ce que la courbe ROC ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
68. Qu’est-ce que l’aire sous la courbe ROC ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
69. Qu’est-ce que le rappel en classification ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
70. Qu’est-ce que la précision en classification ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
71. En classification, que signifie avoir un modèle ayant une forte précision
et un rappel bas ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
72. En classification, que signifie avoir un modèle ayant un fort rappel
et une précision basse ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
73. Qu’est-ce que le score F1 ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
74. En classification, comment calculer la métrique de justesse ? . . . . . . . . . . . . . . . . . 47
75. En classification, quand faut-il éviter la métrique de justesse ? . . . . . . . . . . . . . . . . 47
76. Qu’est-ce que l’erreur quadratique moyenne ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
77. Qu’est-ce que l’erreur absolue moyenne ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

CHAPITRE 5
Mathématiques pour l’apprentissage automatique ................ 49
78. Qu’est-ce que le coefficient de corrélation de Pearson ? . . . . . . . . . . . . . . . . . . . . . 49
79. Quels sont les deux exemples de distances euclidiennes souvent utilisées
en apprentissage automatique ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
80. Qu’est-ce que la distance de Jaccard ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
81. Qu’est-ce que la distance cosinus ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
82. Qu’est-ce que la distance de Hamming ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
83. Qu’est-ce que la mesure de variance et comment la calculer ? . . . . . . . . . . . . . . . . . 52
84. Qu’est-ce que l’écart-type ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
85. Qu’est-ce qu’un centile ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
G67951-Les data sciences en 100 questions réponses-INT-.book Page XIV Monday, August 24, 2020 8:17 AM

Les data sciences en 100 questions/réponses


XIV

86. Qu’est-ce que le premier quartile, le troisième quartile et la médiane ? . . . . . . . . . . . 54


87. Qu’est-ce que l’écart interquartile ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
88. Qu’est-ce qu’une distribution normale ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

CHAPITRE 6
Big data ........................................................................................ 57
89. Quelle est la différence entre big data et la data science ? . . . . . . . . . . . . . . . . . . . . 57
90. Qu’est-ce qu’une distribution Hadoop ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
91. Quelles sont les caractéristiques d’un cluster Hadoop ? . . . . . . . . . . . . . . . . . . . . . 59
92. Quels sont les différents modes d’exécution de Hadoop ? . . . . . . . . . . . . . . . . . . . . 59
93. Qu’est-ce que HDFS ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
94. Qu’est-ce que MapReduce ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
95. Quelles sont les limitations de MapReduce ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
96. Qu’est-ce que YARN dans le framework Hadoop ? . . . . . . . . . . . . . . . . . . . . . . . . 62
97. Qu’est-ce que Spark ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
98. À quoi Hive sert-il ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
99. Qu’est-ce que le NoSQL ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Bases orientées « clés/valeurs » . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Bases orientées « documents » . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Bases orientées « colonnes » . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Bases orientées « graphes » . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
100. Qu’est-ce que le théorème CAP ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

DEUXIÈME PARTIE
Partie pratique ..................................................67
CHAPITRE 7
Études de cas ............................................................................... 69
La data science dans la pratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
La face pratico-pratique de la data science . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Au-delà des algorithmes d’apprentissage automatique . . . . . . . . . . . . . . . . . . . . . 70
Outils de l’expert et intégration à l’entreprise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Pertinence et pérennité du langage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Cohérence du parc applicatif de l’entreprise . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Facilité pour trouver des compétences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Recommandation du livre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Aborder un problème de Machine Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
1. Compréhension du problème et définition du périmètre de la problématique . . . 73
2. Récupération des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Diversité des sources de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Diversité des formats de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Légalité d’accès aux données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3. Exploration numérique et visuelle des données pour mieux les comprendre . . . . 76
G67951-Les data sciences en 100 questions réponses-INT-.book Page XV Monday, August 24, 2020 8:17 AM

Table des matières


XV

4. Préparation des données pour les algorithmes d’apprentissage automatique . . . . 76


Taille du jeu de données. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Complétude du jeu de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Formatage des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Concordance entre les prérequis de l’algorithme et les propriétés statistiques
du jeu de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5. Sélection d’une métrique de performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
6. Sélection d’un modèle et son entraînement . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
7. Ajustement et affinement du modèle obtenu . . . . . . . . . . . . . . . . . . . . . . . . . . 79
8. Validation sur le jeu de test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
9. Présentation de la solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
10. Mise en production et suivi de la solution . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Installation des outils de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Installation de l’interpréteur Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Récupération des sources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Installation et mise à jour de PIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Création d’un environnement de travail isolé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Installation des dépendances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Lancement du serveur Jupyter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Présentation de Jupyter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Présentation des études de cas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Régression linéaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Présentation du problème. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Récupération des données. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Exploration numérique et visuelle des données. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Préparation des données pour l’algorithme d’apprentissage automatique . . . . . . . . . 89
Sélection d’une métrique de performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Sélection d’un modèle et son entraînement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Calculer des prédictions sur de nouvelles variables . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Régression logistique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Présentation du problème. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Récupération des données. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Exploration numérique et visuelle des données. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Préparation des données pour l’algorithme d’apprentissage automatique . . . . . . . . . 98
Sélection d’une métrique de performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Entraînement d’un algorithme de régression logistique . . . . . . . . . . . . . . . . . . . . . . 99
Calcul du score de justesse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Effectuer des prédictions sur de nouvelles variables . . . . . . . . . . . . . . . . . . . . . . . . 100
Conclusion des études . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

Conclusion générale.................................................................. 103

Index........................................................................................... 105
G67951-Les data sciences en 100 questions réponses-INT-.book Page XVI Monday, August 24, 2020 8:17 AM
G67951-Les data sciences en 100 questions réponses-INT-.book Page 1 Monday, August 24, 2020 8:17 AM

Avant-propos

Objectif du livre
La data science est le sujet chaud du moment. Tout le monde s’y intéresse et tout le monde
veut en appréhender la substance.
La littérature et les formations abondent sur le sujet. Cependant, il n’existe, à ma connaissance,
aucun ouvrage qui accompagne les lecteurs dans des rafraîchissements ponctuels de certaines de
leurs compétences. Cela est pourtant nécessaire lors de la préparation à un entretien, un
concours ou tout simplement pour se rappeler un certain point ou concept lié à la data science.
C’est de ce constat que l’idée d’écrire ce livre a émergé. Ce dernier a été rédigé de sorte à cou-
vrir un large spectre. Il va plus loin qu’un simple tour sur les algorithmes d’apprentissage
automatique et s’attaque aux autres aspects, malheureusement négligés mais fondamentaux
pour tout data scientist :
• concepts généraux mais poussés, dont la maîtrise est indispensable ;
• algorithmes d’apprentissage automatique les plus connus ;
• aspects liés à l’exploration des données ;
• mesures de performances et d’autres métriques utilisées par les algorithmes ;
• différents concepts fondamentaux en mathématiques à connaître pour mieux explorer et
comprendre les données ;
• notions importantes des big data ;
• études de cas pratiques en langage Python.

À qui s’adresse ce livre ?


Le présent ouvrage est adapté à toute personne ayant une certaine maîtrise de la data science
et du Machine Learning. Il aidera notamment à se rappeler des concepts importants, mais
suppose que le lecteur soit initié sur le sujet. Il sera particulièrement utile à ceux qui veulent se
préparer pour un concours, un examen ou un entretien.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 2 Monday, August 24, 2020 8:17 AM

Les data sciences en 100 questions/réponses


2

Ce livre n’est pas adapté pour…


Ce livre n’est pas un cours sur les data sciences ou le Machine Learning. Si vous débutez dans ce
domaine, cet ouvrage n’est pas le meilleur point de départ.
Toutefois, les débutants dans le domaine pourront apprécier ce livre pour avoir une vue à large spectre
des différentes thématiques en science des données.

Structure de l’ouvrage
Pour rédiger ce livre, le format questions/réponses a été adopté. Il présente plusieurs avan-
tages, dont la possibilité pour le lecteur de lire distinctement chacune des questions pour par-
faire son savoir et voir l’approche du livre dans la réponse suggérée.
Un autre avantage de cette structure est qu’elle incite à entrer dans un dialogue. Ainsi, le lec-
teur est poussé vers une réflexion pour apporter une réponse à la question posée et la com-
parer à celle donnée par le livre.
Les questions compilées abordent différents aspects utiles. Elles ne sont pas forcément
ordonnées par difficulté, mais par thématique. Ainsi, le lecteur peut entamer sa lecture à
n’importe quel chapitre.
Les questions traitées dans cet ouvrage sont regroupées en sept thématiques :
• Chapitre 1 – Questions généralistes
Nous présentons les concepts généraux de la data science.
• Chapitre 2 – Tour des algorithmes
Nous abordons les algorithmes d’apprentissage automatique les plus connus.
• Chapitre 3 – Préparation des données
Nous verrons les notions de standardisation, normalisation, traitement des données
manquantes et d’autres points.
• Chapitre 4 – Mesures, métriques et performance
Ce volet aborde les différentes métriques de performance, notamment pour les algo-
rithmes de classification et de régression.
• Chapitre 5 – Mathématiques pour l’apprentissage automatique
Nous nous pencherons sur les mathématiques fondamentales pour l’exploration des
données : différentes notions de distance, écart-type, variance, coefficient de Pearson, etc.
• Chapitre 6 – Big data
En entreprise, il est primordial de connaître le jargon du big data et les technologies
connexes à ce domaine.
• Chapitre 7 – Études de cas pratiques
Cette section diffère des précédentes. Elle n’adopte pas le format questions/réponses et
est axée sur la pratique. On y découvrira deux exemples d’implémentation de modèles
d’apprentissage automatique. Vous y trouverez des codes écrits en Python et un aperçu de
différentes difficultés que peut rencontrer un spécialiste lors de l’exercice de son métier.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 3 Monday, August 24, 2020 8:17 AM

PREMIÈRE PARTIE

Partie
théorique
G67951-Les data sciences en 100 questions réponses-INT-.book Page 4 Monday, August 24, 2020 8:17 AM
G67951-Les data sciences en 100 questions réponses-INT-.book Page 5 Monday, August 24, 2020 8:17 AM

1
Questions généralistes

1. Quelle est la différence entre data science et


apprentissage machine ?
L’apprentissage automatique est un ensemble de procédés algorithmiques visant à
« apprendre » des relations entre des données.
La data science, quant à elle, consiste à exploiter des informations, pour découvrir des ten-
dances, offrir des services et produits innovants avec une approche dirigée par les données
(Data Driven). Elle s’appuie parfois sur des algorithmes d’apprentissage automatique, mais
peut aussi s’en passer en fonction du besoin. La data science trouve son intérêt quand elle est
couplée avec un besoin métier.

2. Qu’est-ce que l’apprentissage automatique ?


L’apprentissage automatique ou apprentissage machine (Machine Learning) est un ensemble
de techniques algorithmiques produisant des modèles à partir de données. Ces dernières se
caractérisent par le fait qu’elles apprennent depuis les données et non en se basant sur des
règles métiers programmées préalablement. Le modèle obtenu à la suite de l’apprentissage est
utilisé généralement pour effectuer des prédictions. Dans ce cas de figure, on parle d’analyse
prédictive.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 6 Monday, August 24, 2020 8:17 AM

Partie théorique
6
PREMIÈRE PARTIE

L’apprentissage automatique peut servir aussi à des tâches d’exploration de données (data
mining), notamment grâce aux algorithmes de partitionnement (clustering) et de visualisation
de données (ex. PCA).
Une autre définition est celle donnée par Tom Mitchell : « Étant données une tâche T et une
mesure de performance P , on dit qu’un programme informatique apprend à partir d’une
expérience E si les résultats obtenus sur T , mesurés par P , s’améliorent avec l’expérience E . »
En projetant cette définition sur un filtre anti-spam, on remarque que ce dernier est un pro-
gramme d’apprentissage automatique. En effet, la tâche T représente la classification des
e-mails. La performance P peut être une métrique, comme le pourcentage des e-mails correc-
tement classés, et l’expérience E représente les messages à classer. Si, lors de l’entraînement
du filtre anti-spam, la performance P s’améliore (ou se dégrade) au fil des expériences E (au
fil du tri des messages), on parle d’un programme d’apprentissage automatique.

3. Quelles sont les différentes étapes d’un projet


d’apprentissage automatique ?

Compréhension de la problématique et du but à atteindre


Dans un premier temps, le spécialiste en charge du projet doit comprendre le besoin et iden-
tifier pourquoi on veut lancer un tel projet :
• Pourquoi a-t-on besoin d’un tel système ?
• Quel gain espère-t-on en tirer (ex. augmenter le chiffre d’affaires par des recommanda-
tions de produits, détecter des fraudes) ?
• Comment ce système va-t-il s’articuler et coexister avec les composants et logiciels exis-
tants dans l’entreprise ?
• Comment les données produites par ce système seront-elles utilisées ? Serviront-elles
comme entrées pour d’autres systèmes ? Seront-elles utilisées directement par des ana-
lystes humains ?
La réponse à ces questions requiert une collaboration avec plusieurs intervenants (générale-
ment des experts du métier) et définira assez clairement le périmètre de travail et les attentes
que l’on a de ce système.

Collecte et acquisition de données


Pour qu’un algorithme d’apprentissage automatique produise des modèles pertinents, il est
primordial d’acquérir des données de qualité, à jour, en quantité suffisante et représentatives
du problème à modéliser.
La collecte des données implique souvent de rechercher dans plusieurs sources, aussi bien
internes à l’entreprise qu’externes : bases de données, tendances de réseaux sociaux, etc.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 7 Monday, August 24, 2020 8:17 AM

Questions généralistes
7
CHAPITRE 1

Collecter des données peut engendrer des complications juridiques. Ainsi, il faut veiller à ce
que les données ne soient pas privées, qu’elles soient anonymisées et qu’il soit légal d’y
accéder.

Exploration et compréhension des données


Lors de cette phase, le spécialiste va se familiariser avec les données qu’il a récupérées :
• comprendre le schéma des données et les types manipulés ;
• explorer les propriétés statistiques de ce jeu de données (moyenne, mode, variance, écarts-
types, centiles, quartiles) ;
• déterminer le pourcentage de données incomplètes ;
• identifier les données aberrantes ;
• explorer les liens entre les données, notamment par des matrices de corrélation
(ex. Pearson) ;
• visualiser les données pour détecter d’autres corrélations et propriétés.

Découper le jeu de données en jeu d’entraînement et jeu de test


Les phases précédentes ne constituent qu’une exploration légère des données et non leur
compréhension complète. En procédant ainsi, on s’empêche de trouver des corrélations sans
importance. Explorer profondément un jeu de données avant de le découper en jeux d’entraî-
nement et de test risque de conduire à une compréhension biaisée.
Le découpage se fait généralement avec les proportions suivantes :
• 80 % des données pour le jeu d’entraînement ;
• 20 % pour le jeu de test.

Préparation des données


Il est nécessaire de préparer les données de sorte qu’elles soient utilisables par les algorithmes
d’apprentissage automatique :
• Gestion des données manquantes :
– les remplacer par des valeurs proposées par un expert métier ;
– ou les remplacer par une valeur (ex. moyenne, médiane, mode), lorsqu’on n’a pas accès
à une expertise métier ou qu’on ne peut pas déterminer une valeur précise ;
– ou les supprimer (en dernier recours, car on perd une partie du jeu de données).
• Encodage des valeurs non numériques (catégories, réponses oui/non) en valeurs numé-
riques (ex. statut marital : 1– célibataire, 2– marié, 3– divorcé).
• Mise à l’échelle des variables (feature scaling) par les techniques de normalisation et/ou de
standardisation.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 8 Monday, August 24, 2020 8:17 AM

Partie théorique
8
PREMIÈRE PARTIE

Une fois ces étapes réalisées, on peut disposer d’un jeu de données préparé pour un algo-
rithme d’apprentissage automatique.

Modélisation du système prédictif


Au cours de cette étape, il est possible d’utiliser plusieurs algorithmes d’apprentissage auto-
matique pour construire de nombreux modèles et déterminer lequel fournit les meilleurs
résultats.

Note
Les étapes de modélisation et d’évaluation du modèle sont souvent un processus itératif. On recherche
un modèle, on l’évalue et on l’affine éventuellement en optimisant les hyperparamètres d’apprentissage.

Évaluation du modèle
Évaluer un modèle implique de choisir une métrique de performance, en fonction du type de
problème qu’on traite (classification, régression).
Certaines métriques seront plus ou moins adaptées en fonction des données manipulées :
pour la régression par exemple, l’écart quadratique moyen (Root Mean Square Error – RMSE)
est plus sensible que l’erreur absolue moyenne (Mean Absolute Error – MAE) lorsqu’il y a des
valeurs aberrantes.
Il est nécessaire de garder la même métrique tout au long du processus d’évaluation pour
pouvoir comparer objectivement deux modèles.

Déploiement de modèle
Lors de la mise en production du modèle, il faut s’assurer que les prédictions effectuées
restent pertinentes. Cela est propre au problème qu’on traite. Par exemple, un système de
prédiction des prix de l’immobilier sera moins sujet à une obsolescence rapide (car les prix de
l’immobilier ne changent pas rapidement) qu’un modèle estimant la valeur d’une action en
bourse (qui doit être mis à jour plus fréquemment).
Quel que soit le problème traité, il faut une politique de surveillance, de mise à jour du
modèle et de reprise si les performances venaient à se dégrader.

4. Qu’est-ce que l’apprentissage supervisé ?


L’apprentissage supervisé est une forme d’apprentissage automatique où l’on fournit à l’algo-
rithme un ensemble d’observations décrites par des variables explicatives ainsi que la variable
cible (la réponse/l’étiquette). L’algorithme d’apprentissage supervisé va approcher une fonc-
tion de prédiction qui permet un mapping depuis les données des observations vers la réponse.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 9 Monday, August 24, 2020 8:17 AM

Questions généralistes
9
CHAPITRE 1

L’analogie de supervision vient du fait qu’on donne la bonne réponse à l’algorithme, qui s’en
sert pour son apprentissage.
Figure 1–1
Étapes de construction
d’un système prédictif.

La figure 1–1 illustre un exemple d’apprentissage supervisé. On fournit en entrée des images
avec leurs étiquettes (chien ou chat). L’algorithme apprend par lui-même les éléments distin-
guant un chien d’un chat. À l’issue de cet apprentissage, on lui donne en entrée une nouvelle
image et il nous indique de quel type d’animal il s’agit.

5. Qu’est-ce que l’apprentissage non supervisé ?


L’apprentissage non supervisé (unsupervised learning) correspond au cas où les observations
du jeu de données ne sont pas étiquetées (elles ne disposent pas de leurs variables de sortie).
L’algorithme est livré à lui-même et va apprendre les structures et les relations caractérisant le
jeu de données.
Figure 1–2
Fonctionnement général d’un
algorithme de partitionnement.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 10 Monday, August 24, 2020 8:17 AM

Partie théorique
10
PREMIÈRE PARTIE

L’apprentissage non supervisé peut être subdivisé en deux catégories :


• partitionnement (clustering) : regrouper les items par ressemblance – en se servant d’une
mesure de similarité ;
• association : trouver des règles qui décrivent une large portion de données (ex. ceux qui
ont acheté X ont tendance à acheter Y ).

6. Qu’est-ce que l’apprentissage semi-supervisé ?


Dans certains jeux, les données sont partiellement étiquetées : certaines observations dis-
posent d’étiquettes et d’autres non. Généralement, la proportion de ces dernières est beau-
coup plus grande. Ce cas est fréquent ; en effet, le processus d’étiquetage requiert une exper-
tise humaine et peut être long et coûteux.
Ces algorithmes d’apprentissage tirent profit de ces jeux de données en combinant les
approches supervisée et non supervisée. Dans un premier temps, ils étiquettent les données
qui ne le sont pas et utilisent ensuite la totalité des données avec un algorithme supervisé (de
classification, par exemple). Des chercheurs ont démontré que cette approche peut fournir
des modèles avec une meilleure exactitude (accuracy) que ceux basés sur une approche exclusi-
vement supervisée.
Lors de l’apprentissage semi-supervisé (semi-supervised learning), des hypothèses peuvent être
considérées. Parmi elles, il y a la supposition de finesse (smoothness assumption) : les données
non étiquetées qui sont proches d’une donnée étiquetée ont tendance à avoir la même éti-
quette. En utilisant un algorithme de partitionnement (non supervisé), on peut former des
groupes où les observations reçoivent itérativement une étiquette. À l’issue de cette étape de
pseudo-étiquetage, tout le jeu de données est étiqueté.
Figure 1–3
Jeu de données semi-étiqueté.

La figure 1–3 présente un exemple où seuls deux points du jeu de données sont étiquetés, l’un
noir et l’autre blanc. Les autres points sont alors étiquetés itérativement (figure 1–4).
Lorsque toutes les données sont étiquetées, on peut appliquer un algorithme supervisé
(notamment de classification) pour produire un modèle prédictif final.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 11 Monday, August 24, 2020 8:17 AM

Questions généralistes
11
CHAPITRE 1

Figure 1–4
Processus d’étiquetage des
points gris.

Un exemple d’utilisation de ces algorithmes est la classification d’images par des services de
stockage en ligne, comme Google Photos TM ou encore l’application Photos TM d’Apple. Quand
on charge des photos de famille sur un de ces services, ces derniers sont capables de reconnaître
et de regrouper les images contenant le visage d’une personne donnée (apprentissage non
supervisé avec partitionnement). Ensuite, il suffit de dire au service qui est cette personne (éti-
quetage) pour qu’il étiquette toutes les photos la représentant (apprentissage supervisé).

7. Qu’est-ce que l’apprentissage par renforcement ?


En apprentissage par renforcement (reinforcement learning), le système apprenant (appelé
agent) évolue dans un environnement. L’agent effectue des actions et reçoit des récompenses
(ou pénalités) selon les cas. Les actions peuvent avoir un poids de récompense différent.
L’agent va apprendre une stratégie (politique) qui maximise sa récompense dans une situation
donnée. L’ensemble de décisions que l’agent choisit dans les différentes situations représente
son apprentissage (ou le modèle d’apprentissage).
Le système AlphaGO de DeepMind est un exemple de système d’apprentissage par renforce-
ment.

8. Qu’est-ce qu’une régression ?


Le terme régression désigne un ensemble de techniques trouvant leurs racines dans les statis-
tiques et qui servent à analyser une variable par rapport à une ou plusieurs autres.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 12 Monday, August 24, 2020 8:17 AM

Partie théorique
12
PREMIÈRE PARTIE

L’apprentissage automatique a repris ces techniques et les a formalisées dans des algorithmes,
notamment les régressions linéaires univariée et multivariée.
Les modèles de régression (hors régression logistique) fournissent des prédictions de valeurs
continues (comme le prix d’une action) et non des valeurs discrètes (spam ou e-mail).
Parmi les algorithmes de régression, on retrouve :
• régression linéaire ou polynomiale, univariée ou multivariée ;
• arbres de décision (decisions trees) ;
• K plus proches voisins (K Nearest Neighbors – K-NN).

Note
Les arbres de décision et K-NN servent aussi bien pour la classification que pour la régression.

9. Qu’est-ce qu’une classification ?


Il s’agit d’un type d’apprentissage supervisé qui consiste à produire des modèles prédictifs de
classification.
Un modèle prend en entrée une observation caractérisée par un ensemble de variables expli-
catives et produit en sortie la classe (valeur discrète) à laquelle appartient l’observation.
Un filtre anti-spam est un exemple d’algorithme de classification.
Parmi ces algorithmes, citons les suivants :
• régression logistique ;
• arbres de décision ;
• K plus proches voisins (K Nearest Neighbors – K-NN) ;
• machines à vecteurs de support ou séparateurs à vaste marge (SVM) ;
• forêts aléatoires (random forest).

Note
Les arbres de décisions et K-NN servent aussi bien pour la classification que la régression.

10. Quels sont les trois principaux algorithmes


de régression ?
• Régression linéaire
Plusieurs variantes sont disponibles : régression linéaire univariée, régression multivariée,
régression polynomiale.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 13 Monday, August 24, 2020 8:17 AM

Questions généralistes
13
CHAPITRE 1

• K plus proches voisins (K Nearest Neighbors – K-NN)


Cet algorithme sert aussi bien dans des tâches de classification que de régression. Dans
cette dernière, la prédiction s’appuie sur la moyenne ou la médiane des observations
voisines de celle qu’on cherche à prédire.
• Forêt aléatoire (random forest)
C’est un algorithme d’apprentissage supervisé. La prédiction est calculée à partir d’un
ensemble aléatoire d’arbres de décision (ensemble learning), entraînés la plupart du temps
avec la méthode de bagging, ce qui augmente souvent les performances du modèle obtenu.
Le bagging consiste à entraîner plusieurs modèles (des arbres de décisions en l’occurrence)
sur des sous-ensembles aléatoires de caractéristiques du jeu de données.

11. Quels sont les trois principaux algorithmes


de classification ?
• K plus proches voisins (K Nearest Neighbors – K-NN)
Il classe une nouvelle observation en fonction de ses K voisins. La prédiction calcule les
distances entre cette observation et les autres données, puis retient les K plus petites.
L’étiquette prédite est celle de la majorité des K voisins sélectionnés.
• Régression logistique
Il s’agit d’un algorithme de classification binaire (deux classes possibles). Le résultat
obtenu est la probabilité d’appartenir à la classe positive. L’algorithme One-versus-all est
une variante qui permet de faire des classifications multiples.
• Séparateur à vaste marge (Support Vector Machine – SVM – ou Large Margin Classifier)
Il établit des classifications binaires et multiclasses. Sa particularité est qu’il essaie de
maximiser les marges entre les différentes classes, tout en créant un hyperplan. Maximiser
les marges entre les classes revient à augmenter la capacité du modèle obtenu à se généra-
liser et, par conséquent, à être plus robuste.

12. Quels sont les quatre algorithmes qui font aussi


bien la classification que la régression ?
• K plus proches voisins ;
• arbres de décision ;
• séparateurs à vaste marge ;
• forêts aléatoires.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 14 Monday, August 24, 2020 8:17 AM

Partie théorique
14
PREMIÈRE PARTIE

13. Qu’est-ce que le partitionnement ?


Le partitionnement (clustering) est une technique d’apprentissage non supervisée visant à
regrouper les items d’un jeu de données en fonction d’un critère de ressemblance. Les groupes
à former (clusters) ne sont pas connus à l’avance.
Le partitionnement hiérarchique vise à répartir les données de façon arborescente. Les élé-
ments les plus bas de l’arbre (ou dendrogramme) se ressemblent fortement, au contraire des
éléments plus hauts dans la hiérarchie.
Figure 1–5
Dendrogramme représentant
un partitionnement hiérarchique
d’animaux.

Le partitionnement non hiérarchique vise également à construire des groupes. Toutefois,


dans cette situation, on connaît à l’avance le nombre de catégories à constituer.
Le partitionnement est utile pour l’analyse de données, la segmentation de clients, le système
de recommandations…
Parmi les algorithmes de partitionnement, citons les suivants :
• K moyennes (K-Means) ;
• partitionnement hiérarchique ;
• DBSCAN (Density-Based Spatial Clustering of Applications with Noise).

14. Qu’est-ce que l’apprentissage hors ligne ?


L’apprentissage hors ligne ou « en batch » (offline learning ou batch learning) est un modèle qui
produit un modèle prédictif en utilisant toutes les données (et non pas de façon incrémen-
G67951-Les data sciences en 100 questions réponses-INT-.book Page 15 Monday, August 24, 2020 8:17 AM

Questions généralistes
15
CHAPITRE 1

tale). De ce fait, l’apprentissage prend souvent un temps considérable ; c’est pour cela qu’il se
fait en mode hors ligne.
Ce mode est adapté lorsque les données ne changent pas rapidement et qu’on dispose de
grandes ressources physiques (cluster Hadoop, par exemple).
L’inconvénient est qu’on ne peut utiliser le modèle prédictif qu’à l’issue de l’entraînement et
qu’il ne sait pas s’adapter à de nouvelles données provenant par exemple d’un flux continu.
Pour prendre en compte ces dernières, il faut entraîner un nouveau modèle.

15. Qu’est-ce que l’apprentissage incrémental ?


Lors de l’apprentissage incrémental (ou apprentissage en ligne), on fournit les données à
l’algorithme au fur et à mesure, de façon séquentielle, unité par unité ou bien sous forme de
petits lots (mini-batchs). L’algorithme d’apprentissage adapte le modèle prédictif à la volée
sans nécessiter de redéploiement. Il est à noter qu’une fois le jeu de données utilisé pour
l’entraînement, on peut s’en débarrasser.
L’apprentissage en ligne est adapté dans le cas où le modèle prédictif doit s’adapter rapide-
ment aux flux continus de données (comme le prix des actions en bourse) et également
lorsque les ressources de calcul sont limitées (stockage, bande passante et puissance de calcul).
L’une des limitations de ce mode est qu’il faut le surveiller continuellement. En effet, si les
données fournies en continu deviennent de mauvaise qualité et non représentatives, le modèle
s’adapte et sa qualité se dégrade. Il est donc important de surveiller continuellement les don-
nées entrant dans l’algorithme d’apprentissage et les performances du modèle.

16. Quel est le message véhiculé par l’expression


« no free lunch » ?
No free lunch statue qu’aucun modèle ou algorithme d’apprentissage automatique ne fonction-
nera bien pour tous les problèmes. En substance, si un algorithme fonctionne bien pour un
problème donné, il aura des performances moindres dans les autres.
Intuitivement, cela est compréhensible. Les algorithmes partent d’hypothèses de simplifica-
tion pour calculer un modèle prédictif. Ces hypothèses sont certainement cohérentes pour un
problème, mais pas pour un autre.
Ainsi, en fonction du problème qu’on résout, il convient de tester plusieurs algorithmes
d’apprentissage avec différentes hypothèses et de retenir celui qui convient le mieux à la situa-
tion.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 16 Monday, August 24, 2020 8:17 AM

Partie théorique
16
PREMIÈRE PARTIE

17. Comment fonctionne un réseau de neurones


artificiels ?
Un réseau de neurones est une structure de calcul inspirée du fonctionnement d’un cerveau
biologique. Il comporte un ensemble de nœuds interconnectés, qui s’activent en fonction des
entrées reçues. L’activation d’un nœud consiste à appliquer une fonction comme Softmax,
Sigmoïde, Relu, etc.
Les réseaux de neurones, en fonction de leur architecture, servent aussi bien pour la régres-
sion que pour la classification.
Figure 1–6
Architecture d’un réseau
de neurones.

Selon l’architecture du réseau, on obtient des spécialisations différentes. C’est la porte


d’entrée pour l’apprentissage profond (deep learning).

18. Qu’est-ce qu’un algorithme paramétrique ?


Un algorithme prédictif est dit paramétrique quand le nombre de paramètres/coefficients du
modèle qu’il produit reste inchangé, quelle que soit la taille du jeu de données.
Les modèles produits par les algorithmes paramétriques ont une structure connue à l’avance.
À titre d’exemple, la régression linéaire univariée est un algorithme d’apprentissage paramé-
trique. Peu importe les données utilisées en apprentissage, le modèle (la fonction de prédic-
tion) a toujours la forme suivante :
F (x ) = A ⋅ x + B
A et B sont les coefficients du modèle et chaque changement de leur valeur donne un nou-
veau modèle de régression.
Quand on souhaite utiliser un algorithme paramétrique, il faut s’assurer que la fonction qu’il
produira convient à la forme des données. Dans le cas contraire, on risque de se retrouver
dans la situation de sous-ajustement (underfitting).
G67951-Les data sciences en 100 questions réponses-INT-.book Page 17 Monday, August 24, 2020 8:17 AM

Questions généralistes
17
CHAPITRE 1

19. Qu’est-ce qu’un algorithme non paramétrique ?


Un algorithme non paramétrique ne se contraint pas à une forme de fonction de prédiction
prédéfinie. Ainsi, les paramètres du modèle et leur nombre sont appris lors de la phase
d’apprentissage.
Ces algorithmes ne font pas de fortes suppositions sur les données. Ils s’adaptent à ces der-
nières et fournissent une fonction de prédiction adéquate pour le jeu d’apprentissage. Cette
adaptabilité est à double tranchant car ces algorithmes sont plus sujets au surajustement
(overfitting).
Un exemple d’algorithme d’apprentissage non paramétrique est celui des K plus proches voi-
sins (K-NN). Il calcule ses prédictions en fonction des K éléments similaires. Aucune fonc-
tion de prédiction n’est apprise ou utilisée par le K-NN. L’algorithme Naïve Bayes et les SVM
sont aussi des exemples d’algorithmes non paramétriques.

20. Quelle est la différence entre modèle linéaire


et non linéaire ?
Un modèle est dit linéaire lorsqu’il effectue des prédictions en se basant sur une fonction
linéaire. Il prend alors la forme suivante :
F(x1, x2, … , xn) = θ0 + θ1x1 + θ2x2 + … + θn xn
• Les θi sont les coefficients du modèle linéaire.
• Les xi sont les variables explicatives utilisées pour la prédiction.
Ainsi, chaque terme de la fonction est soit une constante (θ0), soit une multiplication d’une
variable explicative xi par un paramètre θi du modèle.
À l’inverse, la fonction de prédiction d’un modèle non linéaire comporte au moins un terme
non linéaire sur un coefficient θi . En voici un exemple :
F(x1, x2, … , xn) = θ0 + cos (θ1x1) + exp(θ2x2) + … + θn xn

21. Qu’est-ce qu’un hyperparamètre d’un algorithme


d’apprentissage automatique ?
Un hyperparamètre est un paramètre d’un algorithme d’apprentissage et ne doit pas être
confondu avec les coefficients du modèle prédictif. Sa valeur ne peut être apprise depuis les
données d’entraînements.
Généralement, la valeur d’un hyperparamètre est fixée avant la phase d’apprentissage et reste
constante durant cette phase.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 18 Monday, August 24, 2020 8:17 AM

Partie théorique
18
PREMIÈRE PARTIE

Les hyperparamètres sont généralement utiles quand on adapte/optimise les modèles prédic-
tifs, notamment pour contrôler la vitesse d’apprentissage ou la complexité du modèle appris.
En voici quelques exemples :
• nombre de groupes à trouver pour l’algorithme des K-moyennes ;
• nombre de voisins à utiliser pour une prédiction avec l’algorithme K-NN ;
• nombre d’arbres de décision utilisés pour l’algorithme de forêt aléatoire (random forest) ;
• taux d’apprentissage pour l’algorithme de descente de gradient.

22. Qu’est-ce que le surajustement ?


Le surajustement (overfitting) est la situation où un algorithme apprend et s’adapte très bien
aux données d’apprentissage, mais se généralise mal sur de nouvelles données (mauvaises pré-
dictions sur des observations autres que le jeu d’entraînement).
Les algorithmes non paramétriques et non linéaires (K-NN, forêts aléatoires) sont plus sujets au
surajustement. Pour l’éviter, on utilise des hyperparamètres de l’algorithme d’apprentissage.

23. Qu’est-ce que le sous-ajustement ?


Le sous-ajustement (underfitting) est l’incapacité d’un modèle à représenter suffisamment
bien un phénomène depuis les données d’apprentissage. Le modèle obtenu ne fournit pas de
bons résultats sur les données d’entraînement et ne se généralise pas bien sur de nouvelles
données (notamment celles du jeu de test).
Le sous-ajustement peut être détecté en remarquant les faibles performances du modèle sur
les données d’entraînement.

24. Quelles sont les différentes techniques pour éviter


le surajustement ?
Pour réduire le surajustement, plusieurs pistes sont possibles :
• utiliser les techniques d’échantillonnage pour mieux prédire les performances du modèle
(K-Fold Cross Validation) ;
• réduire le nombre de caractéristiques du jeu de données et ne garder que celles affectant
fortement la prédiction ;
• utiliser les techniques de régularisation.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 19 Monday, August 24, 2020 8:17 AM

Questions généralistes
19
CHAPITRE 1

25. Quelles sont les différentes techniques pour éviter


le sous-ajustement ?
Pour éviter le sous-ajustement, plusieurs pistes sont possibles :
• choisir un modèle prédictif plus performant, notamment un algorithme non paramétrique
(en effet, il est possible que l’algorithme utilisé souffre d’un fort biais) ;
• augmenter la taille du jeu de données d’apprentissage ;
• augmenter le nombre de caractéristiques du jeu de données ;
• si on a appliqué une régularisation au modèle, réduire la pénalité de cette dernière pour
réduire le biais.

26. Qu’est-ce que le compromis biais/variance ?


Au sens large, l’analyse prédictive vise à représenter un phénomène par un modèle prédictif
simplifié et explicatif. Pour y parvenir, un certain nombre de suppositions peuvent être for-
mulées à l’égard du phénomène modélisé.
Le biais (bias) est le fait de formuler des suppositions et les appliquer sur un modèle prédictif.
Par exemple, on peut supposer une relation linéaire entre deux variables X et Y ; cette hypo-
thèse est un biais. Pour un pouvoir prédictif optimal, il ne faut pas avoir un fort biais, au
risque de tomber dans le sous-ajustement. Par exemple, imaginons un jeu de données répon-
dant à une forme quadratique et qu’on applique une régression linéaire (algorithme à fort
biais) ; l’algorithme de régression fournira un modèle prédictif peu performant et en sous-
ajustement.
Figure 1–7
Exemple d’un modèle
en sous-ajustement.

La variance reflète la sensibilité du modèle face à un changement dans les données d’entraî-
nement. Un modèle avec une forte variance est bien adapté aux données d’entraînement mais
se généralise difficilement (varie beaucoup) à des données nouvelles.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 20 Monday, August 24, 2020 8:17 AM

Partie théorique
20
PREMIÈRE PARTIE

Figure 1–8
Exemple d’un modèle
en surajustement.

Un bon modèle prédictif résulte donc d’un compromis entre une bonne capacité à apprendre
les relations entre les données (faible biais) et une bonne capacité de généralisation sur des
données nouvelles (faible variance).
Le compromis dépend, entre autres, de l’algorithme d’apprentissage choisi et de l’optimisa-
tion de ses hyperparamètres. Nous pouvons avoir aussi recours aux techniques de régularisa-
tion pour réduire la variance.

27. Qu’est-ce que le fléau de la dimension ?


Le fléau de la dimension (curse of dimensionality) est un phénomène qui se produit lorsqu’on
se retrouve avec un grand nombre de caractéristiques dans le jeu de données par rapport à la
taille de ce dernier.
En apprentissage automatique, chaque variable d’un jeu de données est considérée comme
une dimension. Ainsi, pour un jeu de données avec N caractéristiques, on se retrouve avec un
espace de N dimensions. Plus le nombre de dimensions augmente, plus la « distance » entre
les points est grande.
La conséquence de cet éloignement est que certains algorithmes peinent à inférer des rela-
tions entre les données et, par conséquent, échouent à trouver un modèle optimal. C’est le
phénomène du fléau de la dimension.
Pour surmonter cela, il faut soit augmenter la taille du jeu de données (trouver plus d’observa-
tions pour peupler ce grand espace à dimension N ), soit réduire la taille de l’espace en ayant
recours à des techniques comme l’analyse en composantes principales (ACP).

28. Comment et pourquoi réduire la dimension d’un jeu


de données ?
La réduction de données ou réduction de la dimensionnalité consiste à diminuer l’ensemble
de données tout en gardant les mêmes (ou presque) résultats d’apprentissage. Cette action
peut être réalisée selon trois stratégies :
G67951-Les data sciences en 100 questions réponses-INT-.book Page 21 Monday, August 24, 2020 8:17 AM

Questions généralistes
21
CHAPITRE 1

• réduire le nombre d’attributs :


– agrégation de cubes de données, qui consiste en des opérations de roll-up (visualisation
de données avec moins de détails), pivotement (sélectionne une dimension précise dans
un cube et fournit un nouveau sous-cube) et découpage (sélectionne deux ou plusieurs
dimensions d’un cube et forme un nouveau sous-cube) ;
– suppression des attributs inappropriés en utilisant des méthodes de filtrage et
d’emballage ;
– analyse des composantes principales, qui consiste à rechercher un espace plus petit
représentant mieux les données ;
• réduire le nombre de valeurs :
– par binning, qui consiste à regrouper les attributs dans des intervalles ;
– par partitionnement (clustering), qui sert à diviser un ensemble de données en diffé-
rents groupes homogènes ;
• réduire le nombre de tuples (échantillonnage).

29. Quand faut-il utiliser la réduction de dimension ?


Souvent, les données utilisées pour entraîner les systèmes d’apprentissage comportent un
nombre important de caractéristiques. Certaines d’entre elles ont un fort impact dans la pré-
diction mais d’autres beaucoup moins, qui risquent d’apporter plus de bruit que d’informa-
tion utile.
Voici quelques conséquences d’un grand nombre de caractéristiques dans un jeu de données :
• lenteur des algorithmes d’apprentissage automatique ;
• risque d’obtenir des solutions non optimales, notamment surajustées ;
• impossibilité d’utiliser les techniques de visualisation pour mieux comprendre les données.
Les techniques de réduction de dimension aident à répondre à ce genre de problématiques.
Elles effectuent des compressions de données (en combinant des caractéristiques dans une
nouvelle caractéristique agrégée). En résulte alors une perte d’information, mais qui est sou-
vent acceptable dans la pratique.
L’utilisation de la réduction de dimension peut être envisagée quand on souhaite :
• réduire l’espace nécessaire pour le stockage (sur disque et mémoire vive) du jeu de
données ;
• accélérer le processus d’apprentissage automatique ;
• éviter le surajustement ;
• visualiser les données dans un espace à deux ou trois dimensions.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 22 Monday, August 24, 2020 8:17 AM

Partie théorique
22
PREMIÈRE PARTIE

30. En apprentissage automatique, qu’est-ce que


la régularisation ?
La régularisation est une technique qui vise à réduire le surajustement d’un modèle prédictif
en ajoutant des contraintes lors de l’apprentissage. Le but est de réduire la variance du modèle
pour jouir d’une meilleure capacité de généralisation.
La contrainte introduite par la régularisation est une fonction de pénalité qui va réduire la
magnitude des paramètres appris par le modèle. La fonction de pénalité a pour but de rétrécir
l’espace des valeurs que peuvent prendre les paramètres du modèle et de garder leurs valeurs
petites.
En pratique, de petites valeurs de paramètres rendent le modèle plus généralisable avec une
fonction plus lissée (faible variance).

31. Quels sont les différents types de partitionnement ?


• Partitionnement hiérarchique
Il vise à produire des groupes hiérarchisés. Ces derniers s’emboîtent les uns dans les
autres. L’arborescence construite ainsi s’appelle un dendrogramme.
Figure 1–9
Exemple d’un dendrogramme par
construction en partitionnement
hiérarchique.

La figure 1–9 montre un exemple de partitionnement hiérarchique de certains animaux


en fonction de leurs caractéristiques. On remarque que les groupes les plus bas (ceux qui
sont proches des images) sont les plus spécifiques et précis. Par exemple, la catégorie tout
à gauche regroupe deux chiens identiques. Le troisième chien (en partant de la gauche) a
G67951-Les data sciences en 100 questions réponses-INT-.book Page 23 Monday, August 24, 2020 8:17 AM

Questions généralistes
23
CHAPITRE 1

une couleur proche de celle des deux premiers ; c’est pour cela qu’ils se regroupent au
deuxième niveau. Le groupe le plus haut (à la racine du dendrogramme) est donc le plus
généraliste et regroupe tous les animaux.
Il existe deux familles d’algorithmes de partitionnement hiérarchique :
– les algorithmes agglomératifs construisent le dendrogramme du bas (depuis les feuilles)
vers le haut (sommet de l’arbre) ;
– les algorithmes divisifs construisent le dendrogramme dans le sens inverse.
• Partitionnement non hiérarchique
On fixe à l’avance le nombre de groupes souhaité. L’algorithme des K moyennes est le
plus connu en partitionnement non hiérarchique ; sa particularité est qu’un item appar-
tient exclusivement à un seul groupe.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 24 Monday, August 24, 2020 8:17 AM
G67951-Les data sciences en 100 questions réponses-INT-.book Page 25 Monday, August 24, 2020 8:17 AM

2
Vue d’ensemble des algorithmes

32. Qu’est-ce que la descente de gradient ?


La descente du gradient (gradient descent) est un algorithme d’optimisation usité pour trouver
les coefficients qui minimisent une fonction de coût. Il s’agit d’un algorithme itératif qui
opère par améliorations successives.
Son principe général consiste à calculer la dérivée partielle d’une fonction en un point donné
et à effectuer un « déplacement » dans la direction opposée au gradient. En opérant de la
sorte, on finit par trouver le minimum global de la fonction (si elle est convexe), sinon éven-
tuellement un minimum local.
Cet algorithme est utilisé en apprentissage automatique pour minimiser la fonction de coût
d’un algorithme et trouver les meilleurs coefficients du modèle prédictif en fonction des don-
nées d’apprentissage.

33. Qu’est-ce que la régression logistique ?


La régression logistique (logistic regression) est un algorithme de classification binaire. Il uti-
lise une fonction sigmoïde pour prédire la probabilité d’appartenance à une classe. Les pré-
dictions qui ont une probabilité supérieure à 0,5 appartiennent à la classe positive et les autres
à la classe négative.
La fonction hypothèse de l’algorithme de régression logistique est définie comme suit :
1
h(x1, … , xn ) =
1 + e −(θ 0 +θ1x1+…+θnxn)
G67951-Les data sciences en 100 questions réponses-INT-.book Page 26 Monday, August 24, 2020 8:17 AM

Partie théorique
26
PREMIÈRE PARTIE

La décision est prise comme suit :


⎧ classe 1, si h(x ) ≥ 0,5
h(x1, … , xn) = ⎨
⎩ classe 0, sinon
Figure 2–1
Tracé de la fonction logistique.

L’algorithme Un-contre-tous (One-versus-all ou One-versus-rest) est une variante de la


régression logistique qui permet de faire des classifications multiclasses.
Figure 2–2
Fonctionnement de l’algorithme
Un-contre-tous pour une
classification multiclasse.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 27 Monday, August 24, 2020 8:17 AM

Vue d’ensemble des algorithmes


27
CHAPITRE 2

Dans ce cas, on entraîne plusieurs modèles de régression logistique, chacun visant à recon-
naître une classe comme la classe positive et le reste (toutes les autres classes confondues),
comme la classe négative. Par la suite, on effectue la prédiction sur les différents modèles
obtenus. La prédiction finale de l’algorithme est celle du modèle de régression logistique
ayant donné la plus forte probabilité.

34. Qu’est-ce que l’algorithme ADL ?


L’analyse discriminante linéaire ou ADL (Linear Discriminant Analysis – LDA) est une
méthode de classification probabiliste. Elle trouve la meilleure combinaison linéaire possible
des caractéristiques qui séparent les classes, ce qui sert ensuite comme classifieur linéaire ou
dans la réduction de caractéristiques.
L’ADL est connue pour maximiser l’éparpillement interclasse (between class scatter) et mini-
miser l’éparpillement intraclasse (within class scatter).

35. Qu’est-ce que la régression Ridge ?


Ridge est une régression linéaire multivariée régularisée. La fonction de coût, qu’on cherche à
minimiser, comporte un terme de pénalité.
Dans une régression linéaire multivariée classique, la fonction de coût J s’écrit comme suit :
1 2
J(θ) = (
∑m h(x i) − yi
2m i = 0
)
La fonction de coût pour une régression Ridge utilise une fonction de pénalité basée sur la
norme l 2 (distance euclidienne) :
1 2
J(θ) =
2m
∑m
i = 0 ( )
h(x i) − yi + λ ∑j = 1 θ2j

Le paramètre λ sert comme levier pour augmenter ou réduire l’effet de pénalisation des para-
mètres. Plus forte est la valeur de la pénalité et plus petites seront les valeurs des paramètres
du modèle.
Par conséquent, en augmentant la valeur de λ, on réduit la variance et on augmente le biais.

36. Qu’est-ce que la régression LASSO ?


LASSO (Least Absolute Shrinkage and Selection Operator) est une régression linéaire multiva-
riée régularisée. La fonction de coût, qu’on cherche à minimiser, comporte un terme de péna-
lité basé sur la norme l1 (distance de Manhattan) :
1 2
J(θ) =
2m
∑m
i = 0 ( )
h(x i) − yi + λ ∑nj = 1 θj
G67951-Les data sciences en 100 questions réponses-INT-.book Page 28 Monday, August 24, 2020 8:17 AM

Partie théorique
28
PREMIÈRE PARTIE

Le paramètre λ sert comme levier pour augmenter ou réduire l’effet de pénalisation des para-
mètres. Plus forte est la valeur de la pénalité et plus petites seront les valeurs des paramètres
du modèle.
Il est à noter que la pénalité LASSO a la particularité de pouvoir sélectionner un sous-
ensemble de variables, en fixant certains coefficients à zéro. Cela a pour conséquence de sim-
plifier davantage le modèle. À titre de comparaison, la méthode Ridge ne fait que réduire la
magnitude des paramètres, mais sans les annuler.

37. Qu’est-ce que la régression ElasticNet ?


ElasticNet est une régression linéaire multivariée régularisée. La fonction de coût, qu’on
cherche à minimiser, comporte un terme de pénalité.
Elle tire avantage des propriétés des régressions Ridge et LASSO.
En pratique, Ridge donne de meilleurs résultats que LASSO lorsque les variables sont corré-
lées (ce qui est souvent le cas). Cependant, LASSO a la capacité d’annuler les coefficients de
certaines variables et, par conséquent, de simplifier le modèle.
La fonction de coût de la régression ElasticNet s’écrit comme suit :
2
h(x i) − yi + λ ∑nj = 1⎡ (1 − α)θ2j + α θj ⎤
1 1
J(θ) =
2m
∑m
i = 0 ( ) ⎢
⎣2 ⎥⎦
• λ est le facteur de régularisation (l’intensité de régularisation).
• α est un paramètre compris entre 0 et 1, qui sert à définir un équilibre entre les méthodes
LASSO (α = 1) et Ridge (α = 0).
En jouant sur la valeur du paramètre, on peut opter pour un comportement proche de l’une
ou l’autre régularisation.

38. Qu’est-ce que l’algorithme des K plus proches


voisins ?
K -NN (K plus proches voisins) est un algorithme d’apprentissage supervisé utilisé aussi bien
pour la classification que la régression.
Cet algorithme ne nécessite pas de phase d’apprentissage car il ne cherche aucune fonction de
prédiction.
Son fonctionnement repose sur la sélection, depuis un jeu d’entraînement D, des K voisins
les plus proches de l’observation dont on souhaite prédire l’étiquette. Dans le cas d’une classi-
fication, l’étiquette prédite est celle qui survient le plus souvent chez les K voisins.
Pour fonctionner, l’algorithme a besoin de mesurer les distances entre les différentes observa-
tions (vecteurs) du jeu de données. Plusieurs distances sont possibles : euclidienne, de Man-
hattan, de Jaccard.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 29 Monday, August 24, 2020 8:17 AM

Vue d’ensemble des algorithmes


29
CHAPITRE 2

Figure 2–3
Procédé de prédiction
de l’algorithme K-NN.

Les points forts de cet algorithme sont les suivants :


• pas d’apprentissage ;
• modèle simple et résultats faciles à expliquer.
Il présente également quelques points faibles :
• méthode gourmande en mémoire, car il faut garder tout le jeu de données pour effectuer
une prédiction ;
• l’algorithme est moins efficace quand le nombre de caractéristiques est important.

39. Qu’est-ce que l’algorithme Bayes naïf ?


Le Bayes naïf (naïve Bayes) est un algorithme d’apprentissage supervisé de classification qui
se base sur le théorème de Bayes. Ce dernier provient de l’univers des probabilités
conditionnelles ; il sert à calculer la probabilité d’un événement A sachant qu’un événement
antérieur B s’est déjà produit :
P(A | B ) = P(B | A ) * P (A )P (B )
• P(A | B ) est la probabilité conditionnelle que l’événement A se produise sachant que
B s’est déjà produit.
• P(B | A ) est la probabilité conditionnelle que l’événement B se produise sachant que
A s’est déjà produit.
• P(A ) est la probabilité que l’événement A se produise (indépendamment de tous les autres
événements).
• P(B ) est la probabilité que l’événement B se produise (indépendamment de tous les autres
événements).
En adaptant cette formule, il est possible de l’utiliser pour prédire la classe d’une variable de
sortie Y en fonction des variables explicatives xi de l’observation. Dans ce cas de figure, les
G67951-Les data sciences en 100 questions réponses-INT-.book Page 30 Monday, August 24, 2020 8:17 AM

Partie théorique
30
PREMIÈRE PARTIE

variables explicatives xi seront les événements antérieurs et la variable de sortie Y sera l’évé-
nement à prédire en fonction des événements antérieurs.
Pour une observation ayant N caractéristiques binaires x1, … , xn pour laquelle on souhaite
prédire la classe de sortie Y parmi m classes possibles, on calcule la probabilité conditionnelle
de chacune des classes et on garde la valeur maximale de probabilité. Cette valeur maximale
indique la classe d’appartenance d’une observation donnée. La formule pour une classifica-
tion multiclasse s’écrit comme suit :
P (Y = J x1, … , xn)
⎡ P (Y = J )P (x1 Y = J )P (x2)P (x2 Y = J , x1)P (x 3 Y = J , x1, x 2) … P (xn Y = J , x1, x 2, … xn) ⎤
= max ⎢ ⎥
⎣ P (x1)P (x 2) … P (xn) ⎦
On remarque que, avec plusieurs variables, le calcul de la probabilité P (Y | x1, … , xn ) devient
rapidement complexe et coûteux. En effet, le calcul du terme P (Xn | Y = J , x1, x2, … xn ) pour
des caractéristiques xi binaires requiert le calcul de l’estimation de 2n − 1 termes, ce qui relève
d’une complexité de calcul exponentielle.
L’algorithme Bayes naïf simplifie ce calcul en adoptant une hypothèse : il suppose que les
variables explicatives x1, … , xn sont indépendantes par rapport à la variable de sortie Y . Ainsi,
le terme P (Xn | Y = J , x1, … , x2) devient tout simplement P (Xn Y = J ). La complexité de
calcul passe d’un problème exponentiel (2n − 1 termes) à un problème linéaire (n − 1 termes à
calculer).
De ce fait, le calcul de la probabilité conditionnelle P (Y | x1, … , xn ) devient un simple pro-
duit de probabilités de chacune des caractéristiques :
P (Y | x1, … , xn ) = ∏in= 1 P (xi | Y )
Cette hypothèse de simplification est dite naïve, d’où le nom de l’algorithme. En pratique,
cette hypothèse est généralement fausse. Elle revient à dire que la présence ou l’absence d’une
caractéristique est complètement décorrélée de la présence ou l’absence d’une autre caracté-
ristique pour une classe donnée. Cela revient à dire, par exemple, que la valorisation des
caractéristiques d’un fruit (couleur, forme, taille) est complètement indépendante du fruit en
question. En d’autres termes, l’hypothèse pose que, pour une banane, les probabilités
« couleur=jaune » et « taille=12 cm » ne sont pas reliées.

40. Qu’est-ce que le SVM ?


La machine à vecteurs de support (Support Vectors Machine – SVM) ou séparateur à vaste
marge (Large Margin Classifier) est un algorithme d’apprentissage supervisé utilisé aussi bien
pour la classification que pour la régression.
Dans le cas d’une classification, SVM agit en tant qu’algorithme linéaire : il sépare linéaire-
ment deux classes par une frontière.
Dans l’exemple de la figure 2–4, nous avons un cas de classification binaire dans un plan. On
remarque que de nombreuses lignes de séparation sont envisageables. Laquelle choisir ?
G67951-Les data sciences en 100 questions réponses-INT-.book Page 31 Monday, August 24, 2020 8:17 AM

Vue d’ensemble des algorithmes


31
CHAPITRE 2

Figure 2–4
De nombreux modèles de
classification sont envisageables
pour séparer les deux classes.

Le SVM choisit la ligne de séparation qui maximise la marge (la distance) entre elle et les
observations les plus proches. Le SVM peut fonctionner sur des données de dimension N ;
dans ce cas, on parle plutôt d’hyperplan de séparation.
Figure 2–5
Ligne de séparation unique
maximisant les marges avec
les deux classes.

Note
Les observations qui sont les plus proches de la ligne de décision sont les « vecteurs de support » qui
donnent son nom au SVM.

Figure 2–6
Vecteurs de supports.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 32 Monday, August 24, 2020 8:17 AM

Partie théorique
32
PREMIÈRE PARTIE

En trouvant une ligne de séparation qui s’éloigne le plus possible des observations d’entraîne-
ment (des deux classes), le SVM fournit un modèle de prédiction avec une bonne capacité de
généralisation. On dit que le modèle est stable.
Le SVM est configurable. En effet, on peut spécifier la largeur de la marge comme un hyper-
paramètre de l’algorithme.
Le SVM est utilisable pour classer des données qui ne sont pas séparables linéairement.
Figure 2–7
Exemple d’un jeu de données
non séparables linéairement.

Dans ce cas, on porte le jeu de données de dimension N dans un espace de dimension plus
grande en appliquant une transformation non-linéaire.
Figure 2–8
Application d’une transformation
non linéaire sur le jeu de données
de la figure 2–7.

En procédant de cette manière, on peut retrouver un hyperplan linéaire départageant les deux
classes. Pour parvenir à cette classification, on a recours à la technique dite astuce du noyau
(kernel trick).
G67951-Les data sciences en 100 questions réponses-INT-.book Page 33 Monday, August 24, 2020 8:17 AM

Vue d’ensemble des algorithmes


33
CHAPITRE 2

41. Qu’est-ce qu’une fonction noyau ?


Dans des problèmes d’analyse prédictive, notamment en classification ou en régression, on
peut avoir recours à une transformation des vecteurs de données d’un espace dit de descrip-
tion (dimension N ) vers un autre espace dit de redescription (taille Z ). Le but de cette
manœuvre est, pour un cas de classification, de trouver une séparation linéaire entre les deux
classes de données, car ils ne sont pas séparables dans la dimension de départ.
Soient x et y ∈ Rn deux vecteurs de l’espace de description (espace de départ). En leur appli-
quant une transformation non linéaire Φ, on se retrouve avec deux nouveaux vecteurs Φ(x)
et Φ(y) dans l’espace RZ .
Une fonction noyau K (Kernel) correspond au produit scalaire de ces deux vecteurs
K (x , y ) = (x )T . (y ) pour tout couple de vecteurs x et y donné.
Une fonction noyau est utile car elle permet de calculer un produit scalaire dans un espace de
redescription sans avoir à connaître cet espace ni la fonction de transformation Φ. C’est ce
qu’on appelle l’astuce du noyau (kernel trick).
En pratique, cette astuce est utile lorsqu’on traite des jeux de données de grandes dimensions
et que les données ne sont pas linéairement séparables. Transformer non-linéairement ces
données génère de nouveaux vecteurs dans un espace encore plus grand, où le calcul des pro-
duits scalaires est coûteux. L’astuce du noyau permet de s’affranchir de trouver une fonction
de transformation adéquate à notre problème et d’avoir à connaître l’espace de redescription.
L’astuce du noyau est souvent utilisée dans le cadre des algorithmes SVM pour classer des
données non séparables linéairement.

42. Qu’est-ce que l’analyse en composantes


principales ?
L’analyse en composantes principales (ACP) est une méthode de réduction de dimension qui
vise à synthétiser l’information contenue dans l’ensemble des variables.
Son principe est basé sur la corrélation entre les variables et essaie d’éliminer la redondance
contenue dans les caractéristiques. La méthode ACP n’élimine pas de variables, mais utilise
un procédé mathématique qui transforme un grand nombre de variables probablement corré-
lées en un nombre inférieur de variables non corrélées appelées composantes principales.
Si on considère X la matrice initiale des données, chacune de ses lignes décrit une observa-
tion dans l’espace des variables initiales et ses colonnes représentent les variables dans l’espace
des observations. Il s’agit de chercher k nouvelles variables obtenues comme des combinai-
sons linéaires des variables initiales, de telle façon que la projection des observations sur ces
variables conserve le plus de variance. Le sous-espace de dimension k est obtenu par les
k vecteurs propres μa relatifs aux k de plus grandes valeurs λa à la matrice XT X , a ∈ 1, … k.
XT X est la matrice de covariance ; elle est symétrique et définie comme positive, donc toutes
ces valeurs propres sont positives.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 34 Monday, August 24, 2020 8:17 AM

Partie théorique
34
PREMIÈRE PARTIE

Plusieurs règles permettent de déterminer le nombre de composantes principales à retenir.


1 La règle de Kaiser consiste à ne retenir que les composantes dont les valeurs propres sont
supérieures à 1.
2 Une autre règle choisit le nombre de composantes principales en fonction de la restitution
minimale de l’information souhaitée.
3 Le scree-test consiste à choisir un nombre de composantes principales égal au nombre de
valeurs propres se trouvant à gauche du point d’inflexion en observant la courbe de valeurs
propres.

43. Qu’est-ce qu’un arbre de décision ?


Les arbres de décision sont largement utilisés pour les problèmes de classification et de
régression. Ils suivent une hiérarchie de conditions « si/sinon » menant à une décision. Imagi-
nons qu’on souhaite par exemple distinguer les animaux suivants : ours, faucons, pingouins et
dauphins. L’objectif est d’obtenir le maximum de bonnes réponses aux questions. On peut par
exemple commencer par demander si l’animal a des plumes ou non. Cette question réduit le
potentiel des animaux à deux. Au cas où la réponse est « oui », on peut demander si l’animal
sait voler. En revanche, si l’animal n’a pas de plumes, il est possible de demander s’il a des
nageoires pour départager ours et dauphin. Cette série de questions peut être modélisée à tra-
vers un arbre de décision (figure 2–9).
Figure 2–9
Arbre de décision pour distinguer
les différents animaux.

Chaque nœud de l’arbre représente une question ou une feuille contenant la réponse. En
apprentissage automatique, on conçoit un modèle pour distinguer les quatre classes d’ani-
maux en utilisant les trois variables (a des plumes, peut voler, a des nageoires). Le partition-
nement récursif des données est répété jusqu’à ce que chaque région de la partition (chaque
feuille de l’arbre de décision) ne contienne plus qu’une seule valeur cible (une seule classe ou
une seule valeur de régression).
Une feuille de l’arbre contenant des données ayant la même valeur cible est appelée pure.
Généralement, construire un arbre conduit à des modèles très complexes. Si l’ensemble des
données d’apprentissage est cohérent, c’est-à-dire si on n’a pas une même observation éti-
quetée de deux façons différentes, alors l’apprentissage par arbre de décision fournit une
représentation avec des feuilles pures uniquement, i.e. il est possible que la prédiction soit
G67951-Les data sciences en 100 questions réponses-INT-.book Page 35 Monday, August 24, 2020 8:17 AM

Vue d’ensemble des algorithmes


35
CHAPITRE 2

correcte à 100 %. Cela risque de conduire à un phénomène de surapprentissage, où les arbres


obtenus seront de très grande taille.
Il existe deux stratégies pour prévenir le problème de surapprentissage. La première consiste à
arrêter la création de l’arbre plus tôt (pré-élagage). La deuxième solution consiste à construire
l’arbre, puis à supprimer ou réduire les nœuds contenant peu d’informations (post-élagage).
Parmi les problèmes les plus courants dans la construction d’un arbre de décision, il y a le
choix des variables. Les critères de choix de chaque nœud dépendent d’une mesure d’impu-
reté, qui doit être :
• nulle pour un nœud pur ;
• croissante en fonction du désordre d’un nœud.
Pour mesurer l’impureté des variables, on peut utiliser différentes méthodes :
• entropie de Shannon ;
• entropie de Boltzmann ;
• index de Gini.
Le principal inconvénient des arbres de décision est que, même avec un pré-élagage, ils four-
nissent parfois des performances médiocres. Par conséquent, dans la plupart des applications,
les méthodes d’ensemble (forêt aléatoire et arbres avec descente de gradient) sont générale-
ment utilisées à la place d’un arbre de décision unique.

44. Qu’est-ce qu’une forêt aléatoire ?


Les forêts aléatoires sont un moyen de résoudre le problème de surapprentissage dû aux
arbres de décision.
Une forêt aléatoire (random forest) est essentiellement une collection d’arbres de décision légère-
ment différents les uns des autres. L’idée sous-jacente est que chaque arbre peut prédire relative-
ment bien, mais risque d’atteindre un surapprentissage sur une partie des données. Si nous
construisons de nombreux arbres qui fonctionnent tous bien, nous pouvons réduire ce risque.
Pour mettre en œuvre cette stratégie, nous devons créer de nombreux arbres de décision,
chacun étant basé sur un échantillon aléatoire d’observations, devant prédire la cible et être
différent des autres arbres :
1 Choisir aléatoirement K observations à partir des données d’apprentissage.
2 Construire l’arbre de décision relatif à ces observations.
3 Choisir le nombre N d’arbres à construire dans la forêt et reprendre les étapes 1 et 2.
4 Pour toute nouvelle observation, chacun des N arbres doit prédire la catégorie ou la classe
à laquelle elle appartient. Finalement, l’observation est affectée à la catégorie qui a le plus
de votes.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 36 Monday, August 24, 2020 8:17 AM

Partie théorique
36
PREMIÈRE PARTIE

45. Qu’est-ce qu’une série temporelle ?


Une série temporelle ou chronologique (time-series) est une série de points de données
indexés dans un ordre temporel. Généralement, il s’agit d’une séquence de données enregis-
trées à des intervalles temporels successifs et égaux ; c’est donc une séquence de données dis-
crètes dans le temps.
Les séries temporelles apparaissent naturellement dans des applications émergentes visant à
analyser, par exemple, le comportement des utilisateurs du Web, l’évolution structurelle ou
informationnelle au sein de réseaux sociaux, ou également des données issues d’un ensemble
de capteurs dans le but de contrôler ou d’analyser les phénomènes dynamiques sous-jacents.
Par exemple, si on mesure et enregistre quotidiennement la température moyenne pour une
période donnée, on obtient une série temporelle. La caractéristique la plus importante de ce
genre de série est l’aspect unidirectionnel de l’ordre temporel ; cela signifie, entre autres, que
la valeur d’une mesure prise à l’instant t est fortement dépendante des instants précédents
mais pas des valeurs suivantes.
L’analyse des séries temporelles comprend des méthodes qui tendent à extraire des percep-
tions et des statistiques sensées : prédiction des valeurs futures, analyse de régression,
approximation des fonctions, estimation des signaux, classification des modèles, etc.

46. Qu’est-ce que la technique du boosting ?


L’idée de base de la technique du boosting consiste à agréger plusieurs modèles pour obtenir un
seul résultat. Le boosting fonctionne de manière séquentielle. Il commence par construire un
premier modèle qu’il va par la suite évaluer. À partir de cette évaluation, chaque individu va être
pondéré en fonction de la performance de la prédiction. L’objectif est de donner un poids plus
important aux individus pour lesquels la valeur a été mal prédite afin de construire le modèle
suivant. Le fait de corriger les poids au fur et à mesure permet de mieux prédire les valeurs diffi-
ciles. AdaBoost est un algorithme utilisé en apprentissage automatique basé sur cette technique.

47. Qu’est-ce que le gradient boosting ?


Le gradient boosting est une méthode d’apprentissage automatique utilisée pour résoudre les
problèmes de régression et de classification. Elle est principalement basée sur la technique du
boosting et utilise le gradient de la fonction de perte pour calculer les poids des individus lors
de la construction de chaque nouveau modèle.

48. Qu’est-ce que XGBoost ?


XGBoost (eXtreme Gradient Boosting) est une bibliothèque utilisée en apprentissage automa-
tique pour mettre en œuvre des méthodes de gradient boosting. Il s’agit d’une implémentation
open source optimisée de ces dernières.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 37 Monday, August 24, 2020 8:17 AM

3
Préparation des données

49. Qu’est-ce qu’une variable dépendante/indépendante ?


Cette terminologie est empruntée au domaine des statistiques. Une variable de sortie est dite
dépendante car elle dépend des variables d’entrée, ces dernières étant considérées comme indé-
pendantes.

50. Quelle est la différence entre les variables


continues, discrètes (catégorielles) et ordinales ?
• Variable continue
C’est une donnée numérique, entière ou réelle, qui peut prendre une infinité de valeurs
possibles (ex. valeurs d’une action en bourse ou quantité de précipitations sur une ville).
Ces variables peuvent entrer dans des calculs numériques comme les opérations arithmé-
tiques, la standardisation, etc.
• Variable catégorielle
C’est une donnée qui appartient à un ensemble fini de valeurs discrètes appelées catégo-
ries (ex. homme/femme). On peut encoder ces catégories par des valeurs numériques
(ex. 0 pour homme et 1 pour femme), mais pas leur appliquer de notions mathématiques,
comme le tri ou les opérations arithmétiques.
• Variable ordinale
C’est une donnée à mi-chemin entre continue et catégorielle. Elles a des valeurs limitées
(des catégories), mais peut être triée (ex. nombre d’étoiles d’appréciation d’un film).
G67951-Les data sciences en 100 questions réponses-INT-.book Page 38 Monday, August 24, 2020 8:17 AM

Partie théorique
38
PREMIÈRE PARTIE

51. Qu’est-ce qu’une valeur aberrante ?


Une valeur aberrante (outlier) est une valeur extrême de la distribution d’une variable, qui
s’écarte considérablement des autres valeurs.
Deux options se présentent : il s’agit soit d’une erreur, soit d’une vraie valeur (même extrême).
Dans le premier cas, une erreur s’est produite lors de la récolte de l’information (ex. erreur de
sondage, capteur défectueux, valeur négative de température d’un bébé). Dans ce cas, nous
pouvons rejeter cette observation ou la corriger par une autre (ex. médiane, moyenne).
Dans le second cas, il s’agit d’une situation exceptionnelle mais bien réelle, qui doit être prise
en compte lors de l’analyse des données (ex. salaire d’une personne riche par rapport à celui
de la population moyenne).

52. Qu’est-ce que la normalisation des données ?


La normalisation (min-max scaling) est une technique de préparation des données. Elle est
utile lorsque les caractéristiques étudiées ont des ordres de grandeur différents. À l’issue de la
transformation, elles se retrouvent bornées dans l’intervalle [0, 1] .
La technique consiste, pour chaque caractéristique, à soustraire la valeur minimale et à diviser
le tout par l’étendue (max-min) :
X − min(X )
Xnormalis é =
max (X ) − min(X )
Il est à noter que cette technique doit être employée avec précaution quand le jeu de données
présente des valeurs aberrantes.

53. Qu’est-ce que la standardisation des données ?


La standardisation (Z-score normalisation) est une technique de préparation de données. Elle
est utile quand les différentes caractéristiques sont dans des ordres de grandeurs/magnitudes
différents. À l’issue de cette manipulation, chaque caractéristique répond à une loi normale
(loi gaussienne) X ~ N (0,1) ayant une moyenne nulle et un écart-type de 1. La technique
consiste, pour chaque caractéristique, à en soustraire la moyenne (pour avoir une moyenne
nulle) et à diviser par son écart-type :
X−μ
Xstandard =
σ
• μ est la moyenne des valeurs de l’attribut X ;
• σ est l’écart-type (standard deviation) des valeurs de l’attribut X .
Les valeurs obtenues à l’issue de cette transformation sont en majorité dans l’intervalle [−1, 1].
La standardisation est moins affectée que la normalisation par les valeurs aberrantes.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 39 Monday, August 24, 2020 8:17 AM

Préparation des données


39
CHAPITRE 3

54. En préparation de données, qu’est-ce que


la discrétisation ?
La discrétisation fait référence au processus de partitionnement des données continues en des
données discrètes ou nominales (données discrètes ordonnées).
Pour cela, on découpe les données continues en K partitions de même largeur appelées
classes.
Prenons par exemple le jeu de données suivant :
120, 113, 128, 108, 136, 138, 132, 120, 138, 139, 131
Créons quatre classes de largeur 10 :
• La classe 0 [100,109] contient 1 élément.
• La classe 1 [110,119] contient 1 élément.
• La classe 2 [120,129] contient 3 éléments.
• La classe 3 [130,139] contient 6 éléments.
La discrétisation est utile pour certains algorithmes. L’arbre de décision de régression, par
exemple, fonctionne mieux avec des données discrétisées.

55. Qu’est-ce que la binarisation des données ?


La binarisation des données consiste à ne donner à un attribut que deux valeurs possibles. Les
valeurs dépassant un seuil (qu’on fixe) ont une valeur 1 et le reste 0.
La binarisation est utile en feature engineering, notamment pour créer de nouvelles variables
prédictives.

56. Qu’est-ce que l’encodage one-hot ?


En apprentissage automatique, les algorithmes ne savent généralement pas fonctionner avec
des variables qualitatives non numériques. Pour cette raison, une étape d’encodage one-hot est
nécessaire. Il s’agit de convertir une variable qualitative ou catégorique ayant N modalités
(valeurs possibles) en N variables suivant une forme bien déterminée. Ces nouvelles variables
prennent la valeur 1 pour la bonne modalité et 0 sinon.
Prenons un exemple. Soit la variable qualitative Estimation_météo qui peut prendre une des
valeurs suivantes : [PLUIE, SOLEIL, NUAGE, ORAGE]. Un encodage one-hot de cette variable va
produire quatre variables binaires. Supposons qu’on a une observation comportant la date et
une estimation météo comme suit :

Jour Estimation_météo
1er janvier PLUIE
2 janvier SOLEIL
G67951-Les data sciences en 100 questions réponses-INT-.book Page 40 Monday, August 24, 2020 8:17 AM

Partie théorique
40
PREMIÈRE PARTIE

L’encodage de la variable Estimation_météo produira le résultat suivant :

Jour PLUIE SOLEIL NUAGE ORAGE


1er janvier 1 0 0 0
2 janvier 0 1 0 0

57. Comment traiter les valeurs manquantes ?


Traiter une donnée manquante est une pratique importante. En effet, de nombreux algo-
rithmes d’apprentissage automatique ne savent pas fonctionner correctement avec des don-
nées manquantes.
Idéalement, traiter une donnée manquante doit se faire sans altérer grandement les caracté-
ristiques du jeu de données qui servira à l’apprentissage.
Il existe plusieurs méthodes :
• affecter une valeur fixe (ex. moyenne, médiane, mode) ;
• affecter une valeur issue d’un modèle prédictif (ex. arbre de décision, K-NN, régression) ;
• éliminer les observations incomplètes ;
• éliminer la colonne contenant des données manquantes.
La suppression des observations incomplètes est envisageable si le jeu de données est de taille
conséquente et le taux de données manquantes bas.
La suppression d’une colonne est à envisager si elle ne contient que peu d’informations au
regard du nombre d’observations.
Remplacer les données manquantes par des valeurs doit se faire avec prudence. En effet, il
faut comprendre la raison de l’absence des données. S’agit-il d’une absence de réponse à un
sondage, d’un capteur défectueux, ou encore d’une corruption de données ?
Si une règle fonctionnelle permet de calculer de façon déterministe la valeur de cette donnée
manquante, on s’en servira pour déduire et remplir la donnée manquante. Sinon, il faudra
recourir à des valeurs spécifiques (moyenne, médiane, mode) ou à un modèle prédictif.
Finalement, il faut noter que traiter une donnée manquante est un processus empirique. Il
faut essayer une approche, mesurer son efficacité et tenter d’améliorer le résultat, jusqu’à
obtenir un résultat satisfaisant.

58. Qu’est-ce que le principe de la validation croisée ?


Découper un ensemble de données en jeu d’entraînement et jeu de test est une approche
commune pour calculer un modèle prédictif et tester ses performances sur des données nou-
velles.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 41 Monday, August 24, 2020 8:17 AM

Préparation des données


41
CHAPITRE 3

La validation croisée pousse cette approche encore plus loin et peut travailler sur plusieurs
modèles à la fois sans avoir à se servir du jeu de test. Pour cela, on découpe le jeu de données
en trois lots :
• jeu d’entraînement ;
• jeu de validation ;
• jeu de test.
Le jeu de validation prend son sens quand on souhaite entraîner un modèle et/ou optimiser
les hyperparamètres d’un algorithme d’apprentissage automatique. D’abord, on applique des
algorithmes sur le jeu d’entraînement et on obtient des modèles. Puis, on utilise le jeu de vali-
dation pour calculer la performance de chacun d’eux et ne retenir que celui qui obtient le
meilleur score. Une fois ce modèle retenu, on calcule sa performance sur le jeu de test qui n’a
jamais été utilisé jusqu’alors.
Cette approche offre la possibilité d’optimiser les paramètres des modèles tout en gardant un
jeu pour calculer leurs capacités de généralisation.
Si on s’affranchit du jeu de validation, on risque d’optimiser notre modèle pour augmenter ses
performances sur le jeu de test. Par conséquent, on réduira sa capacité de généralisation à des
données nouvelles. En effet, le jeu de test dans ce cas de figure aura été utilisé à maintes
reprises pour optimiser les performances du modèle.
Parmi les techniques de validation croisée, on peut citer :
• validation en K passes (K-fold cross validation) ;
• LOOCV (Leave-One-Out Cross Validation) .

59. Comment expliquer le fonctionnement de la


validation croisée en K passes ?
La méthode de validation croisée en K passes (K-fold cross validation) est une technique sta-
tistique visant à calculer la performance des modèles. Il ne s’agit pas d’une métrique de per-
formance, mais d’un procédé pour constituer les jeux de test.
Le jeu de données est divisé en K sous-ensembles. On en sélectionne un comme jeu de test et
les autres représentent l’ensemble d’apprentissage. La performance du modèle est calculée
avec cette configuration. Ensuite, on répète l’opération en sélectionnant un autre échantillon
comme jeu de test et le reste comme jeu d’entraînement. L’opération se répète ainsi K fois de
telle façon que, à la fin, chaque sous-ensemble a été utilisé exactement une fois comme
ensemble de test. La mesure de performance finale est la moyenne des mesures de perfor-
mances des K passes.
Il est à noter que, avec cette méthode, on entraîne K fois l’algorithme d’apprentissage. Cela
risque d’être coûteux si le jeu de données est grand. Toutefois, la mesure obtenue sur la capa-
cité de généralisation du modèle est généralement satisfaisante.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 42 Monday, August 24, 2020 8:17 AM

Partie théorique
42
PREMIÈRE PARTIE

Figure 3–1
Validation croisée en quatre passes
sur un jeu de données.

60. Qu’est-ce que le principe de la méthode LOOCV


La méthode LOOCV (Leave One Out Cross Validation) est un cas typique de la validation
croisée en K passes, où K vaut N , le nombre d’observations du jeu de données. Ainsi, dans la
méthode LOOCV, le jeu de test ne comporte qu’un seul élément à chaque passe. Cette
méthode est très coûteuse en calcul. En effet, il faut entraîner N fois l’algorithme.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 43 Monday, August 24, 2020 8:17 AM

4
Mesures, métriques
et performances

61. Qu’est-ce qu’une matrice de confusion ?


Une matrice de confusion est un outil qui met en lumière le comportement d’un modèle de
classification face aux étiquettes d’un jeu de données.
Cette matrice de taille N × N (avec N le nombre de classes possibles) est utilisée aussi bien
en classification binaire que multiple.
Pour un problème de classification binaire, imaginons qu’on dispose d’un classifieur de pré-
sence (classe 1) ou d’absence (classe 0) d’une tumeur. La matrice de confusion sera la
suivante :

Observations
Classe 1 Classe 0
Classe 1 # vrais positifs # faux positifs
Prédictions
Classe 0 # faux négatifs # vrais négatifs

Note
Le caractère # signifie « nombre d’observations ».
G67951-Les data sciences en 100 questions réponses-INT-.book Page 44 Monday, August 24, 2020 8:17 AM

Partie théorique
44
PREMIÈRE PARTIE

62. En classification, qu’est-ce qu’un vrai positif ?


Note
Pour illustrer, nous nous baserons sur l’exemple de la question 61.

Un vrai positif (true positive – TP) est une observation pour laquelle un modèle prédictif a
déduit correctement une classe positive.

Exemple
Un modèle de classification prédit qu’un patient est atteint d’une tumeur maligne et c’est bien réelle-
ment le cas.

63. Qu’est-ce qu’un vrai négatif ?


Note
Pour illustrer, nous nous baserons sur l’exemple de la question 61.

Un vrai négatif (true negative – TN) est une observation pour laquelle un modèle prédictif a
déduit correctement une classe négative.

Exemple
Un modèle de classification prédit qu’un patient n’a pas de tumeur et c’est réellement le cas.

64. Qu’est-ce qu’un faux positif ?


Note
Pour illustrer, nous nous baserons sur l’exemple de la question 61.

Un faux positif (false positive – FP) est une observation pour laquelle un modèle prédictif a
déduit une classe positive, alors que l’observation est de classe négative.

Exemple
Un modèle de classification prédit qu’un patient a un cancer alors qu’il n’en a pas.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 45 Monday, August 24, 2020 8:17 AM

Mesures, métriques et performances


45
CHAPITRE 4

65. Qu’est-ce qu’un faux négatif ?


Note
Pour illustrer, nous nous baserons sur l’exemple de la question 61.

Un faux négatif (false negative – FN) est une observation pour laquelle un modèle prédictif a
prédit une classe négative alors que l’observation est de classe positive.

Exemple
Un modèle de classification prédit qu’un patient n’a pas de cancer alors qu’il en a un.

66. En classification, comment calculer le taux de faux


positifs ?
Le taux de faux positifs représente l’abscisse d’une courbe ROC. Il se calcule comme suit :
FAUX POSITIFS
Taux FP =
(FAUX POSITIFS + VRAIS NÉGATIFS)

67. Qu’est-ce que la courbe ROC ?


La courbe ROC est une mesure de performance d’un classifieur.
Elle représente le taux de vrais positifs en fonction du taux de faux positifs pour différents
seuils de classification.

68. Qu’est-ce que l’aire sous la courbe ROC ?


L’aire sous la courbe ROC (Area Under ROC Curve – AUC) est un outil pertinent pour indi-
quer la performance d’un classifieur par une seule mesure. Elle correspond à la probabilité
qu’un événement positif soit classé comme positif par le test sur l’étendue des valeurs seuils
possibles. Pour un modèle idéal, on a AUC = 1 ; pour un modèle aléatoire, on a AUC = 0,5.
On considère habituellement que le modèle est bon dès que la valeur est supérieure à 0,7,
bien discriminant entre 0,89 et 0,9, et excellent au-delà de 0,9.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 46 Monday, August 24, 2020 8:17 AM

Partie théorique
46
PREMIÈRE PARTIE

Figure 4–1
Exemple de courbe ROC.
L’AUC représente l’aire
en dessous de la courbe.

69. Qu’est-ce que le rappel en classification ?


Le rappel (recall) mesure la proportion de positifs prédits parmi tous les positifs de la popu-
lation (du jeu de données).
Vrais positifs
Rappel =
( Vrais positifs + Faux n égatifs )
Il répond à la question suivante : parmi toutes les étiquettes positives, combien d’entre elles le
modèle a-t-il correctement identifiées ?
La valeur de rappel est comprise entre 0 et 1.

70. Qu’est-ce que la précision en classification ?


La précision (precision) est la fréquence à laquelle le modèle prédit correctement la classe
positive. Sa valeur est entre 0 et 1 :
Vrais positifs
Précision =
(Vrais positifs + Faux positifs )

71. En classification, que signifie avoir un modèle ayant


une forte précision et un rappel bas ?
La précision et le rappel sont deux métriques utilisées pour évaluer la performance d’un
modèle de classification.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 47 Monday, August 24, 2020 8:17 AM

Mesures, métriques et performances


47
CHAPITRE 4

Avoir une précision élevée et un rappel bas signifie que le modèle prédit peu de vrais positifs
mais, quand il les détecte, il se trompe rarement. En revanche, il passe à côté de plusieurs
autres cas de classe positive (génère plus de faux négatifs).

72. En classification, que signifie avoir un modèle ayant


un fort rappel et une précision basse ?
Avoir un rappel élevé et une précision basse signifie que le modèle prédit beaucoup d’observa-
tions comme étant de la classe positive. Ainsi, il trouve les éléments de la classe positive mais
génère aussi beaucoup de faux positifs.
Si on souhaite un système où il n’est pas grave de générer de faux positifs mais qui doive sur-
tout ne pas manquer un vrai positif, il faut privilégier le rappel.

73. Qu’est-ce que le score F1 ?


Le score F1 est une métrique agrégée permettant d’évaluer un modèle de classification, basée
sur la moyenne harmonique de la précision et du rappel :
2 × pr écision × rappel
Score F1 =
pr écision + rappel

74. En classification, comment calculer la métrique de


justesse ?
La justesse ou exactitude (accuracy) est une métrique utilisée pour évaluer un modèle de clas-
sification.
Il s’agit de la proportion de prédictions correctes d’un modèle de classification :
(Vrais positifs + Vrais négatifs )
Justesse =
Nombre total d’exemples

75. En classification, quand faut-il éviter la métrique de


justesse ?
La métrique de justesse n’est pas appropriée et ne reflète pas bien les performances du classi-
ficateur lorsque les classes du jeu de données sont déséquilibrées (une disproportion entre le
nombre d’observations de classe positive et celles de la classe négative).
G67951-Les data sciences en 100 questions réponses-INT-.book Page 48 Monday, August 24, 2020 8:17 AM

Partie théorique
48
PREMIÈRE PARTIE

Supposons qu’on dispose d’un jeu de données composées de 100 observations de tumeurs.
90 d’entre elles sont bénignes et les autres sont malignes. Disons qu’on a un classifieur ne
détectant que les tumeurs bénignes. La justesse de ce modèle sera de 90 %, ce qui pourra nous
faire croire qu’il est performant ! En réalité, il a manqué 10 cas de détection de cancer chez les
patients. Pour une application médicale, on doutera d’un tel système.

76. Qu’est-ce que l’erreur quadratique moyenne ?


L’erreur quadratique moyenne (Root-Mean-Square Error – RMSE) est une métrique de per-
formance d’un modèle de régression qui mesure l’écart entre les valeurs prédites et les valeurs
réelles. Elle calcule la racine carrée de la moyenne de la somme des carrés des écarts entre une
observation et la valeur prédite par un estimateur.
1 2
RMSE =
M (
× ∑in= 1 yi − 
yi )
• M est le nombre d’observations du jeu de données.
• yi est la valeur prédite par un estimateur pour la i-ème observation.

• yi est la valeur observée dans le jeu de données.
Comme elle a la même unité que la variable à expliquer, cela lui donne une signification fonc-
tionnelle. Plus sa valeur est basse, plus l’écart est petit et meilleur est le modèle.
Cette mesure pénalise plus fortement les grands écarts (les grandes erreurs). Par conséquent,
elle est sensible à la présence de nombreuses valeurs aberrantes.

77. Qu’est-ce que l’erreur absolue moyenne ?


L’erreur absolue moyenne (Mean Absolute Error – MAE) mesure la performance des modèles
de régression.
C’est la moyenne de la somme des valeurs absolues des erreurs de prédiction :
1
MAE = * ∑in= 1 yi − 
yi
M
• M est le nombre d’observations du jeu de données.
• 
yi est la valeur prédite par un estimateur pour la i-ème observation.
• yi est la valeur observée dans le jeu de données.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 49 Monday, August 24, 2020 8:17 AM

5
Mathématiques pour
l’apprentissage automatique

78. Qu’est-ce que le coefficient de corrélation


de Pearson ?
Le coefficient de Pearson calcule la corrélation linéaire entre deux variables continues.
Sa valeur est toujours comprise entre -1 et 1.
Quand le coefficient est proche de 1, les deux variables sont corrélées positivement : si la
valeur de la variable X augmente, celle de Y augmente aussi.
Quand le coefficient est proche de -1, les deux variables sont corrélées négativement : si la
valeur de la variable X augmente, celle de Y diminue.
Quand la valeur du coefficient de corrélation approche de 0, on dit que les variables ne sont
pas corrélées linéairement.
Il est à noter que ce coefficient n’est utile que pour les variables ayant des relations linéaires.
Lorsque ce n’est pas le cas, ce coefficient (valeur proche de 0) n’est pas utile et peut indiquer
une non-corrélation (figure 5–1).
Figure 5–1
Jeux de données sans corrélation
linéaire (coefficient
de valeur nulle).
G67951-Les data sciences en 100 questions réponses-INT-.book Page 50 Monday, August 24, 2020 8:17 AM

Partie théorique
50
PREMIÈRE PARTIE

79. Quels sont les deux exemples de distances


euclidiennes souvent utilisées en apprentissage
automatique ?
Une distance entre deux points dans un espace euclidien de dimension N représente la quan-
tité d’éloignement de ces deux points dans cet espace. Elle est exprimée par P − Norme .
En apprentissage automatique, les deux distances les plus fréquemment utilisées sont les
normes L1 et L2.
• Norme L2
Elle est aussi appelée distance euclidienne. C’est la plus usitée, surtout dans des espaces à
deux dimensions.
Soient a et b, deux points définis respectivement par les coordonnées (xa, ya ) et (xb, yb )
dans un espace à deux dimensions. La distance euclidienne (norme L2) entre ces deux
points se calcule comme suit :
2
L2norm d(a, b ) = ((xb − xa) + (yb − ya ))
Note
Cette formule peut se généraliser à un espace de N dimensions.

Figure 5–2
Distance euclidienne dans un plan.

• Norme L1
Elle est aussi appelée distance de Manhattan ou city-distance et est la seconde mesure
euclidienne. Elle représente la distance de déplacement à angle droit sur un damier.
La distance de Manhattan entre deux points a et b dans un plan euclidien se calcule
comme suit :
L1 norm d(a, b ) = xa − xb + ya − yb
G67951-Les data sciences en 100 questions réponses-INT-.book Page 51 Monday, August 24, 2020 8:17 AM

Mathématiques pour l’apprentissage automatique


51
CHAPITRE 5

Figure 5–3
Trois distances de Manhattan entre
deux points dans un plan.

80. Qu’est-ce que la distance de Jaccard ?


L’indice et la distance de Jaccard sont deux métriques statistiques utilisées pour mesurer la
similarité entre deux échantillons ou ensembles.
L’indice (ou coefficient) de Jaccard se calcule comme le cardinal (nombre d’éléments) de
l’intersection de deux ensembles A et B, divisé par le cardinal de leur union :
A∩B
J(A , B ) =
A∪B
La distance de Jaccard se calcule comme suit :
A∩B
djaccard = 1 −
A∪B
Cette distance est utile pour étudier la similarité d’objets constitués d’attributs binaires.
Il est à noter que, techniquement, ce n’est pas une distance euclidienne. Puisque cette mesure
ne respecte pas l’inégalité triangulaire, on parle plutôt de mesure de dissimilarité (au lieu de
distance).

81. Qu’est-ce que la distance cosinus ?


La distance cosinus (ou plutôt la similarité cosinus ou Cosinus Distance en anglais) est une
distance non euclidienne permettant d’évaluer la similarité entre deux vecteurs.
Intuitivement, elle mesure la similarité de deux vecteurs dans un espace à N dimensions
comme la valeur du cosinus de l’angle entre ces derniers. Sa valeur est donc toujours comprise
entre -1 et 1.
Deux vecteurs sont similaires si la similarité cosinus vaut 1. La distance vaut 0 s’ils sont ortho-
gonaux et −1 s’ils sont tout à fait opposés.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 52 Monday, August 24, 2020 8:17 AM

Partie théorique
52
PREMIÈRE PARTIE

Figure 5–4
Similarité cosinus.

La similarité cosinus est souvent utilisée en fouille de textes. Elle se calcule en divisant le pro-
duit scalaire des deux vecteurs par la norme de ces deux derniers.
A.B
Similarité cosinus = Cos θ =
A . B

82. Qu’est-ce que la distance de Hamming ?


La distance de Hamming sert à évaluer la similarité entre deux vecteurs de même taille. Elle
est souvent utilisée en informatique pour comparer des chaînes de caractères ou encore en
traitement de signal.
La distance de Hamming calcule le nombre de substitutions nécessaires pour rendre un vec-
teur similaire à l’autre.
Voici un exemple, avec deux chaînes de caractères :
Bonjour
Bonsoir
La distance de Hamming entre ces deux mots vaut 2, car il existe deux emplacements diffé-
rents.

83. Qu’est-ce que la mesure de variance et comment la


calculer ?
La variance est une mesure statistique qui calcule les écarts entre les éléments d’un ensemble.
Elle mesure, notamment, la distance qui sépare un nombre de la moyenne de la distribution
(la dispersion par rapport à la moyenne).
La variance est la moyenne de la somme des carrés des différences entre chaque nombre de la
distribution de données et la moyenne de cette dernière. La variance se note σ 2 :
∑ni = 1(xi − μ)2
σ2 =
N
G67951-Les data sciences en 100 questions réponses-INT-.book Page 53 Monday, August 24, 2020 8:17 AM

Mathématiques pour l’apprentissage automatique


53
CHAPITRE 5

• xi est la i -ème observation.


• μ est la moyenne des xi .
• N est le nombre d’observations de la distribution.
Voici un exemple. Soit le jeu de données (distribution) suivant : [1, 4, 16]
Tout d’abord, on en calcule la moyenne :
1 + 4 + 16
μ= =7
3
La variance est la suivante :
(1 − 7)2 + (4 − 7)2 + (16 − 7)2
σ2 = = 42
3

Attention
La formule précédente n’est à appliquer que quand la distribution représente la population complète et
non pas un échantillon.

Quand la distribution représente un échantillon (et non pas toute la population), la formule
de la variance devient :
∑ni = 1(xi − μ)2
σ2 =
N −1
Dans le jeu de données précédent, prenons l’échantillon [4,16]. Calculons sa moyenne et sa
variance :
4 + 16
μ= = 10
2

(4 − 10)2 + (16 − 10)2


σ2 = = 36
2

Note
La valeur du dénominateur est la taille de la population, 3 moins 1 qui vaut 2 et non pas la taille de
l'échantillon (qui vaut aussi 2) !

84. Qu’est-ce que l’écart-type ?


L’écart-type est la racine carrée de la variance. Il est noté σ. La formule de l’écart-type pour
une distribution représentant une population est la suivante :
∑ni = 1(xi − μ)2
σ= σ2 =
N
G67951-Les data sciences en 100 questions réponses-INT-.book Page 54 Monday, August 24, 2020 8:17 AM

Partie théorique
54
PREMIÈRE PARTIE

Pour une distribution représentant un échantillon, elle devient :


∑ni = 1(xi − μ)2
σ= σ2 =
N −1

85. Qu’est-ce qu’un centile ?


En statistique, un centile (appelé aussi percentile) est l’observation pour laquelle X % des
valeurs du jeu de données sont plus petites que la valeur du centile.
Par exemple, calculons le 80e centile de la distribution suivante composée de 12 éléments :
10, 55, 50, 80, 85, 90, 20, 40, 55, 65, 30, 25
Tout d’abord, on trie ce jeu de données dans un ordre ascendant :
10, 20, 25, 30, 40, 50, 55, 55, 65, 80, 85, 90
Calculons la valeur de l’index du 80e centile :
Percentile
Index = × nombre observations
100

80
Index = × 12 = 9,6
100
L’index doit être une valeur entière et non flottante ; on arrondit donc au prochain nombre
entier. Dans notre exemple, il vaut 10. Le 80e centile est la 10e observation de notre jeu de
données (trié) et vaut 80 :
10, 20, 25, 30, 40, 50, 55, 55, 65, 80, 85, 90
Ce percentile peut se lire ainsi : 80 % des valeurs de notre jeu de données sont inférieures à 80.

86. Qu’est-ce que le premier quartile, le troisième


quartile et la médiane ?
Le premier quartile correspond au 25e centile d’une distribution ; il est noté Q1.
Le troisième quartile correspond au 75e centile d’une distribution ; il est noté Q3.
La médiane est la valeur qui divise une distribution (ou jeu de données) en deux parties
égales. La première partie comporte toutes les valeurs inférieures à la médiane. Le second
ensemble contient toutes les valeurs supérieures à la médiane. Elle correspond au quartile Q2.

Note
Si le jeu de données a un cardinal (nombre d’éléments) impair, alors la médiane est la valeur centrale. Si
le cardinal est pair, la médiane est la moyenne des deux éléments centraux du jeu de données.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 55 Monday, August 24, 2020 8:17 AM

Mathématiques pour l’apprentissage automatique


55
CHAPITRE 5

87. Qu’est-ce que l’écart interquartile ?


L’écart interquartile (Inter Quartile Range – IQR) est une mesure statistique de dispersion.
Elle correspond à la différence entre les troisième et premier quartiles.
IQR = Q3 − Q1
Les quartiles permettent de découper une distribution de données en quatre parties de tailles
égales. Le premier quartile délimite le premier quart de la distribution. La médiane (deu-
xième quartile) découpe le jeu de données en moitiés égales. Le troisième quartile découpe en
deux parts égales les données plus grandes que la médiane.
Par conséquent, les données se trouvant entre Q1 et Q3 représente 50 % de la distribution.

88. Qu’est-ce qu’une distribution normale ?


En théorie des probabilités, on dit qu’une variable aléatoire (représentant une distribution)
suit la forme normale quand la distribution de données est symétrique et suit la courbe de
Gauss-Laplace. La courbe de la densité de probabilité relative à cette distribution est appelée
courbe de Gauss ou courbe en cloche. Dans la littérature, une variable aléatoire normale est
aussi appelée variable aléatoire gaussienne. Quand une variable aléatoire suit une loi normale
(loi gaussienne), définie par une moyenne et un écart-type, on écrit :

(
X ~ N μ, σ 2 )
Cette loi représente souvent des phénomènes biologiques (ex. durée de vie, taille).
Figure 5–5
Tracé d’une loi normale.

L’exemple de la figure 5–5 montre le tracé d’une loi normale avec une moyenne de 8 et un
écart-type de 2. On remarque que les observations sont en majorité centrées sur la moyenne
et bornées entre 6 et 10 (soit un intervalle [−σ , σ ] autour de la moyenne).
G67951-Les data sciences en 100 questions réponses-INT-.book Page 56 Monday, August 24, 2020 8:17 AM
G67951-Les data sciences en 100 questions réponses-INT-.book Page 57 Monday, August 24, 2020 8:17 AM

6
Big data

89. Quelle est la différence entre big data et la data


science ?
Actuellement, nous observons un développement exponentiel de la quantité des informations
générées partout dans le monde et sur Internet plus précisément. Le résultat obtenu est le
concept de big data.
Big data est un terme générique englobant tous les projets où la donnée est au cœur du pro-
duit. De nos jours, les données peuvent être massives, circulant avec une grande vélocité et
dans des formats diversifiés. Ce sont les 3 V caractéristiques des big data :
• Volume
C’est souvent le « V » le plus commun et intuitif. Il met en lumière la quantité de données
générées, stockées et traitées par les systèmes d’information et les entreprises. La généra-
tion de données nouvelles a connu une explosion, notamment à cause des objets connec-
tés, des fichiers journaux, des réseaux sociaux, etc. Parallèlement ont dû émerger des outils
et des infrastructures permettant le traitement de ces quantités colossales de données.
• Variété
Elle correspond à la multitude des formats existants. Nous retrouvons les données struc-
turées et semi-structurées (bases de données relationnelles, documents XML, fichiers
JSON, bases de données NoSQL, API, Open Data) et, finalement, les données non
structurées (images, séquences vidéo, fichiers journaux, textes bruts tels que commentaires
ou tweets). La difficulté réside dans le traitement des données non structurées, car il n’y a
G67951-Les data sciences en 100 questions réponses-INT-.book Page 58 Monday, August 24, 2020 8:17 AM

Partie théorique
58
PREMIÈRE PARTIE

pas de méthodes communes et cela doit être traité au cas par cas avec une sélection
d’outils différents en fonction du besoin.
• Vélocité
Le troisième « V » met en lumière la vitesse de circulation et de traitement des données.
Dans certains contextes, la donnée n’a de sens que dans un court laps de temps (ex. cours
boursiers, tweets). Dans ce sens, les données sont générées à de grandes vitesses et sont
souvent consommées très vite également. Ce débit a conduit à la mise en place de
frameworks spéciaux.
Grâce à l’émergence des infrastructures et frameworks de stockage et traitement des données
respectant les 3V (ou du moins l’un d’eux), il est possible d’exploiter de nouveaux cas d’utili-
sation. En effet, grâce à l’abondance des données stockées et accessibles par les entreprises, on
cible mieux la clientèle et on anticipe de nouveaux cas de consommation. Cela s’appuie sur les
techniques de data science. Les infrastructures big data sont utilisées surtout pour l’exploita-
tion de production où la sollicitation de cette dernière peut être forte.
La data science, quant à elle, peut se voir comme complémentaire aux big data. Elle a pour
vocation, entre autres, l’exploitation et la valorisation des données collectées.
Un exemple de produit développé dans ce cadre peut être un système de recommandation
d’articles qui utilisera les données stockées dans les infrastructures big data pour mieux cibler les
clients. Dans ce sens, la data science va permettre la modélisation de systèmes prédictifs dans un
cadre expérimental. La phase d’industrialisation de ces systèmes se fait lors du déploiement de
ces logiciels sur les infrastructures robustes et hautement disponibles de big data.

90. Qu’est-ce qu’une distribution Hadoop ?


L’écosystème Hadoop se compose de plusieurs bibliothèques et projets open source. Ces pro-
jets ont des cycles de vie de release indépendants les uns des autres, conduisant parfois à cer-
tains problèmes d’incompatibilité.
Une distribution Hadoop résout ce problème, à l’instar des distributions Linux. Ainsi, cer-
taines entreprises comme Cloudera, HortonWorks ou encore MapR proposent des distribu-
tions regroupant un ensemble cohérent et compatible des différentes bibliothèques de l’éco-
système Hadoop.
Elles ajoutent parfois des outils propriétaires à la distribution ; c’est le cas d’Impala et Clou-
dera Manager dans la distribution CDH de Cloudera. Généralement, ces entreprises basent
leur modèle économique sur le support commercial payant et la formation.
Parmi les distributions les plus connues de Hadoop, on trouve :
• CDH – entreprise Cloudera ;
• MapR – entreprise MapR ;
• Big Insights – entreprise IBM.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 59 Monday, August 24, 2020 8:17 AM

Big data
59
CHAPITRE 6

91. Quelles sont les caractéristiques d’un cluster


Hadoop ?
Un cluster Hadoop sert aussi bien pour le stockage que pour le calcul distribué. Dans ce sens,
il se caractérise par les points suivants.
• Haute disponibilité
Ce point est assuré par des mécanismes de redondance des nœuds. Pour HDFS, la répli-
cation des blocs de données est assurée par le nœud maître (NameNode) responsable de la
cohérence des données. Les nœuds du cluster représentent des points de calcul et des
mécanismes de reprise de calcul en cas de défaillance d’un nœud existant.
• Extensibilité
L’ajout ou la suppression d’un nœud dans un cluster Hadoop se fait de façon automatique
et transparente pour un développeur et/ou un exploitant. Ainsi, le coût de redimensionne-
ment du cluster en fonction des besoins de production est très limité.
• Tolérance aux pannes
Grâce aux mécanismes de reprise en cas de panne (failover), il n’existe pas de point
d’échec (Single Point Of Failure – SPOF). Ainsi, pour HDFS, MapReduce ou encore
YARN, il existe des processus en attente en cas de panne des processus maîtres. La reprise
en cas de défaillance d’un nœud maître (NameNode) est transparente et automatique,
garantissant ainsi la tolérance aux pannes. Dans le cas où un nœud esclave (DataNode) est
en panne, le nœud maître se charge d’affecter les tâches à un autre DataNode.
• Maintenance et supervision
Un cluster Hadoop peut être géré à chaud grâce à des outils comme Apache Ambari.
Ainsi, il est possible d’ajouter des nœuds ou un service particulier. Ambari permet aussi
d’arrêter ou lancer à la demande un nœud du cluster, pour une opération de maintenance,
par exemple.

92. Quels sont les différents modes d’exécution


de Hadoop ?
Hadoop peut s’exécuter selon deux modes :
• Pseudo-distribué
Tous les processus liés à Hadoop s’exécutent sur une seule machine. Ce mode est particu-
lièrement utile en phase de développement.
• Distribué (fully distributed)
C’est le mode de production. Dans cette situation, on se retrouve avec des processus écla-
tés sur les différentes machines du cluster en fonction de leurs rôles. Ainsi, un nœud
esclave peut contenir un processus DataNode pour HDFS, ainsi que NodeManager pour
YARN et éventuellement un processus ZooKeeper.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 60 Monday, August 24, 2020 8:17 AM

Partie théorique
60
PREMIÈRE PARTIE

93. Qu’est-ce que HDFS ?


HDFS (Hadoop Distributed File System) est un système de gestion de fichiers distribués, open
source, écrit en Java. Il permet de stocker des fichiers volumineux sur un ensemble de
machines distribuées.
Les fichiers dans HDFS sont stockés en blocs de 128 Mo. Chaque bloc enregistré est
répliqué sur différents nœuds (trois par défaut). Ainsi, HDFS garantit une réplication et une
haute disponibilité des données, même en cas de panne d’un des nœuds.
L’architecture de HDFS est structurée en maître/esclave. Le nœud maître (NameNode)
supervise le cluster et gère les métadonnées de HDFS et les droits d’accès aux fichiers. Les
autres nœuds sont des esclaves nommés DataNode. Ils stockent les blocs de données et
envoient périodiquement un signal de vie (heartbeat signal) pour indiquer au nœud maître
qu’ils sont toujours opérationnels. Ils envoient aussi l’état des blocs qu’ils gèrent pour que le
nœud maître gère la cohérence des données dans le cluster.
Il est à noter que seul le nœud maître a une vision globale sur les informations stockées et la
façon de les retrouver. Vu sa criticité, il est souvent soutenu (back-up) par un autre NameNode
en veille en cas de panne et nommé Standby NameNode.

94. Qu’est-ce que MapReduce ?


MapReduce est un paradigme (design pattern) de calcul distribué. Il a été implémenté dans
Hadoop sous le même nom.
MapReduce existe depuis les débuts de Hadoop (version 1). Il permet de faire du calcul dis-
tribué sur des données stockées en HDFS. Les résultats de calcul (quand il y en a) sont
stockés aussi en HDFS.
Un job MapReduce se subdivise en deux phases.
• Map
Cette phase prend en entrée un bloc de données (input split) qui sera traité par un
Mapper, un processus qui exécute la fonction Map d’un job MapReduce. Le Mapper
applique la fonction Map et produit une liste de couples clé/valeur pour chaque tuple du
bloc de données. Cette liste est ensuite transférée au processus Reduce, selon les valeurs
des clés.
• Reduce
Cette phase combine les valeurs de la phase Map et renvoie une seule valeur de sortie (par
clé). En bref, cette phase résume l’ensemble des données. Il est à noter que cette phase est
optionnelle et peut être omise en fonction du besoin.
En pratique, il existe entre les phases Map et Reduce une phase de transfert des résultats
intermédiaires des Mappers vers les Reducers (shuffling) et une phase de tri et d’agrégation
des résultats intermédiaires (sorting & grouping).
G67951-Les data sciences en 100 questions réponses-INT-.book Page 61 Monday, August 24, 2020 8:17 AM

Big data
61
CHAPITRE 6

Figure 6–1
Illustration du fonctionnement de
MapReduce en comptage de mots.

La figure 6–1 représente un comptage de mots depuis un fichier stocké dans HDFS, par
exemple. Hadoop découpe ce fichier en des input splits Map/Reduce. Chacun est envoyé à un
Mapper (sur un des nœuds esclaves du cluster Hadoop). Ce dernier crée des couples clé/
valeur où chaque clé est représentée par l’occurrence d’un mot et la valeur est le chiffre 1.
La phase de Shuffling sert à transférer les différents couples clé/valeur en fonction de la valeur
de clé vers le bon Reducer. Celui-ci agrège (additionne ici) les valeurs des couples ayant la
même clé. À l’issue de cette opération, on aura pour chaque clé (qui est un mot) le comptage
de ses occurrences. Le résultat final est écrit dans HDFS.

95. Quelles sont les limitations de MapReduce ?


MapReduce est le framework historique qui a fait la renommée de Hadoop (avec HDFS).
Bien que populaire et capable de traiter de larges quantités de données, il connaît des limita-
tions. En effet, pour mener à bien un calcul, il a recours à plusieurs opérations d’entrées/sor-
ties disque, notamment pour stocker les résultats intermédiaires de la phase Map. Par ailleurs,
la phase de transfert des données vers les Reducers requiert de la bande passante.
Une autre limitation du framework est le paradigme de programmation MapReduce en soi.
En effet, certains problèmes métiers sont difficilement, voire tout simplement impossibles à
transcrire en deux phases Map et Reduce.
Une troisième limitation de ce framework est qu’il est adapté uniquement pour les calculs en
mode batch. Il n’existe pas de mode interactif possible, ce qui peut être assez contraignant.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 62 Monday, August 24, 2020 8:17 AM

Partie théorique
62
PREMIÈRE PARTIE

Enfin, MapReduce est mal adapté pour le traitement des données à chaud ou ayant une
grande vélocité, comme celles provenant d’un flux de données (Data Stream) . Il est nécessaire
pour MapReduce que les données soient dans HDFS.
Certains frameworks ont vu le jour pour pallier ces limitations. On citera à titre d’exemple
Apache Hive qui permet des requêtes interactives sur des données stockées sur HDFS. On
citera également Apache Spark pour le calcul distribué en mémoire sur un cluster Hadoop,
ainsi qu’une solution pour le traitement en temps réel des données (streaming des données).

96. Qu’est-ce que YARN dans le framework Hadoop ?


YARN (Yet Another Resource Negotiator) est un gestionnaire de ressources. Il s’agit d’un com-
posant important qui est apparu avec la version 2 de Hadoop.
Dans la première version de Hadoop, le seul framework de calcul utilisable était MapReduce,
parce qu’il gérait à la fois le calcul et la négociation de ressources (grâce aux processus Job-
Tracker et TaskTracker).
YARN ouvre la puissance de calcul d’un cluster Hadoop à d’autres frameworks, le plus connu
étant Apache Spark. Nous pouvons aussi citer Apache TEZ.
YARN repose sur une architecture maître/esclave. Le nœud maître (Resource Manager) se
charge de recevoir les nouveaux jobs (MapReduce, Hive, Spark…) et de les mettre en file
d’attente pour exécution. Le Node Manager supervise l’exécution des tâches MapReduce sur
les DataNode et remonte l’information par la suite au composant Resource Manager intégré au
niveau du NameNode.

97. Qu’est-ce que Spark ?


Apache Spark est un framework de calcul parallèle écrit en Scala. Il fournit plusieurs API
permettant de l’utiliser dans plusieurs langages de programmation, notamment Scala, Java,
Python et R.
Bien que Spark soit principalement destiné au traitement parallèle, il offre des modules pour
les besoins suivants.
• Spark SQL
API pour utiliser un langage proche de SQL sur des données structurées en provenance
de sources différentes (JSON, CSV, Hive, JDBC).
• Spark Streaming
API pour le traitement de données avec une grande vélocité. Ainsi, les données qui se
manifestent au fil de l’eau (pipe kafka, flux réseau, tweets) sont traitées par cette API pour
stockage ou analyse ultérieure.
• Spark ML Lib
Bibliothèque d’algorithmes d’apprentissage automatique Machine Learning.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 63 Monday, August 24, 2020 8:17 AM

Big data
63
CHAPITRE 6

• Graph X
Bibliothèque pour le traitement des données structurées en graphes.
Lors de l’arrivée d’Apache Spark dans le paysage technologique, ce dernier promettait des
performances d’exécution plus élevées que celles de MapReduce, notamment grâce à des exé-
cutions en mémoire des opérations de calcul. Cela a été possible grâce à une structure de don-
nées particulière : les RDD.
Un RDD (Resilient Distributed Dataset) est une collection de données distribuée en lecture
seule et résidant en mémoire vive (RAM). Un RDD se crée soit à partir d’une source de don-
nées stable (base de données, fichier HDFS, table Hive), soit depuis un autre RDD.
Pour les traitements, Spark se base sur deux types d’opérations.
• Transformations
Une transformation génère un autre RDD qui peut servir pour une autre transformation.
Ainsi, il est possible d’enchaîner des transformations depuis un premier RDD.
• Actions
Une action est une opération qui va déclencher un calcul (et les transformations précé-
dentes). Elle représente une opération finale avec laquelle on ne pourra plus réutiliser
le RDD.
Figure 6–2
Typologie des actions
dans Apache Spark.

Lors de la déclaration d’une transformation, aucun calcul n’est entrepris par le framework.
Spark garde en mémoire cette déclaration. C’est lorsqu’une opération de type action est
appelée que le calcul des différentes transformations s’effectue. On dit que les opérations de
transformations sont paresseuses (lazy).
Apache Spark garde en mémoire les différentes déclarations grâce à une structure nommée
DAG (Directed Acyclic Graph). Il s’agit d’un graphe unidirectionnel déterministe qui contient
la déclaration des différentes opérations de transformation et l’action à effectuer sur un RDD
donné. En cas de panne d’un nœud de calcul lors d’une exécution d’un DAG, Spark est en
mesure de rejouer l’historique des opérations sur une partie des données (et non nécessaire-
ment la totalité), ce qui représente un gain de performance.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 64 Monday, August 24, 2020 8:17 AM

Partie théorique
64
PREMIÈRE PARTIE

98. À quoi Hive sert-il ?


Hive est l’entrepôt de données (data warehouse) de Hadoop. Il permet le requêtage de larges
quantités de données stockées sur HDFS. Hive a été initialement développé par Facebook.
Le but du projet est de permettre aux développeurs d’interroger les volumes de données
stockés sur HDFS sans avoir à écrire des jobs MapReduce (ce qui requiert une bonne exper-
tise technique). Ainsi, les requêtes s’écrivent dans le langage Hive QL, similaire à SQL. Par
la suite, chaque requête est automatiquement convertie en un ensemble de tâches MapRe-
duce exécutées sur Hadoop. Hive n’est pas conçu pour des requêtes en temps réel ; il est opti-
misé pour les tâches en lots appliquées à des ensembles volumineux de données.

99. Qu’est-ce que le NoSQL ?


NoSQL est un terme générique qui veut dire not only SQL, qui peut se traduire en « pas
seulement SQL ».
Ce terme regroupe un ensemble de systèmes de gestion de bases de données (SGBD) qui
s’affranchissent des conventions et contraintes des bases de données relationnelles (SGBDR)
interrogées par le langage SQL.
Les SGBDR reposent sur l’algèbre relationnelle et, plus généralement, sur les principes ACID
(Atomicité, Cohérence, Isolation, Durabilité). Avec l’avènement du big data, les entreprises
GAFAM (Google, Amazon, Facebook, Apple, Microsoft) se sont heurtées aux limites des
SGBDR, notamment le temps de réponse des serveurs et la taille des données à gérer.
Les propriétés ACID garantissent une sécurisation et une cohérence des données. Toutefois,
pour le contexte des GAFAM, certaines de ces propriétés n’étaient plus pertinentes. Par consé-
quent, on pouvait tolérer que certaines ne soient pas respectées. Dans ce sens, certaines entre-
prises (notamment Facebook) ont développé des SGBD qui ne respectent pas totalement les
propriétés ACID. Facebook a développé la base de données Cassandra pour gérer de gros
volumes de données, par la suite proposé en open source sous l’égide de la fondation Apache.
On peut différencier quatre familles de bases de données NoSQL :
• les bases orientées « clés/valeurs » ;
• les bases orientées « documents » ;
• les bases orientées « colonnes » ;
• les bases orientées « graphes ».

Bases orientées « clés/valeurs »


Les bases de données clés/valeurs peuvent être vues comme une collection de tables de
hachage persistantes (stockées sur disque).
G67951-Les data sciences en 100 questions réponses-INT-.book Page 65 Monday, August 24, 2020 8:17 AM

Big data
65
CHAPITRE 6

Un tuple stocké dans ce type de base est représenté par une clé et une valeur. La clé fait office
de clé primaire, tandis que la valeur peut être de n’importe quel type (ex. document XML,
session HTTP, objets sérialisés).
Les requêtes permises sur ce type de bases de données restent assez basiques : insérer un
tuple, le supprimer, le mettre à jour et le récupérer. Il est à noter que le SGBD ne connaît pas
la structure de données d’un tuple ; il appartient à l’application qui consomme ce dernier d’en
interpréter le contenu. En contrepartie du système de requête basique que proposent ces
SGBD, ces derniers sont connus pour leurs hautes performances.
Dans cette catégorie de SGBD, on peut citer : DynamoDB de Amazon et MemcachedDB.

Bases orientées « documents »


Les bases de ce type gèrent des documents. Généralement, un document est représenté dans
une structure XML ou JSON. Les bases orientées documents permettent de regrouper les
données en unités logiques tout en prônant la redondance des données et en évitant le plus
possible les jointures (coûteuses en temps d’exécution). Leur point fort est la facilité de mise à
l’échelle horizontale, notamment en facilitant l’ajout de serveurs de bases de données dans un
cluster. Parmi les bases de données orientées documents les plus connues, on peut citer :
MongoDB et CouchDB.

Bases orientées « colonnes »


Ces bases sont organisées en famille de colonnes. Pour les bases de données relationnelles, les
colonnes sont statiques et présentes pour chaque tuple (même si, pour un tuple donné, la
valeur d’une de ses colonnes est vide). Cela représente un coût de stockage. À l’inverse, les
bases orientées colonnes ne gardent, pour un tuple donné, que les colonnes qui sont valorisées.
Parmi les plus connues, on citera Apache Cassandra et HBase.

Bases orientées « graphes »


Les bases de données orientées graphes sont généralement utilisées pour représenter des rela-
tions entre des entités. Un cas d’application de ce type de SGBD est un réseau social.
Dans ce type de système, les données sont stockées sous forme de graphes. Ce dernier est
composé d’entités et d’arcs représentant les relations entre ces entités. Pour le cas d’un réseau
social, une entité peut représenter une personne et un arc peut représenter est ami avec.
Parmi les bases de données orientées graphes, citons Neo4j et OrientDB.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 66 Monday, August 24, 2020 8:17 AM

Partie théorique
66
PREMIÈRE PARTIE

100. Qu’est-ce que le théorème CAP ?


Le théorème CAP, ou théorème de Brewer, stipule qu’il est impossible pour un système de
stockage distribué de garantir simultanément plus de deux des trois propriétés suivantes :
• Consistency (cohérence)
Toutes les instances du système distribué disposent à un même instant t de la même
version de la donnée. Autrement dit, il n’y a pas de retard dans la propagation des mises
à jour.
• Availability (disponibilité)
L’application est accessible à tout instant et chaque requête reçoit une réponse qui
confirme si elle a été traitée avec succès ou non.
• Partition tolerence (résistance au morcellement)
Le système doit pouvoir continuer de fonctionner même si certains nœuds sont isolés à la
suite d’une rupture du réseau.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 67 Monday, August 24, 2020 8:17 AM

DEUXIÈME PARTIE

Partie pratique
G67951-Les data sciences en 100 questions réponses-INT-.book Page 68 Monday, August 24, 2020 8:17 AM
G67951-Les data sciences en 100 questions réponses-INT-.book Page 69 Monday, August 24, 2020 8:17 AM

7
Études de cas

Dans ce chapitre axé sur la pratique, nous allons étudier deux exemples de mise en place de
modèles prédictifs. Le premier modèle sera une régression, tandis que le second sera une clas-
sification. Indépendamment du problème à résoudre, vous allez remarquer que les étapes de
résolution d’un problème d’apprentissage automatique restent sensiblement les mêmes.

La data science dans la pratique

La face pratico-pratique de la data science


La science des données est avant tout une science/un art de valorisation des données. Un
expert va explorer un amas de données pour voir s’il peut en ressortir une plus-value métier ou
des tendances utiles à l’entreprise. Ce travail se veut heuristique, avec une logique d’améliora-
tions successives pour une meilleure compréhension du problème à résoudre.
Qui dit approche heuristique, dit avancement à « l’aveuglette ». En effet, au premier contact
avec un jeu de données, l’expert n’a aucune idée de ce que recèle ce dernier. Il n’a d’ailleurs pas
la certitude que les données à sa disposition lui seront utiles pour résoudre sa problématique.
Hormis ces obstacles, les experts s’accordent pour dire que leur flair ou leur sixième sens
concernant l’analyse de données et la modélisation de systèmes prédictifs s’aiguise au fil de
l’expérience. C’est pourquoi j’ai ajouté dans ce livre une section pratique axée sur du code et la
méthodologie pour l’élaboration de modèles prédictifs.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 70 Monday, August 24, 2020 8:17 AM

Partie pratique
70
DEUXIÈME PARTIE

Au-delà des algorithmes d’apprentissage automatique


L’expert cherche avant tout un modèle prédictif satisfaisant à la problématique qu’il cherche à
résoudre. Il se souciera moins des détails algorithmiques ou de la rigueur statistique qui ont
conduit à la solution.
Dans ce sens, la faculté première que vous devez chercher à développer est votre capacité à
choisir les bons algorithmes d’apprentissage automatique et à mieux préparer les données
pour ces derniers.
Ne vous méprenez pas en me lisant. Je ne dis pas qu’il est inutile de comprendre le fonction-
nement interne des algorithmes d’apprentissage automatique, bien au contraire. Cependant,
il n’est pas nécessaire de savoir comment les implémenter. En effet, il existe des bibliothèques
open source et souvent gratuites, dans lesquelles il ne vous reste qu’à choisir l’algorithme qui
vous convient. Par ailleurs, connaître les prérequis d’utilisation de ce dernier et ses limites
vous aidera à choisir le plus adapté à votre situation.

Outils de l’expert et intégration à l’entreprise


Les éléments de base sont les données. Il faut des outils facilitant leur manipulation et leur
préparation pour les algorithmes d’apprentissage automatique.
Dans la sphère des big data et de la data science, deux langages de programmation ont su se
démarquer pour la manipulation des données. Cela a donné naissance à deux écoles. La pre-
mière préconise d’utiliser le langage R pour explorer et implémenter des modèles prédictifs.
La seconde école préconise le langage Python.
Pour ma part, peu importe le langage utilisé du moment qu’il répond à votre besoin et que
vous êtes à l’aise lors de son utilisation. Toutefois, dans le monde de l’entreprise, des considé-
rations déterminent le choix de l’un de ces langages et doivent être prises en considération,
notamment les suivantes :
• pertinence et pérennité du langage choisi ;
• garantir la cohérence du parc applicatif de l’entreprise ;
• facilité à trouver des personnes capables de maintenir les solutions développées.

Pertinence et pérennité du langage


Le langage Python existe depuis 1991 et se veut un langage de programmation généraliste
(main-stream) . Par conséquent, on le trouve dans plusieurs contextes comme le scripting sys-
tème, le développement web et aussi en data science. Quant au langage R, il vise plus la com-
munauté des statisticiens et est surtout adapté à l’analyse de données. Sa première version est
sortie en 1993.
Python prône une syntaxe impérative et orientée objet, qu’on retrouve dans des langages
populaires comme Java, C++ ou encore C#, ce qui le rend assez simple à prendre en main
notamment par les développeurs informatiques. Le langage R trouve ses racines dans le
G67951-Les data sciences en 100 questions réponses-INT-.book Page 71 Monday, August 24, 2020 8:17 AM

Études de cas
71
CHAPITRE 7

langage S développé dans les années 1970 pour manipuler et visualiser des données. Sa syn-
taxe parle plus à un statisticien et est généralement moins intuitive pour un développeur
informatique habitué à des langages main-stream comme Java ou C++.

Cohérence du parc applicatif de l’entreprise


Garantir la cohérence du parc applicatif est un enjeu primordial en entreprise. Faillir à cet
enjeu peut conduire à de faibles performances d’exploitation. Il est notamment important
d’éviter la prolifération des langages de programmation. Imaginez un parc applicatif dispo-
sant d’une vingtaine d’applications, chacune développée avec une pile technique différente et
dans des langages de programmation différents. Les prérequis pour la mise en production de
chacune de ces applications seront potentiellement différents et, par conséquent, les coûts
d’exploitation et de maintenance en seront élevés, sans mentionner le coût de sourcing des
développeurs sur ces différents langages pour faire évoluer et maintenir ces logiciels.
Pour se prémunir de ces risques, les sociétés tentent de minimiser le nombre d’outils et de
langages de développement. Par conséquent, un même développeur pourra travailler sur dif-
férentes applications avec un coût de prise en main maîtrisé. Le même raisonnement
s’applique pour la mise en production de ces logiciels.
Python reste plus proche que R des langages généralistes, ce qui simplifie son adoption dans
le monde professionnel. En février 2020, il est le 3e langage en matière de popularité, loin
devant le langage R qui occupe la 13e place du même classement.

Facilité pour trouver des compétences


En entreprise, en plus de garantir la cohérence technologique du système d’information (SI),
un second enjeu se présente : garantir la suffisance en matière de ressources humaines quali-
fiées pour maintenir les applications. Or, la tendance sur Google Trends montre un intérêt plus
grand pour Python que pour le langage R.

Figure 7–1 Tendances Google Trends pour les langages R et Python.

L’une des conséquences indirectes de cet intérêt est le grandissement de la communauté


Python, qui s’entraide notamment sur des sites comme Stackoverflow (figure 7–2), ce qui éta-
G67951-Les data sciences en 100 questions réponses-INT-.book Page 72 Monday, August 24, 2020 8:17 AM

Partie pratique
72
DEUXIÈME PARTIE

blit ce langage en tant que standard en data science. Le langage R quant à lui avance beau-
coup plus lentement.
Figure 7–2
Évolution des nombres de
questions posées sur Python
et R sur le site Stackoverflow.

Le fait qu’un langage ou une technologie s’établisse et qu’une communauté de développeurs


émerge pousse généralement plus de développeurs à s’intéresser à cette technologie. La
conséquence directe de cela est la présence de plus en plus abondante sur le marché du travail
de programmeurs dans ce langage, ce qui rassure les entreprises et les pousse à adopter cette
technologie.

Recommandation du livre
Que ce soit le langage R ou Python, il s’agit avant tout d’outils et non pas de finalités. Dans
ce sens, pour une personne se lançant dans la data science, il est inutile de s’attarder des
heures pour choisir entre les deux.
Pour ma part, j’ai tendance à privilégier Python. Il s’agit avant tout d’une préférence person-
nelle liée à ma connaissance de ce langage et à ses similarités avec des langages comme Java et
C++. C’est pourquoi je l’utiliserai dans la suite de l’ouvrage.
Au-delà de mes goûts et en raison de sa position dominante sur le marché, Python sera cer-
tainement un bon choix pour un lecteur débutant en data science.

Les instructions d’installation du langage et des autres outils nécessaires pour nos études de cas pra-
tiques sont détaillées plus loin.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 73 Monday, August 24, 2020 8:17 AM

Études de cas
73
CHAPITRE 7

Aborder un problème de Machine Learning


Avant de foncer tête baissée pour coder votre premier modèle de Machine Learning, il est
judicieux d’avoir une approche claire et rationnelle sur la façon de résoudre les probléma-
tiques de data science.
Au début de ce chapitre, j’ai évoqué qu’un data scientist cherche avant tout à valoriser ses
données, loin des rigueurs mathématiques et informatiques. Il cherchera plutôt à produire un
modèle ou un POC (Proof Of Concept) opérationnel, qui modélise une situation ou met la
lumière sur une tendance subtile à apercevoir au premier abord.
La résolution d’un problème d’apprentissage automatique suit quelques étapes qui vous servi-
ront comme repères pour vos projets en les adaptant à votre contexte :
1 compréhension du problème et définition du périmètre de la problématique ;
2 récupération des données ;
3 exploration numérique et visuelle des données pour mieux les comprendre ;
4 préparation des données pour les algorithmes d’apprentissage automatique ;
5 sélection d’une métrique de performance ;
6 sélection d’un modèle et son entraînement ;
7 ajustement et affinement du modèle obtenu ;
8 vérification du modèle sur le jeu de test ;
9 présentation de la solution ;
10 mise en production et suivi de la solution.

1. Compréhension du problème et définition du périmètre


de la problématique
Produire un modèle prédictif n’est pas une finalité en soi. Un data scientist cherche avant tout à
produire une solution satisfaisante et répondant à une problématique de l’entreprise. Sa tâche
première quand il démarre un nouveau projet d’apprentissage automatique est de comprendre
pourquoi on cherche à développer une solution à la problématique qu’il a entre les mains.
Quel est le but en développant cette solution ? Quel est le gain espéré par l’entreprise une fois
la solution mise en place ? Comment sera utilisée la solution une fois déployée ?
Une autre question pertinente est de savoir comment l’entreprise parvenait éventuellement à
résoudre le problème avant l’élaboration d’un modèle prédictif. En posant une telle question,
vous aurez un point de repère sur la fiabilité de la solution.
En discutant avec les différents intervenants du projet, vous obtiendrez des réponses assez
structurantes. En effet, cela déterminera le type de problème auquel vous avez affaire : parti-
tionnement, régression, classification… Il en découlera aussi les métriques de performances
les plus adaptées à votre situation.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 74 Monday, August 24, 2020 8:17 AM

Partie pratique
74
DEUXIÈME PARTIE

2. Récupération des données


Cette phase est la première étape concrète dans un projet. Il s’agit de récupérer l’ensemble des
données nécessaires et suffisantes pour mettre en place un modèle prédictif performant.
Voyons à quelles contraintes peut se heurter un data scientist.

Diversité des sources de données


Les données proviennent souvent de sources différentes. Généralement, dans un contexte
professionnel, les données internes de l’entreprise sont la source première : différentes bases
de données, données de progiciels de gestion intégrés (PGI – ERP en anglais), rapports de
tableurs, etc. L’avantage est qu’elles sont généralement bien structurées, maîtrisées et quali-
fiées, ce qui facilite leur exploitation.
La seconde source d’une entreprise est constituée de données semi ou non structurées : jour-
naux applicatifs (logs), notes textuelles, courriers électroniques, transcriptions de conversa-
tions téléphoniques, etc. Généralement, ces données sont plus complexes à exploiter et
demandent un travail préparatoire plus important. Toutefois, leur exploitation peut révéler
des informations intéressantes. Par exemple, en exploitant les fichiers de journaux d’un ser-
veur, il est possible de retracer le parcours d’un internaute ou d’un client dans les pages qu’il a
visitées. Avec ce type d’information, une entreprise saura mener des actions plus ciblées et
inciter les visiteurs à passer à l’acte d’achat.
Une troisième source regroupe les données publiques : données en accès libre (open data), API
publiques et accessibles librement, pages des différents sites web (exploitables grâce à des
techniques de data scrapping), informations des réseaux sociaux, etc. Généralement, ces don-
nées sont moins qualifiées que celles des deux premières catégories. Il faut donc s’en servir
avec précaution dans le sens où elles peuvent ajouter plus de bruit que d’informations utiles.
Un data scientist peut, surtout pour des projets complexes, être amené à agréger plusieurs
sources, notamment pour construire un jeu de données représentatif du problème qu’il modé-
lise. Le choix des sources dépend du savoir-faire de l’expert et de son appréciation du problème.

Diversité des formats de données


En plus de la diversité des sources, s’ajoute la diversité des formats de données. Avec l’émer-
gence de l’Internet à très haut débit, la montée en puissance des outils électroniques
connectés – smartphones en particulier – et la réduction des coûts de stockage de l’informa-
tion, la production de données a connu un bond vertigineux. Les objets connectés (Internet
Of Things – IOT), les serveurs web, les smartphones, les interactions sur les réseaux sociaux…
Toutes ces activités génèrent des données dans différentes formes et tailles. C’est la propriété
de variété énoncée dans les 3V des big data.
Malgré l’abondance des données, nous pouvons les regrouper en trois grandes familles :
• structurées ;
• semi-structurées ;
• non structurées.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 75 Monday, August 24, 2020 8:17 AM

Études de cas
75
CHAPITRE 7

Données structurées
Elles répondent à un schéma précis et connu :
• bases de données relationnelles ;
• fichiers textuels standards (CSV, XML, JSON).
L’intégrité de ce schéma peut être vérifiée grâce à des contraintes qu’on définit préalablement.
L’avantage de ces données est qu’elles sont faciles à manipuler et traiter.

On peut contraindre les fichiers XML grâce à un schéma DTD ou XSD. Toutefois, les fichiers CSV et JSON
sont plus utilisés pour transporter ou stocker des informations, sans qu’il soit possible de leur imposer
des contraintes d’intégrité. Dans ce sens, on peut les considérer comme des données semi-structurées.

Données semi-structurées
Elles répondent plus ou moins à un schéma, mais sans obligation de s’y contraindre :
• fichiers XML, CSV, JSON ;
• bases de données NoSQL.
S’affranchir partiellement d’un schéma facilite l’évolution du modèle de données ; en contre-
partie, on a moins de contrôle sur l’intégrité des données.

Données non structurées


Elles sont généralement les plus complexes à traiter car elles peuvent prendre des formes
différentes :
• enregistrements médias : photos, images, vidéos et enregistrements audio ;
• données textuelles non structurées : e-mails, transcriptions de texte, journaux applicatifs ;
• activités sur les réseaux sociaux ;
• données remontées par les capteurs électroniques et objets connectés.
La complexité de traitement de ces données tient surtout à leur absence de structure et à leur
format souvent binaire (surtout les données médias). Il faut donc les traiter au cas par cas
pour en tirer de la valeur ajoutée.

Légalité d’accès aux données


Avant de commencer à exploiter les différentes données, il faut se poser la question de la léga-
lité d’accès à ces dernières. Les données personnelles des utilisateurs (nom, prénom, adresse
postale, coordonnées bancaires…) ne doivent être accessibles qu’aux personnes de l’entreprise
habilitées à cet effet.
Un data scientist souhaitant mettre en place un système prédictif conduit généralement ses
travaux dans un environnement de développement dédié. En principe, ce dernier est moins
sécurisé qu’un serveur de production. Pour accéder à des données utiles à l’entraînement d’un
modèle, une entreprise doit obtenir l’aval de son service juridique et mettre en place des pro-
cédures d’anonymisation des données sensibles avant de les mettre à disposition sur des envi-
ronnements moins sécurisés.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 76 Monday, August 24, 2020 8:17 AM

Partie pratique
76
DEUXIÈME PARTIE

3. Exploration numérique et visuelle des données pour mieux


les comprendre
Après l’assemblage d’un jeu de données cohérent qui servira à l’apprentissage automatique, il
est temps de l’explorer. Cette phase donne un aperçu sur la composition des données, leur
répartition et les éventuelles corrélations qui pourraient se manifester entre les différentes
variables.
L’exploration numérique caractérise la distribution des données en s’appuyant sur des calculs
de statistiques : moyenne, quantiles, variance, écart-type… Elle recherche également d’éven-
tuelles corrélations entre les variables (ex. indice r de Pearson).
L’exploration visuelle donne un autre angle de vue sur les données car le cerveau humain
appréhende mieux des données visuelles que numériques. Elle consiste à étudier des
diagrammes comme les nuages de points, les histogrammes, les diagrammes camembert et
d’autres. Pour les jeux de données comprenant beaucoup de variables explicatives, les tech-
niques de réduction de dimension sont utiles pour visualiser des relations.

4. Préparation des données pour les algorithmes d’apprentissage


automatique
Les algorithmes d’apprentissage automatique ont souvent des prérequis sur les données en
entrée pour garantir un meilleur apprentissage :
• taille du jeu de données ;
• complétude du jeu de données ;
• formatage des données ;
• concordance entre les prérequis de l’algorithme et les propriétés statistiques du jeu de
données.

Taille du jeu de données


L’apprentissage chez l’être humain est assez rapide et intuitif. Si on montre une pomme à un
bébé, il saura, éventuellement après plusieurs essais, reconnaître des pommes dans différentes
formes et couleurs.
L’apprentissage automatique n’en est pas encore à cette prouesse. Même pour un exemple relati-
vement simple, les algorithmes ont besoin de nombreuses observations (souvent quelques mil-
liers) afin de produire un modèle satisfaisant. Par conséquent, il est nécessaire de fournir un jeu
de données suffisamment grand et représentatif pour espérer des résultats probants.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 77 Monday, August 24, 2020 8:17 AM

Études de cas
77
CHAPITRE 7

Complétude du jeu de données


Pratiquement tous les algorithmes d’apprentissage automatique tolèrent mal les données
manquantes dans un jeu de données. Trois stratégies s’offrent à un data scientist pour traiter
les données manquantes :
• suppression des observations comportant des données manquantes ;
• suppression des colonnes (variables explicatives) comportant des données manquantes ;
• remplacement des données manquantes par des valeurs estimées (médiane, moyenne ou
une valeur fournie par un expert humain).
Le choix entre ces stratégies prend en considération la taille du jeu de données, le taux de
données manquantes et la complexité de la problématique métier à traiter.

Formatage des données


Les algorithmes d’apprentissage automatique s’attendent à des données au format matriciel.
Chaque ligne correspond à une observation et les colonnes sont les caractéristiques. Si le jeu
de données se compose de M observations, chacune étant définie par N variables explicatives,
alors la matrice de données est de dimension M × N.
À titre d’exemple, imaginons qu’on dispose d’un jeu de données d’individus décrits par leurs
taille, poids, sexe et couleur des yeux. Chaque individu aura des valeurs pour toutes ces
caractéristiques ; on appelle cette observation un vecteur de caractéristiques.
En plus du formatage, le jeu ne doit comporter que des données numériques (qu’elles soient
ordinales, catégorielles ou continues). Si les données contiennent des valeurs autres que
numériques, il faut procéder à des encodages de ces valeurs dans un format numérique avant
de les fournir à l’algorithme d’apprentissage.
Prenons par exemple la caractéristique « sexe », qui prend la valeur « M » pour les hommes et
« F » pour les femmes. Un encodage possible de cette caractéristique serait de donner la
valeur « 0 » aux hommes et « 1 » aux femmes. En procédant ainsi, on aura encodé numérique-
ment une variable catégorielle.

Concordance entre les prérequis de l’algorithme et les propriétés


statistiques du jeu de données
Mise à échelle et standardisation
Les données fournies aux algorithmes d’apprentissage automatique doivent respecter les pré-
requis de ces derniers. Notamment, plusieurs d’entre eux s’attendent à ce que les données
soient normalisées. Grâce aux techniques de normalisation et de mise à échelle, on effectue
des transformations sur le jeu de données afin de se conformer aux prérequis algorithmiques.

Traitement des valeurs aberrantes


Les valeurs aberrantes sont celles qui s’écartent considérablement de la moyenne des valeurs
observées d’une caractéristique. Il faut tout d’abord comprendre pourquoi ces données sont
G67951-Les data sciences en 100 questions réponses-INT-.book Page 78 Monday, August 24, 2020 8:17 AM

Partie pratique
78
DEUXIÈME PARTIE

présentes dans le jeu de données. S’agit-il d’une erreur de valeur suite à une défaillance d’un
capteur ou d’une erreur de saisie ? S’agit-il d’une valeur anormalement grande ou petite, mais
qui a du sens du point de vue du problème qu’on traite ? Selon les réponses, l’expert décidera
de garder ou non ces données dans le jeu d’entraînement.
À titre d’illustration, imaginez qu’on souhaite mettre en place un système d’estimation de
prix d’appartement. Dans le jeu d’entraînement, on dispose des descriptions de studios,
d’appartements de deux et trois pièces et des prix correspondants. Imaginez qu’on trouve dans
ce même jeu de données la description du château de Versailles et le prix correspondant (pro-
bablement exorbitant). Pensez-vous qu’il serait judicieux de garder cette observation avant
d’entraîner un modèle censé prédire des prix d’appartements conventionnels ? Vous l’avez
deviné, la réponse est non ; il s’agit certainement d’une valeur aberrante qui ajoute du bruit à
l’apprentissage. Le choix judicieux serait de supprimer cette observation du jeu de données.

5. Sélection d’une métrique de performance


Mesurer la performance d’un modèle revient à estimer sa capacité de généralisation sur des
observations nouvelles. Ainsi, on aura un feedback rapide sur le modèle et on observera si les
changements qu’on opère sur ce dernier améliorent ou pénalisent ses performances.
Il existe plusieurs métriques de performance. Chacune est utile à une situation particulière.
Certaines sont adaptées pour la classification, d’autres pour la régression, et il en existe aussi
pour le partitionnement.
Le choix d’une métrique dépend avant tout de la problématique à résoudre et des propriétés
du jeu de données. Le choix de la métrique doit être réfléchi et figé une fois fixé. Ainsi, nous
pourrons comparer les modèles obtenus avec une règle de comparaison similaire.
Par exemple, supposons que vous soyez amené à mettre en place un système prédictif de
détection de tumeurs cancéreuses et que votre jeu de données d’entraînement soit composé de
95 % d’observations de tumeurs bénignes et 5 % de tumeurs malignes. Il s’agit de modéliser
un système de classification binaire (deux valeurs possibles : tumeur maligne ou bénigne). Si
vous prenez la justesse (accuracy) comme métrique de performance, votre choix risque de ne
pas être correct, car vous aurez un bon score même si vous créez un modèle qui répond tout le
temps qu’une tumeur est bénigne. En effet, la métrique de justesse mesure le pourcentage des
bonnes réponses par rapport à toutes les classifications à effectuer.

6. Sélection d’un modèle et son entraînement


La sélection d’un algorithme d’apprentissage automatique est fonction de la complexité du
jeu de données et de sa taille. Plus le phénomène à modéliser est complexe, plus les données
le sont aussi. Par conséquent, il faut choisir un modèle capable de s’adapter.
Quand on modélise un phénomène d’une complexité simple à modérée, on peut entrevoir les
relations qui régissent les variables, notamment grâce à l’exploration numérique et visuelle.
Dans ces situations, on peut choisir d’expérience un algorithme qui produira une fonction de
prédiction s’adaptant à notre jeu de données.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 79 Monday, August 24, 2020 8:17 AM

Études de cas
79
CHAPITRE 7

Figure 7–3
Visualisation d’un jeu de données
à deux dimensions.

Imaginez que le nuage de points de la figure 7–3 soit votre jeu d’entraînement. Puisqu’il est en
deux dimensions, vous pouvez confirmer visuellement que le meilleur modèle de régression
possible serait un polynôme de faible degré (une fonction parabole éventuellement). Imaginez
maintenant que votre modèle soit de grande taille avec des milliers (voire des millions d’obser-
vations) et avec un grand nombre de caractéristiques. Il vous est tout simplement impossible
de connaître préalablement la forme de la fonction de prédiction la plus convenable.
Une façon de procéder pour élaborer un modèle prédictif est d’entraîner plusieurs algo-
rithmes sur ce jeu d’apprentissage, d’en mesurer la performance via la métrique retenue et de
ne garder que les 3 à 5 plus prometteurs.
Pour une problématique de régression par exemple, vous avez une multitude d’algorithmes à
disposition : régression linéaire, régression polynomiale, K plus proches voisins, SVM, forêts
aléatoires, etc. Certains sont paramétriques avec un fort biais (sujets au sous-ajustement) et
d’autres sont capables de calculer des fonctions de prédiction complexes avec une plus grande
variance (sujets au surajustement).

7. Ajustement et affinement du modèle obtenu


À ce stade, vous avez une courte liste d’algorithmes qui vous semblent les plus prometteurs
sur votre jeu d’apprentissage. Il est temps, pour chacun d’eux, de trouver les bons hyperpara-
mètres grâce à la validation croisée.
L’optimisation du modèle peut se faire en cherchant la meilleure combinaison d’hyperpara-
mètres de l’algorithme d’apprentissage. Notez bien qu’on parle d’hyperparamètres de l’algo-
rithme d’apprentissage et non pas des paramètres du modèle. À titre d’exemple, si on entraî-
nait un algorithme de forêt aléatoire (random forest), un de ses hyperparamètres est la
profondeur des arbres générés.
La recherche de la bonne combinaison des hyperparamètres se fait sur le jeu de données dédié
à la validation croisée. La bibliothèque Scikit-Learn fournit des fonctions et des classes per-
G67951-Les data sciences en 100 questions réponses-INT-.book Page 80 Monday, August 24, 2020 8:17 AM

Partie pratique
80
DEUXIÈME PARTIE

mettant de rechercher automatiquement les combinaisons d’hyperparamètres convenables :


GridSearchCV et RandomizedSearchCV du module sklearn.model_selection.
Une fois que nous avons trouvé les meilleures combinaisons d’hyperparamètres pour les algo-
rithmes retenus et les modèles prédictifs correspondants, on retient celui qui a les meilleures
performances et on l’applique sur le jeu de test.

8. Validation sur le jeu de test


Après avoir trouvé un modèle plausible, il est temps de voir ses performances sur des données
nouvelles. C’est à ce stade qu’on utilise le jeu de test.
Cette étape ne comporte rien de particulier. On utilise le modèle obtenu pour effectuer des
prédictions sur les observations du jeu de test. Grâce à la métrique retenue au démarrage du
projet, on calcule la performance du modèle sur ces observations.

Si le modèle ayant un bon score de performance sur le jeu d’entraînement obtient une valeur largement
moins bonne sur le jeu de test, c’est qu’on se retrouve certainement dans la situation de surajustement
(Overfitting) ; c’est une indication que le modèle se généralise mal sur des données nouvelles.

Après avoir franchi toutes ces étapes, vous disposez d’un modèle prédictif opérationnel. Vous
pouvez vous en servir sur des cas réels. Finalement, notez qu’un projet de data science avance
de façon heuristique ; rien ne vous empêche d’expérimenter encore pour tenter d’améliorer le
score du jeu de test.

9. Présentation de la solution
Vous voilà satisfait du modèle que vous avez mis en place et rassuré sur sa capacité à effectuer
de bonnes prédictions. Au-delà du côté technique de son travail, le data scientist doit avoir la
faculté de présenter des concepts complexes à des gens qui n’ont pas forcément un bagage
technique. Dans cette optique, il est judicieux de présenter aux différents intervenants du
projet les travaux effectués, les hypothèses retenues, la solution trouvée, ses limites et les
éventuels axes d’amélioration à venir.
Le format de la présentation reste à la discrétion de l’expert et fonction de ses interlocuteurs.
Le taux de précision du modèle et son impact sur les affaires de l’entreprise intéressera certai-
nement davantage la Direction que les limitations d’un algorithme de classification.

10. Mise en production et suivi de la solution


Votre solution est prête, vous avez le feu vert pour déployer le modèle en utilisation réelle.
Comment vous y prendre ?
Vous devez rendre votre modèle accessible et utilisable par les consommateurs de ce dernier.
Dans ce sens, vous devez offrir un moyen de communication conventionnel et compréhen-
sible pour permettre aux gens d’interagir avec le modèle même sans être expert.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 81 Monday, August 24, 2020 8:17 AM

Études de cas
81
CHAPITRE 7

Un moyen assez commun pour déployer votre modèle est d’exposer des API REST. Grâce à
l’architecture REST, il est possible de communiquer avec un service via le protocole HTTP
(comme si vous demandiez une page web) et d’invoquer les opérations disponibles. Notamment,
un service REST exposant un modèle prédictif va proposer une opération – prédire par
exemple – qui prendra en entrée les caractéristiques d’une nouvelle observation et donnera en
sortie le résultat de la prédiction. Ce service pourra être déployé en production sur les serveurs de
l’entreprise ou sur un service de cloud comme Amazon Web Services ou encore Microsoft Azure.
Notez que l’élaboration d’un tel service REST est généralement du ressort d’un ingénieur
logiciel.

Installation des outils de travail

Installation de l’interpréteur Python


Tout d’abord, vous aurez besoin de l’interpréteur Python. À l’heure où j’écris ces lignes, le
langage est à sa version majeure n° 3. Pour les exemples de code de ce livre, nous allons uti-
liser la version 3.7.6. Vous pouvez la télécharger via le lien suivant : https://www.python.org/
downloads/release/python-376/.

En fonction de votre système d’exploitation, vous devez choisir la bonne version de l’installeur. Privilé-
giez la version 64 bits.
Si vous travaillez sur Linux ou mac OS, n’utilisez pas la version Python qui vient par défaut avec le sys-
tème d’exploitation. Généralement, il s’agit d’une 2.7 obsolète.

Une fois l’installation achevée, assurez-vous qu’elle s’est bien déroulée via la commande
suivante :

Python3 --version

Récupération des sources


Les exemples de code de ce livre sont téléchargeables sur GitHub à l’adresse suivante : https://
github.com/ybenzaki/essentiel-ds-100qr. Le code source est dans un format Jupyter Notebooks (voir
plus loin).
Si vous avez un compte GitHub, il suffit d’utiliser la commande git clone [url-repo-git],
dans le répertoire de votre choix de votre ordinateur. Sinon, créez un compte sur https://
github.com.

Si vous ne disposez pas de l’outil git, vous pouvez l’installer ou utiliser l’option clone or download
depuis la page web du projet sur le site de GitHub.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 82 Monday, August 24, 2020 8:17 AM

Partie pratique
82
DEUXIÈME PARTIE

Figure 7–4
Interface GitHub du projet.

Installation et mise à jour de PIP


Il existe une multitude de bibliothèques utiles quand on développe des systèmes de Machine
Learning, notamment Pandas, Scikit-Learn, Numpy et Matplotlib. Pour les télécharger, il faut
utiliser un gestionnaire de dépendances comme PIP ou conda.

Un gestionnaire de dépendances est un outil en ligne de commande qui sert à télécharger une biblio-
thèque et ses dépendances. C’est notamment via cet outil qu’on supprime une dépendance ou qu’on la
met à jour.

PIP (Package Installer for Python) est l’outil le plus utilisé quand il s’agit de gérer des dépen-
dances en Python et est installé par défaut avec la version 3.7 du langage. Pour le vérifier,
lancez la commande suivante :

python3 -m pip --version

Avant de l’utiliser, il est conseillé de le mettre à jour :

pip3 install --update pip3

Création d’un environnement de travail isolé


Lors d’un développement avec le langage Python, on est souvent amené à installer des biblio-
thèques, parfois incompatibles entre les différents projets. Pour éviter ce genre de conflits, il
est fortement recommandé de créer des environnements de développement isolés, ou envi-
ronnements virtuels (virtual environment), pour chacun des projets.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 83 Monday, August 24, 2020 8:17 AM

Études de cas
83
CHAPITRE 7

Un environnement virtuel regroupe généralement les dépendances du projet, ainsi que la ver-
sion de l’interpréteur Python utilisée. Pour créer un environnement virtuel, il existe une mul-
titude d’outils. Je recommande d’utiliser virtualenv, un utilitaire téléchargeable via PIP :

pip3 install -U virtualenv

Créons un environnement virtuel nommé my_env pour notre projet. Avant tout, placez-vous
dans le répertoire où vous avez téléchargé les codes sources depuis GitHub et lancez la com-
mande suivante :

virtualenv my_env

Maintenant que vous avez créé votre environnement virtuel, il faut l’activer ; toutes les
dépendances que vous téléchargez y sont alors sauvegardées et ne sont pas visibles pour un
autre environnement. C’est par ce procédé qu’on isole chaque projet Python.
Pour activer l’environnement virtuel, lancez l’une des commandes suivantes selon votre sys-
tème d’exploitation :

source my_env/bin/activate # Pour Linux et macOS


.\my_env\Scripts\activate # Pour Windows

Vous pouvez à tout moment désactiver un environnement virtuel avec deactivate.

Installation des dépendances


Maintenant qu’on dispose d’un environnement de travail isolé et activé, il reste à installer les
bibliothèques nécessaires pour le Machine Learning :

python3 -m pip install -U jupyter matplotlib numpy pandas scipy scikit-learn

Lancement du serveur Jupyter


Lançons Jupyter :

Jupyter notebook

Un serveur Jupyter démarre dans votre terminal et écoute sur le port 8888. Vous pouvez le
visiter en ouvrant votre navigateur web à l’adresse http://localhost:8888/ (généralement, le navi-
gateur s’ouvre automatiquement sur cette URL).
G67951-Les data sciences en 100 questions réponses-INT-.book Page 84 Monday, August 24, 2020 8:17 AM

Partie pratique
84
DEUXIÈME PARTIE

Présentation de Jupyter
Un notebook Jupyter est un fichier pouvant contenir un code de programmation et du texte
riche. Le code peut être en langage Python, mais aussi en R ou Julia. Le texte riche sert géné-
ralement à ajouter des explications et des illustrations. Jupyter est un outil plébiscité par les
experts car il facilite la communication des travaux effectués.
Lorsque vous êtes connecté à l’URL http://localhost:8888/, utilisez le bouton new et choisissez
Python 3. Un nouvel onglet apparaît, qui contient un nouveau notebook intitulé
Untitled.ipynb.

Figure 7–5
Interface Jupyter.

Un fichier notebook se compose de cellules, chacune contenant du code exécutable ou du texte


formaté.
Figure 7–6
Interface du notebook.

La figure 7–6 montre un notebook intitulé Mon_Premier_Notebook. La première cellule


(Entrée [1]) contient un code Python qui affiche le texte Bonjour le monde ! et la cellule sui-
vante attend de nouvelles instructions.
Une cellule peut contenir soit du code, soit du texte riche. Lorsqu’on appuie sur le bouton
Exécuter, cela envoie le contenu de la cellule au noyau de Jupyter, qui l’interprète et affiche le
résultat.

Pour plus d’informations sur l’outil Jupyter, rendez-vous sur la page suivante : https://jupyter.readthe
docs.io/en/latest/index.html.

À présent, vous avez un environnement prêt et configuré pour implémenter des modèles
d’apprentissage automatique. Il est temps de mettre la main dans le cambouis.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 85 Monday, August 24, 2020 8:17 AM

Études de cas
85
CHAPITRE 7

Présentation des études de cas


Nous allons présenter deux exemples d’élaboration de modèles prédictifs : une régression et
une classification. La méthodologie de travail sera similaire à celle évoquée dans les sections
précédentes.
Précisons que la section pratique de ce livre se veut une introduction à l’élaboration de
modèles prédictifs. Pour ne pas complexifier les exemples, certaines étapes ne sont pas cou-
vertes ou sont brièvement évoquées. De même, les jeux de données et les algorithmes
d’apprentissage choisis sont assez simples afin de mettre la lumière sur la méthodologie de
travail pour aborder des projets d’apprentissage automatique.

Régression linéaire

Présentation du problème
Suite à un questionnaire posé à un certain nombre d’individus, vous disposez d’un jeu de don-
nées contenant la taille (cm) de la personne ainsi que son poids (kg). Vous souhaitez
connaître s’il existe une corrélation entre ces deux données et, si oui, trouver une fonction
pour prédire le poids d’une personne en fonction de sa taille.
Au vu de la formulation du problème, nous remarquons qu’il s’agit d’un cas d’apprentissage
supervisé : pour chaque individu représenté par sa taille, nous avons le poids correspondant
(l’étiquette). Le poids est une variable continue (elle peut prendre une multitude de valeurs
possibles). Notre problème est donc une régression. Finalement, puisque nous avons une
seule variable explicative, on parle d’une régression linéaire univariée. Notez aussi que notre
jeu de données est de taille modeste. Il sera donc chargé entièrement en mémoire lors de
l’apprentissage. On parle d’un apprentissage en batch.

L’intérêt derrière l’élaboration d’un tel modèle est purement pédagogique ; il n’est donc pas nécessaire
d’analyser plus longuement les motivations de ce projet, d’autant plus que les données manipulées sont
fictives.

Récupération des données


Les données se trouvent dans un fichier CSV, que nous allons lire avec la fonction read_csv de
la bibliothèque Pandas :

import pandas as pd

def load_data():
return \
pd.read_csv("datasets/poids_taille_dataset.csv")
G67951-Les data sciences en 100 questions réponses-INT-.book Page 86 Monday, August 24, 2020 8:17 AM

Partie pratique
86
DEUXIÈME PARTIE

df = load_data()

print("La dimension de notre jeu de données ",


"(étiquettes incluses) est : ",
df.shape, "soit : ",
df.shape[1], "colonnes et ",
df.shape[0] , "lignes.")

La dimension de notre jeu de données (étiquettes incluses) est : (17, 2) soit : 2


colonnes et 17 lignes.

Nous avons défini une fonction load_data, qui utilise la fonction read_csv de la bibliothèque
Pandas. Le résultat renvoyé est un objet DataFrame stocké dans la variable df. Finalement, on
affiche un message après le comptage des lignes et des colonnes de notre jeu de données.

Exploration numérique et visuelle des données


Premier contact avec les données
Après le chargement des données, il est souvent utile de jeter un coup d’œil sur ces dernières.
Ainsi, nous avons une première idée sur ce que nous manipulons. La méthode head affiche les
premières lignes d’un jeu de données :

df.head(10)

Figure 7–7
Application de la méthode head.

Exploration visuelle du jeu de données


Le cerveau humain est incroyablement bon quand il s’agit de découvrir des tendances
visuelles. Nous pouvons tirer profit de cette faculté en visualisant notre jeu de données ; cela
nous donne une indication sur d’éventuelles corrélations entre les différentes variables.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 87 Monday, August 24, 2020 8:17 AM

Études de cas
87
CHAPITRE 7

Notre jeu de données se compose d’une variable explicative et d’une variable à expliquer (l’éti-
quette). Avec Matplotlib, nous allons représenter nos données par un nuage de points
(scatter plots).

import matplotlib.pyplot as plt

# Instruction spéciale pour afficher les images dans les notebooks


%matplotlib inline

plt.xlabel("Taille (en cm)", fontsize=14)


plt.ylabel("Poids (en kg)", fontsize=14)

plt.scatter(df["Taille"], df["Poids"],
marker='o', color="r")

Matplotlib est une bibliothèque Python qui sert à tracer et visualiser des données sous formes gra-
phiques. Elle propose de nombreux types de graphiques en deux et trois dimensions.

Figure 7–8
Visualisation du jeu de données
de produits industriels.

La méthode scatter sert à dessiner un nuage de points. Le premier paramètre représente les
valeurs des abscisses des différentes observations ; le second paramètre représente les ordon-
nées. Les méthodes xlabel et ylabel personnalisent la légende de chacun des axes.
Visuellement, on remarque qu’il y a bien une corrélation avec une tendance haussière entre les
variables taille et poids. Nous remarquons également un point en haut du diagramme qui est
loin des autres observations (une personne mesurant environ 180 cm et pesant 250 kg).

Exploration numérique des données


Le but de cette section est d’aller au-delà de la visualisation graphique en cherchant à com-
prendre les propriétés numériques de ce jeu de données.
Connaître les valeurs principales
Un premier contact exploratoire consiste à calculer les valeurs statistiques principales du jeu
de données.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 88 Monday, August 24, 2020 8:17 AM

Partie pratique
88
DEUXIÈME PARTIE

La méthode describe d’un DataFrame fournit un résumé des différentes caractéristiques statis-
tiques d’un jeu de données : nombre de valeurs, minimum, maximum, moyenne, médiane,
1er et 3e quartiles.

df.describe()

Figure 7–9
Application de la méthode describe.

Notez que la ligne std comporte la valeur de l’écart-type de chaque variable. Les lignes 25 %,
50 % et 75 % représentent respectivement les premier, deuxième et troisième quartiles (25e,
50e et 75e centiles) des deux variables. La ligne mean donne la valeur moyenne de chacune des
variables.
Corrélation entre les variables
À l’observation, nous avons remarqué une relation linéaire entre ces deux dernières. Nous
pouvons utiliser la corrélation r de Pearson pour nous en assurer. Pour rappel, ce coefficient
est limité entre -1 (corrélation linéaire négative) et 1 (corrélation linéaire positive) ; quand il
est proche de 0, cela indique qu’il n’y a pas de corrélation linéaire entre les deux variables.

(df.corr())["Poids"]

Figure 7–10
Calcul des coefficients de Pearson.

Nous avons une corrélation positive parfaite entre la variable Poids et elle-même, ce qui est
logique. On note également une corrélation de 0,5 entre le poids et la taille. Cela indique une
tendance haussière, mais très faible, entre ces deux variables. Cela peut sembler étrange,
puisque sur le graphique on voyait une corrélation visuelle bien franche. Cela est certaine-
ment dû à la valeur aberrante. Tentez de supprimer l’enregistrement correspondant et
relancez le calcul pour voir la différence.
Le jeu de données étant petit, notre analyse numérique s’achève ici.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 89 Monday, August 24, 2020 8:17 AM

Études de cas
89
CHAPITRE 7

Préparation des données pour l’algorithme d’apprentissage automatique


À ce stade, nous allons préparer notre jeu de données en vue de le fournir à un algorithme
d’apprentissage supervisé :
• traiter les valeurs manquantes ;
• traiter les valeurs aberrantes ;
• mettre les variables à l’échelle.

Traitement des valeurs manquantes


En regardant le fichier CSV contenant les données, on remarque qu’il n’y a pas de données
manquantes. Nous n’avons donc rien à faire dans ce cas. Notez que, sur des jeux de données
plus complexes, il vous faudra trancher en fonction de votre expertise : supprimer les données
manquantes ou les remplacer par des valeurs qui ne modifient pas sensiblement les caractéris-
tiques et les corrélations.

Traitement des valeurs aberrantes


En regardant le nuage de points de la figure 7–8, on remarque un point solitaire en haut. Il
s’agit d’un individu pesant 250 kg pour un peu plus de 180 cm. Cette observation est vrai-
semblablement une erreur, due peut-être à une erreur de saisie, ou à une défaillance d’un cap-
teur (balance).
Cette observation n’apporte pas de valeur et ajoute au contraire du bruit à notre jeu d’entraî-
nement. Supprimons-la :

to_delete_ = df[df["Poids"] == 250].index

df.drop(to_delete_, axis = 0, inplace=True)

plt.xlabel("Taille (en cm)", fontsize=14)


plt.ylabel("Poids (en kg)", fontsize=14)
plt.scatter(df["Taille"], df["Poids"],
marker='o', color="r")

Figure 7–11
Visualisation du jeu de données
corrigé.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 90 Monday, August 24, 2020 8:17 AM

Partie pratique
90
DEUXIÈME PARTIE

Ce code sélectionne dans un premier temps les indices des observations ayant un poids égal à
250 kg (il y en a une seule). Grâce à la méthode drop, on supprime cette observation du
DataFrame. Ensuite, on crée un nouveau nuage de points.

Mise à l’échelle des variables


La mise à l’échelle des différentes variables est souvent recommandée en apprentissage auto-
matique. En effet, les algorithmes d’apprentissage ont tendance à mieux converger et à offrir
de meilleures performances quand les données sont du même ordre de grandeur et normali-
sées. Le jeu de données que nous étudions comporte une seule variable explicative ; il n’est
donc pas nécessaire d’effectuer une mise à échelle.

Sélection d’une métrique de performance


Il faut choisir une métrique pour évaluer la capacité d’un modèle à s’adapter à un jeu d’entraî-
nement et surtout estimer sa capacité de généralisation.
Il existe plusieurs métriques de performances utilisables pour la régression, notamment l’erreur
absolue moyenne (Mean Absolute Error – MAE) et la racine de l’erreur quadratique moyenne
(Root Mean Squared Error – RMSE). Nous retiendrons cette dernière pour notre exemple.

Sélection d’un modèle et son entraînement


Pour calculer un modèle prédictif, il existe plusieurs algorithmes d’apprentissage
automatique : régression linéaire, K plus proches voisins, arbres aléatoires, etc. Selon la com-
plexité du modèle, il est souvent judicieux d’entraîner plusieurs algorithmes et de retenir ceux
qui semblent les plus prometteurs.
L’algorithme de régression linéaire est simple. Il part d’une hypothèse de simplification forte :
la donnée en entrée est corrélée linéairement avec la variable à expliquer. Visuellement, dans
la figure 7–11, cette hypothèse semble se vérifier. C’est l’algorithme que nous allons retenir
pour calculer un modèle prédictif.
La bibliothèque Scikit-Learn implémente de nombreux algorithmes d’apprentissage automa-
tique. Il suffit d’importer celui qui vous intéresse dans votre code Python. Le calcul d’un
modèle prédictif est facilité et la complexité de son calcul nous est cachée. Ainsi, nous
sommes tout simplement des consommateurs de la bibliothèque.
Dans le code qui suit, on importe le module linear_model de Scikit-Learn et on instancie un
objet de la classe LinearRegression. La méthode fit sert à calculer un modèle prédictif.

# On sépare la variable explicative (X) de la variable à expliquer (y)


X = df[["Taille"]]
y = df[["Poids"]]
import sklearn.linear_model as lm

lin_reg = lm.LinearRegression()

lin_reg.fit(X, y)
G67951-Les data sciences en 100 questions réponses-INT-.book Page 91 Monday, August 24, 2020 8:17 AM

Études de cas
91
CHAPITRE 7

LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None, normalize=False)

Et voilà ! Nous venons de calculer notre premier modèle prédictif.


Nous pouvons désormais tester notre modèle sur le jeu d’entraînement afin de comparer les
poids prédits par l’algorithme avec les vrais (les étiquettes).
Grâce à la méthode predict, on calcule les prédictions de poids des différents individus ; le
résultat est stocké dans la variable predictions. Par la suite, on crée un nouveau DataFrame
contenant la taille d’une personne et la valeur prédite par l’algorithme. Enfin, grâce à la
méthode join, on fusionne les deux DataFrame dans une variable df_comparaison et on affiche
ce tableau par la méthode head. Ainsi, nous sommes en mesure de comparer les vraies éti-
quettes et les valeurs prédites.

predictions = lin_reg.predict(X)
predictions
plt.scatter(df["Taille"], df["Poids"],
marker='o', color="r")
plt.scatter(df["Taille"], pd.DataFrame(predictions),
marker='*', color="b")

df1 = df.copy()
df_predictions = pd.DataFrame(predictions,
columns=["Poids_prédit"])

df_comparaison = df1.join(df_predictions)
df_comparaison.head(10)

Dans le même code, on affiche dans un nuage de points les valeurs prédites pour tracer le modèle obtenu
(figure 7–13).

Figure 7–12
Application de la méthode head.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 92 Monday, August 24, 2020 8:17 AM

Partie pratique
92
DEUXIÈME PARTIE

Figure 7–13
Visualisation du modèle obtenu.

Calcul du score RMSE


Le calcul de la métrique RMSE est simplifié grâce à des fonctions utilitaires du module
metrics de Scikit-Learn.

import numpy as np
from sklearn.metrics import mean_squared_error

lin_mse = mean_squared_error(y, predictions)


lin_rmse = np.sqrt(lin_mse)
lin_rmse

8.145264130017594

Grâce à la classe mean_squared_error du module sklearn.metrics, il est possible de calculer


l’erreur quadratique moyenne. Ensuite, nous appliquons tout simplement la méthode sqrt du
module numpy pour calculer la racine carrée de l’erreur quadratique moyenne (RMSE).
Remarquez que, pour calculer la RMSE, il faut donner les étiquettes (le tableau de valeurs
stocké dans la variable y) et les prédictions du modèle de régression linéaire stockées dans la
variable predictions.

Calculer des prédictions sur de nouvelles variables


Comme notre exemple contient peu d’observations, nous ne l’avons pas découpé en jeu
d’apprentissage et jeu d’entraînement. Cette pratique est pourtant recommandée en data
science afin de mieux évaluer les performances d’un modèle prédictif.
Pour évaluer notre modèle sur des données nouvelles, nous allons fournir des valeurs qui n’étaient
pas présentes dans le jeu d’apprentissage. On va prédire le poids de produits industriels pesant
réellement 80 kg, 62 kg et 79 kg pour des tailles respectives de 154 cm, 120 cm et 170 cm.

valeurs_a_predire = [[154], [120], [170]]

predicted = lin_reg.predict(valeurs_a_predire)
G67951-Les data sciences en 100 questions réponses-INT-.book Page 93 Monday, August 24, 2020 8:17 AM

Études de cas
93
CHAPITRE 7

print (list(zip (valeurs_a_predire, predicted)))

df_test_predictions = \
pd.DataFrame(valeurs_a_predire,
columns = ["tailles_a_predire"])
df_test_predictions = \
df_test_predictions.join(pd.DataFrame(predicted,
columns=["Poids_predit"]))
df_test_predictions

[([154], array([76.4204746])),
([120], array([60.37244014])),
([170], array([83.97249082]))]

Figure 7–14
Calcul des prédictions
sur le jeu d’entraînement.

Ajoutons ces valeurs à notre jeu de test dans un nuage de points (triangles dans la figure 7–15).

plt.scatter(df["Taille"], df["Poids"],
marker='o', color="r")
plt.scatter(pd.DataFrame(valeurs_a_predire),
predicted, marker='^', color="green")

Figure 7–15
Affichage des prédictions
du jeu de test.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 94 Monday, August 24, 2020 8:17 AM

Partie pratique
94
DEUXIÈME PARTIE

Calcul du score RMSE


Le score RMSE du jeu de test se calcule comme celui du jeu d’apprentissage. Dans le code
suivant, on fournit les étiquettes des individus – les poids du jeu de test.

import numpy as np
from sklearn.metrics import mean_squared_error

lin_mse = mean_squared_error((80, 62, 79), predicted)


lin_rmse = np.sqrt(lin_mse)
lin_rmse

3.6600372539575723

Régression logistique

Présentation du problème
Nous disposons d’un certain nombre d’observations représentant une campagne publicitaire
e-commerce : sexe de la personne, son âge, estimation du salaire et si elle a effectué un achat
ou non. Nous souhaitons élaborer un modèle qui modélise la susceptibilité de passage à l’acte
d’achat en fonction des caractéristiques du client.
Au vu de la formulation du problème, nous remarquons qu’il s’agit d’un cas d’apprentissage
supervisé : pour chaque individu représenté par ses caractéristiques, nous disposons de l’éti-
quette correspondante (achat ou non). Notre problème est donc une classification. Finale-
ment, puisque nous avons deux possibilités pour l’étiquette, on parle d’une régression logis-
tique binaire. Notez que notre jeu de données est de taille modeste. Il sera donc chargé
entièrement en mémoire lors de l’apprentissage ; on parle d’un apprentissage en batch.

L’intérêt derrière l’élaboration d’un tel modèle est purement pédagogique ; il n’est donc pas nécessaire
d’analyser plus longuement les motivations de l’entreprise, d’autant plus que les données manipulées
sont fictives.

Récupération des données


Les données se trouvent dans un fichier CSV. Nous les récupérons avec la fonction read_csv
de Pandas :

import pandas as pd

def load_data():
return \
pd.read_csv("datasets/Social_Network_Ads_new.csv",
sep = ";")
G67951-Les data sciences en 100 questions réponses-INT-.book Page 95 Monday, August 24, 2020 8:17 AM

Études de cas
95
CHAPITRE 7

df = load_data()

print("La dimension de notre jeu de données ",


"(étiquettes incluses) est : ",
df.shape, "soit : ",
df.shape[1], "colonnes et ",
df.shape[0], "lignes.")

La dimension de notre jeu de données (étiquettes incluses) est : (400, 4) soit : 4


colonnes et 400 lignes.

Comme dans l’exemple de la régression linéaire, nous avons défini une fonction load_data,
qui utilise la fonction read_csv de Pandas. Le résultat renvoyé est un objet DataFrame stocké
dans la variable df. Finalement, on affiche un message après comptage des lignes et des
colonnes de notre jeu de données.

Exploration numérique et visuelle des données


Premier contact avec les données
Affichons les premières lignes du jeu de données avec la méthode head :

df.head(10)

Figure 7–16
Application de la méthode head.

À première vue, on remarque une différence dans les types de données : la variable Gender
contient des chaînes de caractères, alors que Age et EstimatedSalary sont des variables numé-
riques. On remarque aussi que l’ordre de grandeur du salaire est différent de celui de l’âge.
Finalement, la variable Purchased est qualitative (une modalité) et binaire (deux valeurs
possibles : 0 ou 1).
G67951-Les data sciences en 100 questions réponses-INT-.book Page 96 Monday, August 24, 2020 8:17 AM

Partie pratique
96
DEUXIÈME PARTIE

Exploration visuelle du jeu de données


Notre jeu de données se compose de trois variables explicatives ; nous ferons appel aux histo-
grammes pour en visualiser la distribution. Pandas offre la méthode utilitaire hist de la classe
DataFrame, qui s’appuie en coulisse sur Matplotlib pour dessiner les histogrammes.

%matplotlib inline
import matplotlib.pyplot as plt
df.hist(bins=10, figsize=(20,15))
plt.show()

Figure 7–17 Exploration visuelle des données par histogrammes.

La première chose qu’on remarque est que la méthode hist ignore automatiquement les
valeurs non numériques (la variable Gender). On note aussi que l’histogramme de la variable
Purchased ne prend que deux valeurs, ce qui est logique puisqu’il s’agit d’une variable qualita-
tive. Par ailleurs, la variable Age répond plus ou moins à une loi normale (forme en cloche).
Finalement, le salaire des personnes du jeu de données oscille entre 20 000 et 90 000, sauf
environ 80 observations qui ont une estimation de salaire à plus de 90 000.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 97 Monday, August 24, 2020 8:17 AM

Études de cas
97
CHAPITRE 7

Exploration numérique des données


Connaître les valeurs principales
Invoquons la méthode describe du DataFrame pour obtenir un résumé des différentes caracté-
ristiques statistiques du jeu de données :

df.describe()

Figure 7–18
Application de la méthode describe.

Pour la variable qualitative Purchased, les valeurs statistiques calculées (sauf le nombre
d’observations) n’ont pas de sens.
On note aussi que les valeurs du 3e et du 1er quartiles du salaire sont respectivement de 88 000
et 43 000 avec une médiane de 70 000, ce qui laisse soupçonner une symétrie entre les valeurs
de part et d’autre de la médiane. Finalement, on remarque que, pour les variables Age et
EstimatedSalary, la moyenne et la médiane sont assez proches, ce qui suggère que les distribu-
tions de données sont assez compactes et qu’il y a peu de chance qu’on retrouve des valeurs
extrêmes.
Corrélation entre les variables
Calculons le coefficient r de Pearson pour voir s’il y a des corrélations entre les variables :

df[["Age","EstimatedSalary"]].corr(method="pearson")

Figure 7–19
Calcul du coefficient de corrélation
de Pearson.

Nous avons une corrélation positive parfaite entre la variable Age et elle-même, ainsi qu’entre
EstimatedSalary et elle-même, ce qui est logique. On note également une corrélation haus-
sière très faible de 0,155 entre l’âge et le salaire ; plus on avance en âge, plus on gagne
d’argent, sans toutefois que l’augmentation ne soit significative.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 98 Monday, August 24, 2020 8:17 AM

Partie pratique
98
DEUXIÈME PARTIE

Préparation des données pour l’algorithme d’apprentissage automatique


Traitement des valeurs manquantes
En regardant le fichier CSV, on remarque qu’il n’y a pas de données manquantes. Nous
n’avons donc rien à faire pour cet exemple lors de cette étape.

Traitement des valeurs aberrantes


Suite à notre exploration visuelle et numérique du jeu de données, nous n’avons pas remarqué
de valeurs extrêmes. Nous n’avons donc aucun traitement de valeurs aberrantes à réaliser.

Mise à échelle des variables


Nous avons constaté lors de notre analyse des données que deux variables numériques ont des
ordres de grandeurs différents : Age et EstimatedSalary. Un moyen de les mettre à l'échelle est
de les normaliser grâce à la classe StandardScaler du module sklearn.preprocessing.
La standardisation des deux variables sera faite lors de l’instanciation d’un pipeline Scikit-
Learn. Le code Python de création de ce dernier sera présenté plus loin.

Pipeline en Scikit-Learn
Scikit-Learn propose la classe Pipeline pour gérer les transformations de données. Le constructeur de la
classe prend en argument un tableau de transformateurs (classe de Scikit-Learn proposant une méthode
fit_transform), à l’exception du dernier élément, qui doit être un estimateur (classe de Scikit-Learn
comportant la méthode fit).
Pour plus d’informations sur les pipelines : https://scikit-learn.org/stable/modules/generated/
sklearn.pipeline.Pipeline.html.

Traitement des variables qualitatives


Le jeu de données comporte la variable qualitative Gender. Elle comporte deux modalités,
Male et Female. Pour utiliser cette variable dans un algorithme d’apprentissage automatique, il
faut la transformer en valeurs numériques. Une technique d’encodage consiste à attribuer une
valeur numérique par modalité. Une autre façon de procéder est d’utiliser l’encodage
disjonctif complet (one hot encoding) : la technique consiste à créer une variable numérique
binaire par modalité. Ainsi, pour notre variable Gender qui comporte deux valeurs possibles,
nous allons créer deux nouvelles variables binaires. Pour une femme, la première sera valorisée
à 1 et l’autre à 0 ; pour un homme, ce sera l’inverse. Dans tous les cas, on aura, pour une
observation donnée, une et une seule des deux variables valorisées à 1. Plus généralement, si
une variable qualitative prend N valeurs possibles, alors on créera N nouvelles variables avec la
même logique de valorisation.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 99 Monday, August 24, 2020 8:17 AM

Études de cas
99
CHAPITRE 7

La classe OneHotEncoder de Scikit Learn met en place l’encodage disjonctif complet. Nous
allons déclarer et appliquer cette transformation dans un pipeline comportant aussi le traite-
ment de standardisation décrit dans la section précédente.

# Instanciation d'un objet de la classe StandardScaler


# (pour la normalisation)
num_pipeline = Pipeline([
('std_scaler', StandardScaler())])

cat_attribs = ["Gender"]
num_attribs = ["Age","EstimatedSalary"]

full_pipeline = ColumnTransformer([
("num", num_pipeline, num_attribs),
# Instanciation d'un OneHotEncoder
("cat", OneHotEncoder(), cat_attribs)])
# Transformations pour l'algorithme RL
X_tr = full_pipeline.fit_transform(pd1)

Pour plus d’informations sur le codage disjonctif complet (one hot encoding) : https://fr.wikipedia.org/
wiki/Codage_disjonctif_complet.

Finalement, on utilise la classe ColumnTransformer pour agréger les données normalisées avec
la variable qualitative Gender encodée numériquement.
Dans le code précédent, on crée un premier pipeline stocké dans la variable num_pipeline. Il
comporte une seule transformation, la standardisation, grâce à l’instanciation de la classe
StandardScaler. Par la suite, on crée un pipeline stocké dans la variable full_pipeline, qui se
base sur le premier pipeline et instancie un objet de type OneHotEncoder pour l’encodage de la
variable qualitative.
Enfin, on utilise la méthode fit_transform du pipeline pour transformer le DataFrame et récu-
pérer les données transformées dans la variable X_tr. Désormais, on a un jeu d’apprentissage
préparé, normalisé et utilisable par l’algorithme de classification.

Sélection d’une métrique de performance


Nous allons nous servir de la métrique de justesse (accuracy), qui calcule le pourcentage des
bonnes réponses prédites par un classifieur.

Entraînement d’un algorithme de régression logistique


Pour calculer un modèle prédictif de classification, il existe de nombreux algorithmes
d’apprentissage automatique. Notre jeu de données étant assez simple, nous allons nous
contenter d’entraîner un modèle de régression logistique.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 100 Monday, August 24, 2020 8:17 AM

Partie pratique
100
DEUXIÈME PARTIE

Dans le code qui suit, on importe et on instancie un objet de la classe LogisticRegression du


module linear_model de Scikit-Learn. La méthode fit sert à calculer un modèle prédictif.

from sklearn.linear_model import LogisticRegression

classifier = \
LogisticRegression(random_state=0).fit(X_tr,y)

Et voilà ! Nous venons de calculer notre premier modèle prédictif de régression logistique.

Calcul du score de justesse


Pour cette étude de cas, nous avons retenu la métrique de justesse (accuracy), pourcentage des
bonnes prédictions effectuées par le modèle.

from sklearn.metrics import accuracy_score

predictions = classifier.predict(X_tr)
acc = accuracy_score(y, predictions)

print(acc)

print ("Soit une justesse de : ", acc * 100, "%")

0.8525
Soit une justesse de : 85.25 %

Grâce à la fonction accuracy_score du module sklearn.metrics, il est possible de calculer aisé-


ment le score de justesse. On passe en paramètre de cette fonction les vraies étiquettes de
chaque observation du jeu d’entraînement (achat ou non) et les prédictions du modèle. La
fonction nous retourne une valeur (comprise entre 0 et 1) qui représente le score de la
métrique.
Pour notre exemple, le score est de 0,85. La dernière instruction affiche le score sous forme de
pourcentage.

Effectuer des prédictions sur de nouvelles variables


Pour évaluer notre modèle sur des données nouvelles, nous allons fournir des observations qui
n’étaient pas présentes dans le jeu d’entraînement. Chacune de ces observations est un tableau
de trois caractéristiques.

X_test = [["Female", 19, 19000],


["Female", 69, 55000],
["Male", 33, 55000],
["Male", 33, 19000]]
column_names = ["Gender", "Age", "EstimatedSalary"]
G67951-Les data sciences en 100 questions réponses-INT-.book Page 101 Monday, August 24, 2020 8:17 AM

Études de cas
101
CHAPITRE 7

X_test = pd.DataFrame(data = X_test,


columns = column_names)
X_test

Figure 7–20
Affichage du tableau
d’observations du jeu de test.

Dans le code précédent, on commence par créer un tableau de quatre observations. On ins-
tancie ensuite un DataFrame en se basant sur ce tableau.
Avant de prédire le résultat de ces observations, on doit appliquer les mêmes transformations
qu’au jeu d’apprentissage. Cette tâche sera facilitée par l’utilisation du pipeline qu’on a créé
précédemment.

X_test_tr = full_pipeline.transform(X_test)
X_test_tr

array([[-1.78179743, -1.49004624, 1. , 0. ],
[ 2.99385904, -0.4329114 , 1. , 0. ],
[-0.44461362, -0.4329114 , 0. , 1. ],
[-0.44461362, -1.49004624, 0. , 1. ]])

Grâce au pipeline full_pipeline, on utilise la méthode transform. Cette dernière exécute


toutes les transformations déclarées dans ce pipeline. Le résultat du calcul est stocké dans la
variable X_test_tr. C’est cette dernière qu’on utilise ensuite pour la prédiction.

classifier.predict(X_test_tr)

array([0, 1, 0, 0])

Le modèle de régression logistique a déduit que seule la deuxième personne est susceptible
d’acheter. Quand on revoit notre jeu de test, on remarque qu’il s’agit d’une femme avec un
revenu de 55 000. La troisième observation est un homme avec le même revenu ; pourtant,
l’algorithme a estimé qu’il n’achètera pas. On en déduira peut-être que les dames avec un haut
revenu constituent la population la plus encline à passer à l’achat.

Conclusion des études


J’espère que, grâce à ces deux exemples d’études, vous avez une meilleure vision de la métho-
dologie pour aborder un problème d’apprentissage automatique. Vous avez remarqué que le
procédé reste sensiblement le même. Par souci de pédagogie et de simplicité, j’ai fait abstrac-
G67951-Les data sciences en 100 questions réponses-INT-.book Page 102 Monday, August 24, 2020 8:17 AM

Partie pratique
102
DEUXIÈME PARTIE

tion de notions comme le découpage et l’échantillonnage du jeu de test et du jeu de validation


croisée. J’ai évité aussi de prendre des jeux de données complexes et de chercher à optimiser
les algorithmes d’apprentissage. Ces notions sont importantes et les experts s’y confrontent
dans leurs travaux.
G67951-Les data sciences en 100 questions réponses-INT-.book Page 103 Monday, August 24, 2020 8:17 AM

Conclusion générale

Nous voilà arrivés à la fin de cet ouvrage. J’espère que vous avez pris du plaisir à le lire et qu’il
vous a aidé dans votre carrière d’expert en data science.
Vous l’aurez peut-être remarqué, la data science, bien qu’on la borne souvent au Machine
Learning, est à l’intersection de plusieurs disciplines : algorithmique, mathématiques, fouilles
de données… Nous avons donc mis en lumière ces différents aspects tout en rappelant aussi
les principaux algorithmes de Machine Learning.
La data science n’en est qu’à ses débuts. Le potentiel de cette discipline est quasi-infini. Le
monde de demain, qui est assez proche, où l’IA sera prédominante et servira comme exten-
sion et support de bien-être à l’être humain, se construit aujourd’hui.
Le développement de ces IA et modèles de Machine Learning se basent sur les données.
C’est sur ce point que l’expertise d’un humain prévaut ; ce dernier sera juge de la qualité des
données et saura aider la machine à apprendre des concepts pertinents.
Partant de ce postulat, je vous invite à prendre de la hauteur quand vous abordez un problème
de data science. Voyez plus loin que les algorithmes et prenez l’habitude de mieux com-
prendre vos données pour mieux réussir vos projets.
Cet aspect critique que vous aurez vis-à-vis de vos projets sera votre meilleur atout. Les recru-
teurs et les entreprises ne vont pas vous juger sur les subtilités théoriques du fonctionnement
d’un algorithme. Ils seront plus intéressés par votre façon de créer un modèle utilisable dans
une situation réelle !
G67951-Les data sciences en 100 questions réponses-INT-.book Page 104 Monday, August 24, 2020 8:17 AM
G67951-Les data sciences en 100 questions réponses-INT-.book Page 105 Monday, August 24, 2020 8:17 AM

Index
A incrémental 15 algorithme 13
accuracy 47 non supervisé 9 justesse 47
ADL 27 par renforcement 11 précision 46
ajustement semi-supervisé 10 rappel 46, 47
du modèle 79 supervisé 8 cluster
algorithme classification 12 Hadoop 59
AdaBoost 36 apprentissage automatique clustering 14, 21, 22
ADL 27 étapes de résolution du coefficient
agglomératif 23 problème 73 de corrélation de Pearson 49
ajustement du modèle 79 arbre de décision 34 de Jaccard 51
Bayes naïf 29 Area under ROC Curve compromis biais/variance 19
de classification 13 (AUC) 45 Cosinus Distance 51
de régression 12, 19 astuce du noyau 32, 33 courbe
divisif 23 de Gauss ou en cloche 55
B courbe de ROC 45
hyperparamètre 17
bases
K moyennes 23 curse of dimensionality 20
orientées clés/valeurs 64
K plus proches voisins 28
orientées colonnes 65 D
K-Nearest Neighbors 28
orientées documents 65 DAG 63
modèle 78
orientées graphes 65 Data Stream 62
non paramétrique 17
SGBD 64 DataNode 59, 60
One-versus-rest 26
SGBDR 64 dendogramme 22
One-verus-all 26
batch learning 14 descente du gradient 25
paramétrique 16
biais 19 dimension
prérequis 77
biais/variance 19 fléau 20
SVM 30
big data réduire 20, 21
Un-contre-Tous 26
3 V 57 discrétisation 39
validation du jeu de test 80
vs data science 57 distance
analyse
binarisation des données 39 cosinus 51
discriminante linéaire 27
binning 21 de Hamming 52
en composantes
boosting 36 de Jaccard 51
principales 33
de Manhattan 50
apprentissage C euclidienne 50
automatique 5 CAP (théorème) 66
distribution
en batch 14 centile 54
Hadoop 58
en ligne 15 city-distance 50
normale 55
hors ligne 14 classification 12
G67951-Les data sciences en 100 questions réponses-INT-.book Page 106 Monday, August 24, 2020 8:17 AM

Les data sciences en 100 questions/réponses


106

données G RMSE 48
accès 75 gradient boosting 36 modèle
complétude du jeu de gradient descent 25 linéaire vs non linéaire 17
données 77
compréhension 76 H N
Hadoop 58, 59, 60, 62, 64 naïve Bayes 29
formatage 77
HDFS 60 NameNode 59, 60
formats 74
Hive 64 négatif
mise à l’échemme et
hyperparamètre 17 faux 45
standardisation 77
vrai 44
non structurées 75 I normalisation des données 38
préparation 76 index de Gini 35 NoSQL 64
récupération 74 indice nœud
semi-structurées 75 de Jaccard 51 esclave 59
sources 74 input split 60 maître 59, 62
structurées 75 Inter Quartile Range 55
taille du jeu de données 76 O
valeurs aberrantes 77 J offline learning 14
jeu de données one-hot encoding 39
E complétude 77 outils 70, 72
écart propriétés statistiques 77 bibliothèques 83
interquartile 55 taille 76 installation 81
écart-type 53 jeu de test Jupyter 83
ElasticNet 28 validation 80 langage R 70
encodage one-hot 39 Jupyter 83 Matplotlib 87
entropie justesse (métrique) 47 Python 70
de Boltzmann 35
de Shannon 35 K outlier 38
kernel trick 32 overfitting 18
éparpillement
interclasse 27 L P
erreur LASSO 27 partitionnement 14, 22
absolue moyenne 48 LDA 27 Pearson (coefficient de
quadratique moyenne 48 logistic regression 25 corrélation) 49
F LOOCV 42 PIP
faux installation 82
M Pipeline (classe) 98
négatif 45
Machine Learning 5 POC opérationnel 73
positif 44, 45
MAE (métrique) 48 positif
fléau de la dimension 20
main-stream 70 faux 44, 45
fold cross validation 41
MapReduce 60, 61 vrai 44
fonction
matrice de confusion 43 précision 46
Kernel 33
médiane 54 problématique
noyau 33
métrique compréhension 73
forêt aléatoire 35
de performance 78 Python 70
MAE 48 environnement virtuel 82
G67951-Les data sciences en 100 questions réponses-INT-.book Page 107 Monday, August 24, 2020 8:17 AM

Index
107

installation 81 S aberrante 38, 77


installation PIP 82 scaling 38 manquante 40
Matplotlib 87 Scikit-Learn 98 validation
score F1 47 croisée 40
Q croisée en K passes 41
scree-test 34
quartile (premier et
semi-supervised learning 10 K passes 41
troisième) 54
série temporelle 36 LOOCV 41, 42
R shuffling 60 variable
random forest 35 similarité cosinus 51 aléatoire gaussiène 55
rappel 46 sorting & grouping 60 continue 37
bas 46 sous-ajustement 18, 19 dépendante/indépendante 37
fort 47 Spark 62 discrète 37
RDD 63 standardisation des données 38 ordinale 37
recall 46 surajustement 18, 20 variance 19, 52
règle de Kaiser 34 réduire 22 virtual environment 82
régression 11 SVM 30 vrai
algorithme 12 négatif 44
T positif 44
ElasticNet 28
theorème
LASSO 27 X
CAP 66
linéaire 85
time-series 36 XGBoost 36
logistique 25, 94
tuple 21, 65
Ridge 27 Y
régularisation 22 U YARN 62
reinforcement learning 11 underfitting 18
Resource Manager 62
Z
unsupervised learning 9
Z-score normalisation 38
Ridge 27
RMSE (métrique) 48 V
ROC (courbe) 45 valeur

Vous aimerez peut-être aussi