Académique Documents
Professionnel Documents
Culture Documents
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 ;
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.
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 ;
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.
Younes Benzaki
Préface de Farid Oukaci
É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
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
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
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
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
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.
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
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.
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.
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.
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.
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.
Partie théorique
10
PREMIÈRE PARTIE
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é).
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.
Note
Les arbres de décisions et K-NN servent aussi bien pour la classification que la régression.
Questions généralistes
13
CHAPITRE 1
Partie théorique
14
PREMIÈRE PARTIE
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.
Partie théorique
16
PREMIÈRE PARTIE
Questions généralistes
17
CHAPITRE 1
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.
Questions généralistes
19
CHAPITRE 1
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.
Questions généralistes
21
CHAPITRE 1
Partie théorique
22
PREMIÈRE PARTIE
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
Partie théorique
26
PREMIÈRE PARTIE
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é.
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.
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.
Figure 2–3
Procédé de prédiction
de l’algorithme K-NN.
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.
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
Partie théorique
34
PREMIÈRE PARTIE
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
Partie théorique
36
PREMIÈRE PARTIE
3
Préparation des données
Partie théorique
38
PREMIÈRE PARTIE
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
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) .
Partie théorique
42
PREMIÈRE PARTIE
Figure 3–1
Validation croisée en quatre passes
sur un jeu de données.
4
Mesures, métriques
et performances
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
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.
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.
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
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.
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.
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).
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.
5
Mathématiques pour
l’apprentissage automatique
Partie théorique
50
PREMIÈRE PARTIE
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
Figure 5–3
Trois distances de Manhattan entre
deux points dans un plan.
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
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
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) !
Partie théorique
54
PREMIÈRE PARTIE
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.
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
(
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
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.
Big data
59
CHAPITRE 6
Partie théorique
60
PREMIÈRE PARTIE
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.
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).
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
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.
Partie théorique
66
PREMIÈRE PARTIE
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.
Partie pratique
70
DEUXIÈME PARTIE
É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++.
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.
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
Partie pratique
74
DEUXIÈME PARTIE
É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.
Partie pratique
76
DEUXIÈME PARTIE
Études de cas
77
CHAPITRE 7
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.
É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).
Partie pratique
80
DEUXIÈME PARTIE
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.
É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.
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
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.
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 :
É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 :
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 :
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.
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
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.
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()
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.
df.head(10)
Figure 7–7
Application de la méthode head.
É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).
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).
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
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.
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
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.
import numpy as np
from sklearn.metrics import mean_squared_error
8.145264130017594
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
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
import numpy as np
from sklearn.metrics import mean_squared_error
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.
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()
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.
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
%matplotlib inline
import matplotlib.pyplot as plt
df.hist(bins=10, figsize=(20,15))
plt.show()
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
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
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.
É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.
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.
Partie pratique
100
DEUXIÈME PARTIE
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.
predictions = classifier.predict(X_tr)
acc = accuracy_score(y, predictions)
print(acc)
0.8525
Soit une justesse de : 85.25 %
Études de cas
101
CHAPITRE 7
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. ]])
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.
Partie pratique
102
DEUXIÈME PARTIE
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
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