Upload
lykhanh
View
216
Download
0
Embed Size (px)
Citation preview
Dat
a Sc
ient
ist e
t lan
gage
R
Data Scientist et langage R Guide d’autoformation à l’exploitation des Big Data
Henri LAUDE est un professionnel reconnu des Computer Sciences. Il a encadré de nombreux tra-vaux de R&D autour des data sciences, connexes à l’intelligence économique, à l’IA, aux risques, à la détection de fraudes et à la cyberdéfense. Prési-dent de l’APIEC (Association pour la Promotion de l’Intelligence Economique), Chief Data Scientist et fondateur du Laboratoire de Data Sciences et Big Data BlueDsX du groupe BlueSoft, il est également co-fondateur de la startup Advanced Research Partners, où il anime la conception d’algorithmes très novateurs implémentés en R et en Python sur des plate-formes Hadoop et Spark. C’est un passionné de data sciences et il ambitionne de transformer tous les lecteurs de son livre en data geeks ou tout au moins de leur donner suffisam-ment de culture générale sur le sujet pour servir leurs objectifs.
Tous les experts s’accordent à dire que 90% des usages du Big Data proviennent de l’utilisation des data sciences. L’objectif de ce livre est de proposer une formation complète et opérationnelle sur les data sciences qui permet de délivrer des solutions via l’usage du langage R. Ainsi, l’auteur propose un parcours didactique et professionnalisant qui, sans autre pré-requis qu’un niveau Bac en mathématiques et une grande curiosité, permet au lecteur :- de s’intégrer à une équipe de data scientists, - d’aborder des articles de recherche possédant une haute teneur en mathématiques, - le cas échéant de développer en langage R, y compris des algorithmes nouveaux et de beaux graphiques,- ou tout simplement de manager une équipe projet comprenant des data scientists, en étant à même de
dialoguer avec eux de façon efficace. Le livre ne se cantonne pas aux algorithmes du "machine learning", il aborde divers sujets importants comme le traitement du langage naturel, les séries temporelles, la logique floue, la manipulation des images. La dynamique de l’ouvrage soutient le lecteur pas à pas dans sa découverte des data sciences et l’évolution de ses compétences théoriques et pratiques. Le praticien en exercice y découvrira également de nombreux savoir-faire à acquérir et le manager pourra surfer sur l’ouvrage après avoir lu attentivement le bestiaire des data sciences de l’introduction, qui sans inexactitude ou vulgarisation excessive présente le sujet en faisant l’économie de mathématiques ou de formalismes dissuasifs.Les programmes R décrits dans le livre sont accessibles en téléchargement sur le site www.editions-eni.fr et peuvent être exécutés pas à pas.
Introduction • Premiers pas avec R • Maîtriser les bases • Techniques et algorithmes incontournables • Cadre méthodologique du data scientist • Traite-ment du langage naturel • Graphes et réseaux • Autres problèmes, autres solutions • Feature Engi-neering • Compléments utiles • Annexes
Les chapitres du livre
Téléchargementwww.editions-eni.fr.fr
sur www.editions-eni.fr : b Le code de tous les exemples du livre.b Les fichiers de données
nécessaires aux exemples.
ISSN : 1960-3444ISBN : 978-2-409-00043-0
54 €
Pour plus d’informations :
Henri LAUDE
Data Scientist et langage R
Guide d’autoformation à l’exploitation des Big Data
1Table des matières
Chapitre 1Introduction
1. Data scientist, un métier à la mode. . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2. Les data-sciences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3. Le Big Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4. La dynamique de cet ouvrage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184.1 Nos objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184.2 La structure de l'ouvrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.2.1 Les deux parcours complémentaires. . . . . . . . . . . . . . . . . 204.2.2 Ressources complémentaires à utiliser . . . . . . . . . . . . . . . 22
5. Petit bestiaire des data-sciences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245.1 Les fondamentaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.1.1 Apprentissage et classification . . . . . . . . . . . . . . . . . . . . . 245.1.2 Petit vocabulaire graphique du machine learning . . . . . . 255.1.3 Régression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405.1.4 Régression linéaire généralisée . . . . . . . . . . . . . . . . . . . . . 425.1.5 Arbres de décision, prune, élagage . . . . . . . . . . . . . . . . . . 435.1.6 Clustering, k-means. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445.1.7 k-NN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455.1.8 Modèles paramétriques . . . . . . . . . . . . . . . . . . . . . . . . . . . 455.1.9 Lazy algorithm (algorithme paresseux) . . . . . . . . . . . . . . 465.1.10 Overfitting : sur-détermination, sur-apprentissage. . . . . 465.1.11 Validation croisée, régularisation, bagging . . . . . . . . . . . 475.1.12 Optimisation, méthode du gradient. . . . . . . . . . . . . . . . . 495.1.13 Algorithme glouton (greedy algorithm). . . . . . . . . . . . . . 51
Les éléments à télécharger sont disponibles à l'adresse suivante :http://www.editions-eni.fr
Saisissez la référence de l'ouvrage EPDASR dans la zone de recherche et validez. Cliquez sur le titre du livre puis sur le bouton de téléchargement.
2Guide d’autoformation à l'exploitation des Big Data
Data Scientist et langage R
5.1.14 Programmation linéaire, simplexe, point intérieur . . . . . 515.1.15 Estimation via la méthode de Monte-Carlo. . . . . . . . . . . 535.1.16 Entropie, indépendance et information mutuelle . . . . . . 555.1.17 Discrétisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.2 Méthodes "ensemble" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585.2.1 Random forest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595.2.2 AdaBoost (adaptative boosting) . . . . . . . . . . . . . . . . . . . . 59
5.3 Lois de probabilité et distribution . . . . . . . . . . . . . . . . . . . . . . . . 615.3.1 Généralités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615.3.2 Petit bestiaire des lois de probabilité . . . . . . . . . . . . . . . . 64
5.4 Les graphes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665.4.1 Vocabulaire de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685.4.2 Conversion d'un tableau d'observations
en graphe, similarité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
6. Informatique professionnelle et data-sciences . . . . . . . . . . . . . . . . . . 706.1 La technologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 706.2 Business Intelligence versus Big Data . . . . . . . . . . . . . . . . . . . . . 74
6.2.1 Différences en termes d'architecture . . . . . . . . . . . . . . . . 746.2.2 Différences en termes d'usage. . . . . . . . . . . . . . . . . . . . . . 756.2.3 En synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
7. Notations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767.1 Notations des paramètres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777.2 Autres notations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
7.2.1 Fonctions et applications … f(x), d(x,y) … . . . . . . . . . . . 797.2.2 Quelques confusions possibles . . . . . . . . . . . . . . . . . . . . . 79
8. À vous de jouer ! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3Table des matières
Chapitre 2Premiers pas avec R
1. Installation des composants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 831.1 Installation et lancement de R. . . . . . . . . . . . . . . . . . . . . . . . . . . 831.2 Installation et lancement de RStudio . . . . . . . . . . . . . . . . . . . . . 841.3 Installation de nouveaux packages . . . . . . . . . . . . . . . . . . . . . . . 861.4 Installation de packages : compléments . . . . . . . . . . . . . . . . . . . 88
2. Prise en main de R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 902.1 R, une calculatrice efficace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 912.2 R, un langage vectorisé. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 922.3 Fonctions agissant sur des vectors. . . . . . . . . . . . . . . . . . . . . . . . 95
2.3.1 Une première analyse rapide des données . . . . . . . . . . . . 952.3.2 Quelques statistiques simples sur les vectors . . . . . . . . . 972.3.3 Trier un vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 982.3.4 Diverses fonctions avec somme, produit, min et max . 100
2.4 Types de données simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1012.4.1 Les booléens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1012.4.2 Les ensembles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1032.4.3 Les listes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1052.4.4 Les facteurs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1062.4.5 Les tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
2.5 Les fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1272.5.1 Création et utilisation d'une fonction simple . . . . . . . . 1272.5.2 Création d'un opérateur à partir d'une fonction
de deux variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1282.5.3 Usage des fonctions et portée des variables . . . . . . . . . . 1292.5.4 Application des fonctions sur les matrices : apply . . . . 1332.5.5 Les fonctions : compléments utiles . . . . . . . . . . . . . . . . 134
2.6 Structures de contrôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1402.6.1 Des instructions communes avec d'autres langages . . . 1402.6.2 Parcourir une matrice via des boucles for. . . . . . . . . . . . 142
2.7 Les chaînes de caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1452.8 Le formatage des nombres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
4Guide d’autoformation à l'exploitation des Big Data
Data Scientist et langage R
2.9 Les dates et les temps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1502.10 Mesure de la durée d'un algorithme . . . . . . . . . . . . . . . . . . . . . 1502.11 Les nombres complexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
2.11.1 Manipulations de base des nombres complexes . . . . . . 1562.11.2 Visualisation de nombres complexes . . . . . . . . . . . . . . . 157
2.12 Programmation orientée objet . . . . . . . . . . . . . . . . . . . . . . . . . . 1582.12.1 Classes et objets, en bref . . . . . . . . . . . . . . . . . . . . . . . . . 1592.12.2 Constructeurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1652.12.3 Héritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1682.12.4 Objets mutables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1722.12.5 Gestion de pile : implémentation
Orientée Objet avec RC . . . . . . . . . . . . . . . . . . . . . . . . . 173
3. Manipulation des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1793.1 Lecture des données : les bases . . . . . . . . . . . . . . . . . . . . . . . . . 1793.2 Manipulation des colonnes d'un data.frame. . . . . . . . . . . . . . . 1823.3 Calculs simples sur un data.frame. . . . . . . . . . . . . . . . . . . . . . . 183
3.3.1 Calculs sur les colonnes et les lignes . . . . . . . . . . . . . . . 1833.3.2 Manipulation des lignes . . . . . . . . . . . . . . . . . . . . . . . . . 1843.3.3 Application : comparaison effectifs de classes et Khi-2 1883.3.4 Création de colonnes calculées . . . . . . . . . . . . . . . . . . . . 1903.3.5 Tri d'un data.frame via order() . . . . . . . . . . . . . . . . . . . . 196
3.4 Analyse visuelle des données . . . . . . . . . . . . . . . . . . . . . . . . . . . 1983.4.1 Visualisation simple des données . . . . . . . . . . . . . . . . . . 1983.4.2 Visualisation des variables numériques 2 à 2
avec mention des classes . . . . . . . . . . . . . . . . . . . . . . . . 2003.4.3 Corrélations entre variables numériques . . . . . . . . . . . . 2033.4.4 Séparation par classe, ggplot2, qplot . . . . . . . . . . . . . . . 2053.4.5 Visualisation 3D, relation entre trois
variables numériques. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2063.4.6 Graphiques par paires . . . . . . . . . . . . . . . . . . . . . . . . . . . 2073.4.7 Boîtes à moustaches et tentative d'élimination
des outliers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2083.4.8 Création d'un modèle par arbre de décision. . . . . . . . . . 211
5Table des matières
Chapitre 3Maîtriser les bases
1. Se mettre en harmonie avec les données. . . . . . . . . . . . . . . . . . . . . . 2151.1 Quelques notions fondatrices . . . . . . . . . . . . . . . . . . . . . . . . . . 216
1.1.1 Phénomène aléatoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2161.1.2 Probabilité, variable aléatoire et distribution. . . . . . . . . 2171.1.3 Un peu de mathématiques : notations
et définitions utiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2211.1.4 Moments d'une variable aléatoire discrète X . . . . . . . . . 2291.1.5 Premières considérations sur les erreurs
et estimations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2381.2 Se familiariser avec ses données. . . . . . . . . . . . . . . . . . . . . . . . . 239
1.2.1 R Commander . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2411.2.2 Rattle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
2. Matrices et vecteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2492.1 Conventions, notations, utilisations basiques . . . . . . . . . . . . . 2492.2 Matrices, vecteurs : vers une introduction
à la notion d'apprentissage supervisé . . . . . . . . . . . . . . . . . . . . 2622.3 Plus loin dans la manipulation des matrices avec R . . . . . . . . . 264
2.3.1 Opérations basiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2642.3.2 Quelques savoir-faire utiles sur les matrices de R . . . . . 2652.3.3 Normes de vecteurs et normes de matrices . . . . . . . . . . 2692.3.4 Matrices et vecteurs : diverses syntaxes utiles . . . . . . . 274
3. Estimations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2793.1 Positionnement du problème d'estimation . . . . . . . . . . . . . . . . 279
3.1.1 Formulation générale du problème. . . . . . . . . . . . . . . . . 2793.1.2 Application et reformulation
du problème d'estimation . . . . . . . . . . . . . . . . . . . . . . . . 2823.2 Les indicateurs d'écart utilisés en machine learning. . . . . . . . . 293
3.2.1 MSE, RMSE, SSE, SST . . . . . . . . . . . . . . . . . . . . . . . . . . 2933.2.2 MAE, ME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2953.2.3 NRMSE/NRMSD, CV_MRSE . . . . . . . . . . . . . . . . . . . . 2973.2.4 SDR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
6Guide d’autoformation à l'exploitation des Big Data
Data Scientist et langage R
3.2.5 Accuracy, R2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
4. Mise en pratique : apprentissage supervisé. . . . . . . . . . . . . . . . . . . . 3024.1 Préparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3024.2 Tester des hypothèses, p_value . . . . . . . . . . . . . . . . . . . . . . . . . 304
4.2.1 Analyse graphique interactive avec iplots . . . . . . . . . . . 3054.2.2 Test de Breush-Pagan et zoom sur p_value . . . . . . . . . . 306
4.3 Création d'un modèle (régression linéaire multiple) . . . . . . . . 3074.4 Établissement d'une prédiction . . . . . . . . . . . . . . . . . . . . . . . . . 3074.5 Étude des résultats et représentations graphiques . . . . . . . . . . 3094.6 Indicateurs courants - calculs . . . . . . . . . . . . . . . . . . . . . . . . . . 3134.7 Étude du modèle linéaire généré . . . . . . . . . . . . . . . . . . . . . . . . 3144.8 Conclusion sur le modèle linéaire . . . . . . . . . . . . . . . . . . . . . . . 3214.9 Utilisation d'un modèle "Random Forest". . . . . . . . . . . . . . . . . 322
Chapitre 4Techniques et algorithmes incontournables
1. Constituer sa boîte à outils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
2. Représentation graphique des données . . . . . . . . . . . . . . . . . . . . . . . 3262.1 Un graphique "simple" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3262.2 Histogrammes évolués . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
2.2.1 Distribution multiclasse . . . . . . . . . . . . . . . . . . . . . . . . . 3292.2.2 Mixture de plusieurs distributions par classe . . . . . . . . 3312.2.3 Visualisation de la densité d'une distribution . . . . . . . . 3322.2.4 Une autre mixture par classe . . . . . . . . . . . . . . . . . . . . . 3332.2.5 Une variable, mais un histogramme
pour chaque classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3342.2.6 Graphique avec une densité par classe . . . . . . . . . . . . . . 336
2.3 Diagramme par paires et à facettes . . . . . . . . . . . . . . . . . . . . . . 3382.3.1 Diagramme par paires, version simple . . . . . . . . . . . . . . 3382.3.2 Classes en configuration XOR . . . . . . . . . . . . . . . . . . . . 3392.3.3 Diagramme par paires avec "factors" . . . . . . . . . . . . . . . 3412.3.4 Facettes et échelle logarithmique . . . . . . . . . . . . . . . . . . 345
7Table des matières
3. Machine learning : pratiques courantes . . . . . . . . . . . . . . . . . . . . . . 3463.1 Parcours théorique accéléré . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
3.1.1 Linéarité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3473.1.2 Erreurs in et out, notion de VC dimension . . . . . . . . . . 3493.1.3 Hyperplans, séparabilité avec marges. . . . . . . . . . . . . . . 3533.1.4 Kernel Trick, noyaux, transformations, feature space . 3553.1.5 Problèmes de la régression : introduction
à la régularisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3603.2 Pratique par pratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
3.2.1 Cross validation : k-fold CV . . . . . . . . . . . . . . . . . . . . . . 3663.2.2 Naive Bayes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3683.2.3 C4.5 et C5.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3753.2.4 Support Vector Machines (SVM). . . . . . . . . . . . . . . . . . 3773.2.5 Clusterisation, k-means . . . . . . . . . . . . . . . . . . . . . . . . . 382
4. Où en sommes-nous dans notre apprentissage ? . . . . . . . . . . . . . . . 3934.1 Vos acquis opérationnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3934.2 Les lacunes éventuelles à combler maintenant . . . . . . . . . . . . . 394
Chapitre 5Cadre méthodologique du data scientist
1. Le problème méthodologique au niveau du projet . . . . . . . . . . . . . . 3951.1 L'expression du besoin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3951.2 La gestion du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
2. Le cycle interne des data-sciences . . . . . . . . . . . . . . . . . . . . . . . . . . . 3992.1 Revue de détail du problème posé . . . . . . . . . . . . . . . . . . . . . . . 4002.2 Travaux préliminaires sur les données . . . . . . . . . . . . . . . . . . . 401
2.2.1 Exigences sur les données . . . . . . . . . . . . . . . . . . . . . . . . 4012.2.2 Collecte, nettoyage et compréhension des données . . . 402
2.3 Le cycle de modélisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4032.3.1 Feature engineering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4032.3.2 Modélisation et évaluation . . . . . . . . . . . . . . . . . . . . . . . 4052.3.3 Choix du meilleur modèle. . . . . . . . . . . . . . . . . . . . . . . . 406
8Guide d’autoformation à l'exploitation des Big Data
Data Scientist et langage R
2.3.4 Test, interprétation et confrontation avec le métier. . . 4062.4 Préparation de l'industrialisation et déploiement. . . . . . . . . . . 4082.5 Préparation des itérations suivantes . . . . . . . . . . . . . . . . . . . . . 409
2.5.1 Éléments à prendre en compte . . . . . . . . . . . . . . . . . . . . 4092.5.2 Documentation gérée par les data scientists . . . . . . . . . 410
3. Compléments méthodologiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4113.1 Classifier vos objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4113.2 Trucs et astuces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
Chapitre 6Traitement du langage naturel
1. Positionnement du problème. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
2. Analyse sémantique latente et SVD . . . . . . . . . . . . . . . . . . . . . . . . . 4162.1 Aspects théoriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
2.1.1 SVD : généralités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4172.1.2 Une justification de la décomposition SVD . . . . . . . . . 4182.1.3 SVD dans le contexte LSA . . . . . . . . . . . . . . . . . . . . . . . 4182.1.4 Interprétation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4192.1.5 Alternative non linéaire, Isomap (MDS, géodésique,
variété, manifold) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4212.2 Mise en pratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
2.2.1 Initialisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4212.2.2 Au cœur de LSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4242.2.3 Résultats. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4252.2.4 Manipulations, interprétations récréatives
et non fondées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
9Table des matières
Chapitre 7Graphes et réseaux
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
2. Premiers pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4312.1 Quelques notions et notations complémentaires basiques . . . 4322.2 Manipulations simples de graphes avec R . . . . . . . . . . . . . . . . 4342.3 Structure des graphes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
3. Graphes et réseaux (sociaux) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4493.1 Analyse des réseaux sociaux : concepts de base . . . . . . . . . . . . 4503.2 Mise en pratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4533.3 Détection de communautés . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
Chapitre 8Autres problèmes, autres solutions
1. Séries temporelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4651.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4651.2 Modèle stationnaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
1.2.1 Processus stationnaire : les bases . . . . . . . . . . . . . . . . . . 4671.2.2 Processus autorégressif AR : aller plus loin . . . . . . . . . . 4691.2.3 Considérations (très) utiles. . . . . . . . . . . . . . . . . . . . . . . 471
1.3 Processus non stationnaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4731.3.1 Le modèle ARIMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4731.3.2 Processus saisonniers : SARIMA. . . . . . . . . . . . . . . . . . . 4741.3.3 Modèles ARCH et GARCH . . . . . . . . . . . . . . . . . . . . . . 4751.3.4 Convolution et filtres linéaires . . . . . . . . . . . . . . . . . . . . 478
1.4 Mise en pratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4811.4.1 Les bases de la manipulation des séries
temporelles en R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4821.4.2 Étude de séries temporelles . . . . . . . . . . . . . . . . . . . . . . . 4861.4.3 Prédictions sur ARIMA (AR MA SARIMA) . . . . . . . . . 492
1.5 Mini bestiaire ARIMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
10Guide d’autoformation à l'exploitation des Big Data
Data Scientist et langage R
2. Systèmes flous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
3. Essaim (swarm) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5093.1 Swarm et optimisation : l'algorithme PSO . . . . . . . . . . . . . . . 509
3.1.1 Présentation de PSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5103.1.2 Description de PSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510
3.2 Mise en pratique de PSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
Chapitre 9Feature Engineering
1. Feature Engineering, les bases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5171.1 Positionnement du problème. . . . . . . . . . . . . . . . . . . . . . . . . . . 5171.2 Ce sur quoi il faut être très attentif. . . . . . . . . . . . . . . . . . . . . . 518
1.2.1 La qualité de la distribution . . . . . . . . . . . . . . . . . . . . . . 5181.2.2 La nature des features . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
1.3 Maîtriser la dimensionnalité . . . . . . . . . . . . . . . . . . . . . . . . . . . 5221.4 Une solution éprouvée : la PCA. . . . . . . . . . . . . . . . . . . . . . . . . 5251.5 Un exemple simple d'utilisation de la PCA. . . . . . . . . . . . . . . . 5251.6 Les valeurs inconnues et les features mal conditionnées . . . . . 5341.7 Création de nouvelles features. . . . . . . . . . . . . . . . . . . . . . . . . . 5371.8 En guise de conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540
2. PCA classique, éléments mathématiques . . . . . . . . . . . . . . . . . . . . . 541
3. Réduction des données (data reduction). . . . . . . . . . . . . . . . . . . . . . 544
4. Réduction de la dimensionnalité et entropie . . . . . . . . . . . . . . . . . . 5454.1 Description théorique du problème. . . . . . . . . . . . . . . . . . . . . . 5454.2 Implémentation en R et discussion. . . . . . . . . . . . . . . . . . . . . . 548
11Table des matières
Chapitre 10Compléments utiles
1. GAM : généralisation de LM/GLM . . . . . . . . . . . . . . . . . . . . . . . . . . 557
2. Manipulation d'images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5592.1 Création, visualisation, lecture et écriture d'images. . . . . . . . . 5602.2 Transformations des images . . . . . . . . . . . . . . . . . . . . . . . . . . . 566
2.2.1 Exemples de manipulation de la couleur et des intensités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
2.2.2 Exemples de manipulation de la géométrie de l'image . 5702.2.3 Application de filtres sur les images . . . . . . . . . . . . . . . . 573
3. Comment créer un échantillon : LHS (hypercube latin) . . . . . . . . . 575
4. Travailler sur des données spatiales. . . . . . . . . . . . . . . . . . . . . . . . . . 5774.1 Variogramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577
4.1.1 Champ et variable régionalisée . . . . . . . . . . . . . . . . . . . . 5774.1.2 Détermination du variogramme. . . . . . . . . . . . . . . . . . . 584
4.2 Krigeage (kriging) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5874.2.1 La théorie, en bref . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5874.2.2 Implémentation en R . . . . . . . . . . . . . . . . . . . . . . . . . . . 588
5. Savoir-faire utiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5905.1 Tracer une courbe ROC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5905.2 Un réseau neuronal (premiers pas vers le deeplearning) . . . . . 593
6. Gradient Boosting et Generalized Boosted Regression . . . . . . . . . . 5986.1 Les grands principes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5986.2 Les paramètres et les usages (package GBM) . . . . . . . . . . . . . . 600
6.2.1 Covariance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6006.2.2 Loss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6006.2.3 Optimisation de l'algorithme . . . . . . . . . . . . . . . . . . . . . 601
6.3 Mise en pratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601
12Guide d’autoformation à l'exploitation des Big Data
Data Scientist et langage R
Annexes
1. De l'utilité de ces annexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605
2. Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605
3. Stratégies suivant la nature des données . . . . . . . . . . . . . . . . . . . . . 6073.1 Comptages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6073.2 Proportions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6083.3 Variable de réponse binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6083.4 Données induisant un modèle mixte (mixed effect) . . . . . . . . 6083.5 Données spatiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6103.6 Graphes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6103.7 Analyse de survie (survival analysis) . . . . . . . . . . . . . . . . . . . . . 610
4. Filtres (sur images) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611
5. Distances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614
6. Astuces et petits conseils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6186.1 Sur les tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6186.2 Gestion des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6186.3 Analyse et manipulation de résultats . . . . . . . . . . . . . . . . . . . . 619
6.3.1 Résidus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6196.3.2 Manipulation des modèles . . . . . . . . . . . . . . . . . . . . . . . 619
7. Packages et thèmes à étudier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6207.1 Création de graphiques JavaScript via R. . . . . . . . . . . . . . . . . . 6207.2 Créer des jointures comme en SQL . . . . . . . . . . . . . . . . . . . . . . 6207.3 Règles d'association . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6217.4 Exporter un modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6217.5 Tenseurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6217.6 SVM pour la détection de nouveautés (novelty detection) . . . 622
8. Vocabulaire et "tricks of the trade" . . . . . . . . . . . . . . . . . . . . . . . . . . 6228.1 Compléments sur les bases du machine learning . . . . . . . . . . . 6228.2 Compléments sur les aspects bayésiens . . . . . . . . . . . . . . . . . . 6248.3 Vocabulaire (dont anglais) des modèles gaussiens . . . . . . . . . . 626
13Table des matières
9. Algorithmes à étudier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626
10. Quelques formulations d'algèbre linéaire . . . . . . . . . . . . . . . . . . . . . 627
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631
Chapitre 5
Cadre méthodologiquedu data scientist
Cadre méthodologique du data scientis t1. Le problème méthodologique au niveau du projet
Les data-sciences opérationnelles procèdent de la volonté de satisfaire les aspi-rations, les besoins ou les exigences d'un client interne à une organisation.
Nous abordons ici les caractéristiques du déroulé d'un projet comportant desdata-sciences dans l'ensemble de ses activités.
Nous aborderons ensuite la part du déroulé du projet propre aux aspects data-sciences.
L'objectif est de fournir une forme de "checklist" commentée aux managers,chefs de projet et data scientists.
1.1 L'expression du besoin
La formulation du besoin nécessite souvent un travail assidu d'assistance. Cebesoin est parfois exprimé sous des formes qui ne sont pas directement inter-prétables en termes de problème de data-sciences :
– Je voudrais aller plus loin dans l'analyse de nos données clients/patients/administrés/contreparties/concurrents/marchés/risques/fraudes/sûreté/fournisseurs/logistiques/productions/pays/tendances/sociétales/environnementales...
© E
dit
ions
EN
I -
All r
ights
rese
rved
396Guide d’autoformation à l'exploitation des Big Data
Data Scientist et langage R
– Je voudrais valoriser ces données (profiter de la ruée vers l'or des data).
– Je ne veux pas "louper le coche" du Big Data.
– Je voudrais fournir de nouveaux services et produits à mes clients.
– Je veux révolutionner mon offre (disruption).
– Je veux digitaliser mon organisation.
– Je voudrais optimiser ou transformer mes processus.
– Je voudrais anticiper les mouvements du marché, des concurrents, le churn(fidélité client)...
La démarche d'extraction du besoin est en fait une démarche d'ajustementmutuel. L'idée étant d'établir un cycle qui permette au "client interne" et audata scientist (ici un business analyst ou un directeur de projet compétent endata-sciences) de partager au moins les cinq aspects fondamentaux suivants :
– Des critères de réussite communs permettant de juger à terme de la réussitede leur projet de data-sciences (KPI : key business/process/product/project indi-cators).
– Une compréhension commune de ce qui peut être espéré du traitement deces données (contrôle, compréhension, connaissances nouvelles, requêtesnouvelles, optimisation, décision, alerte, anticipation, prédiction, supervi-sion, réalité augmentée, automatisation...).
– Des cas d'utilisation de ce qui sera produit par le projet.
– Une compréhension commune des données nécessaires à la mise en œuvredu projet (nature, volume, exhaustivité, provenance, temporalité, fiabilité,propriété, coût, confidentialité...).
– Les éléments logistiques nécessaires au projet (budget, architecture, planprojet).
A minima le résultat de cette exploration doit faire l'objet d'une note decadrage et d'une présentation synthétique aux décideurs et aux principauxacteurs.
397Cadre méthodologique du data scientistChapitre 5
1.2 La gestion du projet
Une fois le prototype et/ou le projet lancé(s), le chef du projet prend toutes lesinitiatives nécessaires pour faire converger l'ensemble dans le respect de lanote cadrage.
Comme la nature même d'un projet de data-sciences implique de nombreusesremises en cause et de nombreuses évolutions, les éléments de la note decadrage seront parfois à amender et le besoin à retravailler. Le chef de projetdevra trouver des modalités de gestion de projet telles que les différentsacteurs pourront être impliqués dans ces évolutions (et au minimuminformés !). Le pilotage du projet devra intégrer des processus de décision com-patibles avec la variabilité intrinsèque de ce type de projet.
Une excellente façon de procéder est de travailler sous un cadre itératif d'en-gagement progressif. À chaque itération, on précise l'ensemble des itéra-tions suivantes et évidemment le contenu précis de la toute prochaineitération.
C'est un cycle agile, mais il n'est pas judicieux d'implémenter toutes lesmeilleures techniques de l'agilité issues des pratiques de développementinformatique : la psychologie du data scientist ne doit pas se calquer sur lapsychologie type d'un développeur efficace ou d'un créateur de startup.
En tant que chef de projet d'équipe de data scientists, évitez le recours systé-matique aux stand-up meetings, au Scrum, au peer-programming et en géné-ral aux techniques de socialisation systématique de l'équipe. Ce sontd'excellentes méthodes, mais le cycle de réflexion R&D ne s'y prête pas, entout cas pas pendant les premières itérations. Laissez les data scientists plon-ger au plus profond d'eux-mêmes, intéressez-vous à leurs réflexions et leurspratiques, laissez l'équipe se raconter ou douter.
Le chef de projet ne doit se focaliser sur les livrables des data scientists qu'àdeux jalons bien précis d'une itération : en début d'itération pour donner uneforte impulsion (kick-off) et avant le dernier tiers de celle-ci pour collecter desengagements définitifs quant à ce qui sera réellement livré (commitments) ets'assurer que les data scientists accompagneront leur livraison par une docu-mentation de qualité et des composants bien référencés (voir plus loin dans cechapitre).
© E
dit
ions
EN
I -
All r
ights
rese
rved
398Guide d’autoformation à l'exploitation des Big Data
Data Scientist et langage R
Évidemment, il faut favoriser les transferts de compétence des seniors vers lesjuniors, les conceptions collaboratives et induire des séances d'échange face autableau blanc, marqueur à la main. Tout cela doit se faire dans le respect durythme de réflexion de chacun et sans arrière-pensée de contrôle. On necontrôle pas la R&D et la créativité, on les favorise !
Pour compenser la nature aléatoire d'une telle démarche ouverte, scientifiqueet créative, un plan projet simple doit être géré avec rigueur et pragmatisme.Sans excès de formalisme et particulièrement compact, il permet à chaquemembre de l'équipe d'avoir en ligne de mire les éléments importants de l'ité-ration en cours et rappelle les règles de gestion de configuration. Toutmembre de l'équipe est réputé avoir lu et compris le plan projet et en par-ticulier tout ce qui concerne ses responsabilités dans la prochaine itération :nul n'est censé ignorer la loi !
Le plan projet met en exergue les grands jalons du projet et précise d'éventuelsjalons importants de l'itération. Dans ce plan projet, chaque information com-portant une incertitude est entachée d'une imprécision bien énoncée, parexemple : "telle action sera effectuée en 10 à 20 jours/hommes et déboucheraau minimum sur ceci et au mieux sur cela". Les objectifs de la prochaine itéra-tion comportent la liste des livrables majeurs dans un état de finition identifiéet un RACI minimum (Responsible = Doer, Accountable, Consulted, Informed).Chaque livrable majeur possède une priorisation propre et ses incertitudespropres (c'est-à-dire optionnel ou pas dans le prochain cycle, exigences clés dulivrable, estimation de charge du livrable, éléments de réception minimum dulivrable). Le plan de l'itération est discuté et amendé par l'équipe au débutde chaque itération. Les objectifs, les attentes (y compris psychologiques) etles engagements vis-à-vis du client interne sont rappelés lors du kick-off.
Remarque
Les livrables peuvent avoir une nature opérationnelle (livrer tel élémenttechnique ou algorithmique), informationnelle (par exemple identifier et qua-lifier les sources de données nécessaires à l'atteinte de tel objectif) ou déci-sionnelle (typiquement l'affinement des éléments de gestion de projet, laréponse à des questions clés et la levée d'incertitudes techniques).
399Cadre méthodologique du data scientistChapitre 5
À chaque itération, il convient de préciser les nouvelles priorités et d'intégrerles connaissances acquises précédemment pour réorganiser le projet. Dans cecadre, chaque hypothèse ayant conduit à une décision doit être soigneuse-ment consignée et revue régulièrement.
Cette gestion d'hypothèses est essentielle, car les projets de data-sciencesse conduisent dans des environnements évolutifs, concurrentiels, innovantset expérimentaux.
Dans leurs échanges et lors de leurs prises de décision, le client interne, la maî-trise d'œuvre informatique et le chef de projet doivent constamment avoirprésents à l'esprit les trois faits suivants :
– Pas de data science sans data !
– On ne connaît pas a priori la qualité et la pertinence de que l'on va trouverdans les data : il faudra donc souvent reconfigurer le projet, y compris surses objectifs et ses use cases (cas d’utilisation) !
– La technologie est partagée, disponible et open source. Le facteur différen-ciant vis-à-vis de la concurrence réside donc dans la qualité des équipes :maîtrise réelle des data-sciences, maîtrise méthodologique, capacité d'inno-vation, maîtrise projet, gestion du changement, compétences fonction-nelles, maîtrise des architectures actuelles... Cette dernière liste est àconsidérer plus ou moins dans cet ordre, la maîtrise des data-sciences est in-finiment plus disruptive que la maîtrise d'Hadoop ou de Spark, car à termeces technologies ne trouvent leur utilité qu'au travers de ce que l'on en fait.
2. Le cycle interne des data-sciences
Au sein du cycle projet, le data scientist va mener les itérations spécifiquesd'un cycle qui lui est propre, mais qu'il devra synchroniser soigneusement avecles cycles de production et de décision du projet.
À partir d'un certain état "fonctionnel" identifié du projet, à savoir une défini-tion de ses objectifs, diverses exigences métier, des questions posées, des casd'utilisation, des données à disposition et une logistique matérielle, le datascientist va entamer une nouvelle itération.
© E
dit
ions
EN
I -
All r
ights
rese
rved
400Guide d’autoformation à l'exploitation des Big Data
Data Scientist et langage R
Il devra planifier soigneusement cette itération et prendre garde à ne pas selaisser emporter dans un perfectionnisme ou un laxisme mathématique, algo-rithmique ou technique incompatible avec les objectifs de sa planification.Planifier une activité de R&D est particulièrement délicat et nécessite doncbeaucoup d'attention.
En premier lieu, le data scientist ayant qualifié un besoin et un contexte vaprocéder à une étude plus ou moins analytique de ceux-ci.
2.1 Revue de détail du problème posé
La première tâche est d'exprimer le problème en termes de techniques propresaux data-sciences. Attention il ne faut pas se focaliser exclusivement sur lestechniques statistiques ou de machine learning mais parcourir la gamme desalgorithmes à notre disposition ayant un lien avec les objectifs fonctionnelsénoncés.
Pour ce qui est des aspects machine learning, il faut identifier rapidement si leproblème posé se traduit en termes d'apprentissage supervisé ou non. Dans lescas complexes, il faudrait s'intéresser aux cycles de techniques itératives dudeep learning.
La sémantique générale des données idéales à manipuler doit être abordée avecsoin. Est-il utile de manipuler des concepts, des mots, des expressions nom-mées (nom de personnes, d'organisations), des évènements, des informationsagrégées (chiffres d'affaires), des relations (réseaux), des séries temporelles(cours de bourses), des images, des vidéos, des sons, des données géogra-phiques... ?
Il convient d'identifier rapidement si la capacité que nous aurons à répondreau problème posé nécessite la maîtrise d'un "modèle de données" :
– Les critères d'appariement de ces données sont-ils clairs : typiquement,possèdent-elles un identifiant, des références mutuelles ?
– Existe-t-il des relations sémantiques ou fonctionnelles entre ces données(une voiture est une sorte de moyen de transport, composée d'une carrosse-rie, d'un moteur... possédée par un individu, assemblée dans une usine...).