introduction_aux_outils_datascience_vf
Transcription
introduction_aux_outils_datascience_vf
Outils data science: Mise en pratique IMA 2016 PLAN Contexte et objectifs Rappels Modélisation sous SAS Modélisation sous R Modélisation sous Python Conclusion INTRODUCTION SAS PYTHON R SPSS Un intérêt de plus en plus marqué par les open sources: R Python Les outils payants en perte de vitesse Les requêtes les plus fréquentes pour les outils payants réfèrent à l’utilisation de fonctions SAS SPSS Python R Sas sql Sas macro Ibm statistic Python for Tutorial How to R download Les requêtes les plus fréquentes pour les outils open source réfèrent à un apprentissage Thouvenot Pierre-Louis – Introdiction a la Data science 3 Contexte et objectifs CONTEXTE: NAUFRAGE DU TITANIC RMS Titanic paquebot transatlantique mis en service en 1912 Caractéristiques: Longueur: 269m Maitre-bau: 28m Tirant d’eau: 10,54m Tirant d’air: 45m Déplacement: 52310t Vitesse de croisière: 41kmh Capacité: 3356 personnes Equipage: 885 Passagers: 2471 Naufrage dans la nuit du de 14 au 15 avril 1912 Environ 1500 disparus Thouvenot Pierre-Louis – Introdiction a la Data science 5 OBJECTIFS Etablir les critères discriminant de la survie au naufrage du Titanic Utilisation de trois outils statistiques SAS Python R Appliquer la méthode de scoring Challenger les méthodes statistiques Modélisation de la donnée Régression logistique SVM Random Forest Thouvenot Pierre-Louis – Introdiction a la Data science 6 Rappels SQL: UN LANGAGE QUI CE RAPPROCHE DE L’ALGEBRE RELATIONNELLE Les operateurs ensemblistes Union: ─ Soit R(A) et S(B) deux relations ayant pour attributs A et B ─ ∪ = : ∈ ∈ ─ SQL : UNION A B L’intersection ─ Soit R(A) et S(B) deux relations ayant pour attributs A et B ∩ = : ∈ ∈ ─ ─ SQL: INSTERSECT A B La différence ─ Soit R(A) et S(B) deux relations ayant pour attributs A et B ─ − = : ∈ ∉ ─ SQL: EXCEPT A B La produit cartésien ─ Soit R(A) et S(B) deux relations ayant pour attributs A et B ─ ∗ = , : ∈ ∈ ─ Fortement déconseillé en SQL Thouvenot Pierre-Louis – Introdiction a la Data science 8 SQL: UN LANGAGE QUI CE RAPPROCHE DE L’ALGÉBRE RELATIONNELLE Les operateurs relationnels Sélection ─ Soit R une relation et F une formule ─ = ∈ : ─ SQL: WHERE Projection ─ Soit R un relation et A un ensemble d’attribut de R ─ La projection est une sous relation de R qui ne prend que les attributs A choisis ─ SQL:SELECT Rebaptiser ─ Soit R une relation et A un attribut ─ On peut rebaptiser a en b ─ SQL: AS Jointure: ─ ⨀ = , !, " : , ! # (!, ")# ─ SQL: ((INNER,LEFT,RIGTH) JOIN TABLE AS A1 ON A1.IDJOINTURE=B1.IDJOINTURE) Division ─ Pour tout x tel que pour y Thouvenot Pierre-Louis – Introdiction a la Data science 9 EXEMPLE Soit trois tables TABLE1: ─ ─ ─ ─ IDJOINTURE A B C TABLE2: ─ IDJOINTURE ─ A ─ B TABLE3: ─ IDJOINTURE ─ C Je veux arriver à une quatrième table qui réunit toutes les informations sachant que: La TABLE 3 correspond a la TABLE 2 (mêmes individus) Créer une table s’écrit CREATE TABLE NOMTABLE AS Ecrire le script SQL Thouvenot Pierre-Louis – Introdiction a la Data science 10 RÉPONSE IDJOINTURE A 1 2 4 5 IDJOINTURE A 1 2 3 TABLE4 B 123 Pierre 14 Louis 5468 Aurore 890 Aurelie TABLE1 B 123 Pierre 14 Louis 12000 C DUPONT DURAND ZZ TUTU C DUPONT DURAND TOTO TABLE2 IDJOINTURE A 4 5 3 B 5468 Aurore 890 Aurelie 12000 Thouvenot Pierre-Louis – Introdiction aux outils datascience TABLE3 IDJOINTURE C 4 ZZ 5 TUTU 3 TOTO 11 LA MÉTHODE CLASSIQUE DE SCORING ( RÉGRESSION LOGISTIQUE) Construire Normaliser Discrétisation Indicateurs Dichotomisation Fusion Cibles Regroupement Modéliser Echantillon d’apprentissage Régression logistique Gestion des corrélations Echantillon de validation Thouvenot Pierre-Louis – Introdiction aux outils datascience 12 RÉGRESSION Le principe d’un modèle de régression est basé sur la détermination d’une fonction d’une ou plusieurs variables (X1,X2,……,Xn) permettant de déterminer dans une certaine mesure le comportement d’une tierce variable(Y) appelée variable dépendante: &= '(, … , '* + , X1,…,Xn sont dites explicatives f() est une fonction agrégeant les effets des n variables explicatives sur Y - est une variable aléatoire représentant l’erreur du modèle Il existe un grand nombre de fonctions disponibles qui permettent de modéliser cette équation selon le contexte et les données: Logistique Linéaire Etc.. L’objectif est de minimiser les erreurs du modèle tout en gardant une certaine robustesse Thouvenot Pierre-Louis – Introdiction a la Data science 13 Modélisation sous SAS Présentation de l’outil PRÉSENTATION Inventé par un étudiant de l’université de North Carolina Anthony J BARR dans les années 60 pour faire de l’analyse de la variance SAS est un logiciel qui fonctionne en modules dont les principaux sont: Mo d u le SAS/BASE De s crip tio n Module orienté base de données, il permet un accès à de nombreux systèmes de bases de données tels que DB2, INFORMIX, ODBC, ORCALE, SYSBASE, SQL SERVER. Développement d'interfaces utilisateurs (Frame) à l'aide du langage SCL (langage orienté objet). Utilise les principales caractéristiques de SAS/BASE en mode fenêtres. A l'avantage d'offrir au débutant une vue du langage SAS généré lors des tâches exécutées en mode fenêtre. Importation, manipulation et exportation des données. SAS DATA INTEGRATOR ETL de SAS. SAS/ENTERPRISE BI SERVER Plateforme décisionnelle de SAS. SAS/ENTERPRISE MINER SAS/GIS Système de fenêtre pour réaliser du DATA MINING. Fonctionnalités statistiques avancées pour modélisation et simulation. Manipulation de données géographiques. SAS/GRAPH Gestion des sorties graphiques. SAS/IML Programmation en langage matricielle. SAS/INSIGHT SAS OLAP CUBE STUDIO Manipulation interactive pour explorer et analyser les données. Interaction avec Internet pour faciliter la publication des rapports obtenus sur SAS. Module complémentaire à SAS/BASE, Langage permettant d'automatiser certaines tâches. Création de cubes. SAS/OR Fonctionnalités de Recherche Opérationnelle. SAS/QC Outils statistiques pour le contrôle qualité. SAS/STAT Ensemble des fonctionnalités statistiques courantes et poussées. SAS/ACCESS SAS/AF SAS/ASSIST SAS/ETS SAS/INTRNET SAS/MACO SAS/TOOLKIT SAS/WAREHOUSE ADMINISTRATOR la prévision, Outil pour l'écriture d'extensions SAS. Création et manipulation de DATA WAREHOUSE ET DATA MART. Il fonctionne avec son langage de programmation SAS Thouvenot Pierre-Louis – Introdiction a la Data science 16 LE LANGAGE SAS La programmation SAS peut être vue en trois parties: L’étape DATA ─ Permet comme le SQL le data management ─ Commence toujours par un DATA et finit par un RUN; ─ Exemple: DATA TABLE4; SET TABLE1; WHERE C ne « TOTO»; RUN; Les procédures PROC ─ Permet de faire des analyses statistiques de données, des graphiques et de la manipulation de données ─ Commence par PROC (fonction que l’on souhaite exécuter SQL par exemple) et se finit par un RUN ou un QUIT; ─ Exemple: PROC SQL; CREATE TABLE TABLE4 AS SELECT * FROM TABLE1 WHERE C ne « TOTO»; QUIT; Le langage macro ─ Permet d’automatiser des programmes ─ Commence toujours par %MACRO et se termine par %MEND ─ Exemple : %MACRO test(nom); DATA TABLE4; SET TABLE1; WHERE C ne « &nom»; RUN; %MEND; test(TOTO); Thouvenot Pierre-Louis – Introdiction a la Data science 17 Les procédures utiles LES PROCÉDURES QUI VONT NOUS SERVIR Datamanagement Proc Contents : permet de connaître les caractéristiques d’une table et de les stocker Proc sql : permet de faire du SQL sous SAS Proc sort : permet de trier une table Proc print Proc transreg Echantillonnage Proc surveyselect Statistique Proc freq Proc mean Proc Logistic Proc corr Proc Npar1Way Thouvenot Pierre-Louis – Introdiction a la Data science 19 DATA MANAGEMENT PROC SQL: Procédure faisant appel au langage SQL(Structured Query Language) Elle suit des règles de syntaxe distinctes de celles des autres procédures SAS ( elle finit par ;QUIT;) Permet de créer des macro variables Thouvenot Pierre-Louis – Introdiction a la Data science 20 DATA MANAGEMENT PROC CONTENTS: Permet d’afficher la description d’une table ─ Nombre d’observations ─ Nombre de variables ─ Liste et position des variables Permet de stocker ces données PROC SORT: Permet de trier une table par clé Permet de de doublonner une table PROC PRINT: Permet d’afficher les données Thouvenot Pierre-Louis – Introdiction a la Data science 21 DATA MANAGEMENT PROC RANK: Permet d’attribuer à chaque observation un rang ( décile …) PROC TRANSREG: Permet de calculer les indicatrices d’un grand nombre de variables Thouvenot Pierre-Louis – Introdiction a la Data science 22 STATISTIQUES DESCRIPTIVES PROC FREQ: Permet d’afficher des comptages et des pourcentages Permet de sortir des croisements De faire des tests statistiques comme le Ki2 De stoker les résultats des croisements Thouvenot Pierre-Louis – Introdiction a la Data science 23 STATISTIQUES DESCRIPTIVES PROC CORR: Permet de calculer le coefficient de corrélation de: ─ ─ ─ ─ PEARSON SPEARMAN KENDALL HOEFFDING Permet de calculer les statiques classique: ─ Moyenne ─ Ecart type Stocker la matrice des corrélations: Thouvenot Pierre-Louis – Introdiction a la Data science 24 ECHANTILLONNAGE PROC SURVEYSELECT Permet d’effectuer un certain nombre d’échantillonnages: ─ Tirage aléatoire ─ Équiprobable avec remise ─ Stratifié Permet de stocker les résultats: Thouvenot Pierre-Louis – Introdiction a la Data science 25 RÉGRESSION LOGISTIQUE PROC LOGISTIQUE: Permet de réaliser plusieurs types de régression: ─ Classique ─ Stepwise ─ Forward Permet d’apprendre sur un base d’apprentissage de tester sur l’echantillon de test D’afficher le modèle De stocker les probabilités Thouvenot Pierre-Louis – Introdiction a la Data science 26 Mise en pratique ETAPE 1: CONSTRUIRE Importer les données: T1.csv T2.csv Cible.csv Consolider l’information pour ne faire plus qu’une seule table de travail Valider les volumes Thouvenot Pierre-Louis – Introdiction a la Data science 28 STATISTIQUES DESCRIPTIVES Sortir des statistiques descriptives sur : Les variables explicatives Le lien avec la cible Quel sont les informations exploitables ? Comment gérer les valeurs aberrantes? Thouvenot Pierre-Louis – Introdiction a la Data science 29 DISCRÉTISATION/ REGROUPEMENT Découper les variables quantitatives Croiser la cible avec l’ensemble des variables explicatives Faudrait-il regrouper des modalités? Thouvenot Pierre-Louis – Introdiction a la Data science 30 DICHOTOMISATION ET GESTION DES CORRÉLATION Dichotomiser les variables que vous souhaitez entre dans l’analyse Calculer le Kawlais Calculer les corrélations Quels axes garder ? Thouvenot Pierre-Louis – Introdiction a la Data science 31 RÉGRESSION Créer un échantillon d’apprentissage et de test Exécuter la régression logistique Interpréter les résultats Thouvenot Pierre-Louis – Introdiction a la Data science 32 Analyse STATISTIQUES DESCRIPTIVES Données quantitatives Résultat de la proc means Indicateurs N %Vide Mediane Mean Stddev Maximum Minimum Mode Variables Age Prix 1046 20% 28 29,9 14,4 80,0 0,17 24 Données qualitatives Résultat de la proc freq Sur-représentation des célibataires et des hommes 1308 0% 14 33,3 51,8 512,3 0 8,05 Sex female male N SibSp % 466 843 35,6 64,4 0 1 2 3 4 5 8 N % 891 319 42 20 22 6 9 68,07 24,37 3,21 1,53 1,68 0,46 0,69 Peu de parents à bord et un embarquement principalement à Southampton Qualité renseignement: La variable AGE est mal renseignée et demandera un retraitement Un passager n’a pas de prix de billet Qualité des données: Il existe probablement des données aberrantes (prix =0) Parch 0 1 2 >=3 N 1002 170 113 24 Thouvenot Pierre-Louis – Introdiction a la Data science % 76,55 12,99 8,63 1,83 Embarked N % 270 20,66 C 123 9,41 Q 914 69,93 S Frequency Missing = 2 34 TRAITEMENT DES DONNÉES VIDES SibSp 0 1 2 3 4 5 8 %VIDE %TOTAL 23% 12% 14% 20% 0% 0% 89% 78% 15% 2% 2% 0% 0% 3% La corrélation est faible entre les deux axes quanti (0,178) fait que l’on ne peut pas utiliser le prix pour estimer les âges manquants Le croisement avec l'âge abouti avec un taux de vide plus faible que la moyenne (14% pour les femmes, 18% pour les hommes) Il n’y a pas d’utilité à utiliser cette variable pour estimer l'âge On pourrait affecter l‘âge moyen selon le nombre frères et sœurs Parch 0 1 2 3 4 5 6 9 %VIDE %TOTAL 23% 6% 14% 0% 17% 0% 0% 100% 89% 4% 6% 0% 0% 0% 0% 1% On peut affecter l'âge moyen selon le nombre de parents L’affinage sera faible dans ce cas par conséquent ont pourrait remplacer les vides par l'âge moyen des passagers Thouvenot Pierre-Louis – Introdiction a la Data science 35 DISCRÉTISATION DES VARIABLES Résultat de la PROC RANK AGE min 0 1 2 3 4 5 6 7 8 9 0,2 17,0 20,5 24,0 28,0 32,0 32,0 32,5 39,0 48,0 max N 16,0 20,0 23,5 27,0 31,0 32,0 32,0 38,5 47,6 80,0 Choix du découpage en décile 134 130 113 153 132 234 24 123 133 133 Les déciles sont déséquilibrés Fare Pour le prix les déciles sont plus équilibrés min 0 1 2 3 4 5 6 7 8 9 Thouvenot Pierre-Louis – Introdiction a la Data science 0 7,575 7,8542 8,1125 10,5167 14,4583 21,6792 27 41,5792 78,2667 max 7,55 7,85 8,05 10,5 14,4542 21,075 26,55 40,125 77,9583 512,3292 N 131 123 167 108 128 127 132 130 132 131 36 DISCRÉTISATION/REGROUPEMENT Une sur-représentation des survivants dans: Le premier décile Déciles 6,7 et 9 Un sur-représentation des décès dans le décile 3 La variables est convenablement renseigné Plus le prix augmente, plus la survie est probable Il faudrait regrouper les déciles De 0-4 De 5-9 Thouvenot Pierre-Louis – Introdiction a la Data science 37 DISCRÉTISATION/REGROUPEMENT Une sur-représentation des femmes chez les survivants Cette variable ce détache par son importance La première classe a un rôle important dans la survie La seconde classe est relativement neutre Thouvenot Pierre-Louis – Introdiction a la Data science 38 TEST KWALIS Le test du Kwallis est un test non paramétrique qui permet de déterminer les médianes de deux groupes ou plus différents Le test confirme notre observation, le sexe et la classe sont deux facteurs essentiel pour la survie Thouvenot Pierre-Louis – Introdiction a la Data science 39 GESTION DES CORRELATIONS Les champs faiblement corrélés peuvent être inclus dans le modèle _NAME_ Age_TR0 Age_TR1 Age_TR2 Age_TR3 Age_TR4 Age_TR5 Age_TR6 Age_TR7 Age_TR8 Age_TR9 Pclass SibSp fare_TR0 fare_TR1 fare_TR2 fare_TR3 fare_TR4 fare_TR5 fare_TR6 fare_TR7 fare_TR8 fare_TR9 female male Age_TR0 1,0 -0,1 -0,1 -0,1 -0,1 -0,2 0,0 -0,1 -0,1 -0,1 0,1 0,3 -0,1 -0,1 -0,1 0,0 0,0 0,1 0,0 0,2 0,0 0,0 0,1 Age_TR1 -0,1 1,0 -0,1 -0,1 -0,1 -0,2 0,0 -0,1 -0,1 -0,1 0,1 0,1 0,0 0,0 0,0 0,1 0,0 0,0 0,0 -0,1 0,0 0,0 0,0 Age_TR2 -0,1 -0,1 1,0 -0,1 -0,1 -0,1 0,0 -0,1 -0,1 -0,1 0,1 -0,1 0,1 0,1 0,0 0,1 0,0 -0,1 -0,1 -0,1 0,0 0,0 0,0 Age_TR3 -0,1 -0,1 -0,1 1,0 -0,1 -0,2 0,0 -0,1 -0,1 -0,1 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 Age_TR4 -0,1 -0,1 -0,1 -0,1 1,0 -0,2 0,0 -0,1 -0,1 -0,1 0,0 0,0 -0,1 0,0 0,0 0,0 0,1 0,0 0,0 0,0 0,0 0,0 0,0 Age_TR5 -0,2 -0,2 -0,1 -0,2 -0,2 1,0 -0,1 -0,2 -0,2 -0,2 0,2 -0,1 0,1 0,2 0,1 -0,1 -0,1 0,0 0,0 -0,1 -0,1 -0,1 -0,1 Age_TR6 0,0 0,0 0,0 0,0 0,0 -0,1 1,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,1 0,0 0,0 0,0 0,0 0,0 0,0 0,0 -0,1 Age_TR7 -0,1 -0,1 -0,1 -0,1 -0,1 -0,2 0,0 1,0 -0,1 -0,1 -0,1 0,0 0,0 -0,1 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,1 0,0 Age_TR8 -0,1 -0,1 -0,1 -0,1 -0,1 -0,2 0,0 -0,1 1,0 -0,1 -0,1 -0,1 0,0 -0,1 -0,1 -0,1 0,0 0,0 0,0 0,1 0,0 0,0 0,0 Age_TR9 -0,1 -0,1 -0,1 -0,1 -0,1 -0,2 0,0 -0,1 -0,1 1,0 -0,3 0,0 -0,1 -0,1 -0,1 0,0 0,0 -0,1 0,1 0,0 0,1 0,2 0,0 Pclass 0,1 0,1 0,1 0,0 0,0 0,2 0,0 -0,1 -0,1 -0,3 1,0 0,1 0,2 0,3 0,3 0,1 0,0 0,2 -0,1 -0,2 -0,3 -0,5 -0,1 SibSp 0,3 0,1 -0,1 0,0 0,0 -0,1 0,0 0,0 -0,1 0,0 0,1 1,0 -0,1 -0,1 -0,1 -0,1 -0,1 0,1 0,0 0,2 0,3 0,1 0,1 fare_TR0 -0,1 0,0 0,1 0,0 -0,1 0,1 0,0 0,0 0,0 -0,1 0,2 -0,1 1,0 -0,1 -0,1 -0,1 -0,1 -0,1 -0,1 -0,1 -0,1 -0,1 -0,2 fare_TR1 -0,1 0,0 0,1 0,0 0,0 0,2 0,0 -0,1 -0,1 -0,1 0,3 -0,1 -0,1 1,0 -0,1 -0,1 -0,1 -0,1 -0,1 -0,1 -0,1 -0,1 0,0 fare_TR2 -0,1 0,0 0,0 0,0 0,0 0,1 0,1 0,0 -0,1 -0,1 0,3 -0,1 -0,1 -0,1 1,0 -0,1 -0,1 -0,1 -0,1 -0,1 -0,1 -0,1 -0,2 fare_TR3 0,0 0,1 0,1 0,0 0,0 -0,1 0,0 0,0 -0,1 0,0 0,1 -0,1 -0,1 -0,1 -0,1 1,0 -0,1 -0,1 -0,1 -0,1 -0,1 -0,1 0,0 fare_TR4 0,0 0,0 0,0 0,0 0,1 -0,1 0,0 0,0 0,0 0,0 0,0 -0,1 -0,1 -0,1 -0,1 -0,1 1,0 -0,1 -0,1 -0,1 -0,1 -0,1 0,0 fare_TR5 0,1 0,0 -0,1 0,0 0,0 0,0 0,0 0,0 0,0 -0,1 0,2 0,1 -0,1 -0,1 -0,1 -0,1 -0,1 1,0 -0,1 -0,1 -0,1 -0,1 0,1 fare_TR6 0,0 0,0 -0,1 0,0 0,0 0,0 0,0 0,0 0,0 0,1 -0,1 0,0 -0,1 -0,1 -0,1 -0,1 -0,1 -0,1 1,0 -0,1 -0,1 -0,1 0,0 fare_TR7 0,2 -0,1 -0,1 0,0 0,0 -0,1 0,0 0,0 0,1 0,0 -0,2 0,2 -0,1 -0,1 -0,1 -0,1 -0,1 -0,1 -0,1 1,0 -0,1 -0,1 0,0 fare_TR8 0,0 0,0 0,0 0,0 0,0 -0,1 0,0 0,0 0,0 0,1 -0,3 0,3 -0,1 -0,1 -0,1 -0,1 -0,1 -0,1 -0,1 -0,1 1,0 -0,1 0,0 fare_TR9 0,0 0,0 0,0 0,0 0,0 -0,1 0,0 0,1 0,0 0,2 -0,5 0,1 -0,1 -0,1 -0,1 -0,1 -0,1 -0,1 -0,1 -0,1 -0,1 1,0 0,2 female 0,1 0,0 0,0 0,0 0,0 -0,1 -0,1 0,0 0,0 0,0 -0,1 0,1 -0,2 0,0 -0,2 0,0 0,0 0,1 0,0 0,0 0,0 0,2 1,0 male -0,1 0,0 0,0 0,0 0,0 0,1 0,1 0,0 0,0 0,0 0,1 -0,1 0,2 0,0 0,2 0,0 0,0 -0,1 0,0 0,0 0,0 -0,2 -1,0 -0,1 0,0 0,0 0,0 0,0 0,1 0,1 0,0 0,0 0,0 0,1 -0,1 0,2 0,0 0,2 0,0 0,0 -0,1 0,0 0,0 0,0 -0,2 -1,0 1,0 Un autre méthode consisterait à: Faire une ACP rotationnelle sur les variables pour maximiser la corrélation interne et minimiser la corrélation externe Associer pour chaque axe son pouvoir discriminant Prendre par cluster la variable ayant le Kwalis le plus important Thouvenot Pierre-Louis – Introdiction a la Data science 40 EXERCICE : INTERPRÉTATION DES RÉSULTATS Périmètre Volume: 1309 Taux cible: 38% Courbe roc - Ensemble des passagers du Titanic Taux de cible Variables Negatif Variables discrimiantes Femme Pclass Positif En sélectionnant 20% des moins risqués on capte 60% des survivants Modélisation sous R PRÉSENTATION Open source sortie du laboratoire Bell basé sur le langage S dans les années 90 Basé sur l’utilisation de packages ce qui permet : D’augmenter la puissance de R De trouver une réponse adaptée au besoin De s’adapter à une base de données Big data De nombreuses évolutions disponibles: R studio R shiny Thouvenot Pierre-Louis – Introdiction a la Data science 43 Procédures utiles LES PROCÉDURES QUI VONT NOUS SERVIR Import de données Read.table Datamanagement Merge Rbind Data.frame(model.matrix()) Cbind Echantillonnage set.seed(111) d=sort(sample(nrow(T7),nrow(T7)*0.65)) apprent=T7[d,] test=T7[-d,] Statistiques Glm Summary() step(modele, dir="backward") Matrice de confusion test.p <- cbind(test.p, pred.Survived<- factor(ifelse(test.p$fit as.matrix(table(test.p$pred.Survived, test.p$Survived))) > Thouvenot Pierre-Louis – Introdiction a la Data science 0.5, 1, 0)))(m.confusiontest <- 45 IMPORT/ DATA MANAGEMENT Import de données Read.table: permet d’importer une table, il faut spécifier le chemin d’accès, le séparateur colonne et l’existence du nom des variables en première ligne Data management Replace(): permet de remplacer une valeur par une autre Head(): permet d’afficher les 5 premières lignes d’une table Merge: permet la jointure de tables Thouvenot Pierre-Louis – Introdiction a la Data science 46 DATA MANAGEMENT Data management Rbind(); permet de concaténer des tables model.matrix(): permet de dichotomiser des champs T[,c()]: permet de réorganiser une table Thouvenot Pierre-Louis – Introdiction a la Data science 47 ECHANTILLONNAGE Echantillonnage Sort(Sample()): permet d’effectuer un tirage aléatoire On repartit le résultat dans deux tables une d’apprentissage et une de test Thouvenot Pierre-Louis – Introdiction a la Data science 48 STATISTIQUES Statistiques descriptives Summary(): permet de sortir des statistiques descriptives d’une table Modélisation glm(): permet de faire différents type de régressions dont la logistique la library MASS est requise Step: permet de choisir le type de méthode pour la sélection de variables Matrice de confusion Thouvenot Pierre-Louis – Introdiction a la Data science 49 Mise en pratique OBJECTIFS Prendre en main Importer les données Effectuer des tâches de datamanagement Sortir des statistiques descriptives Réplication Faire une régression logistique sous R Comparer les résultats Implémenter une nouvelle méthode statistique Mettre en place un réseau de neurones Comparer les résultats Thouvenot Pierre-Louis – Introdiction a la Data science 51 Méthode statistique RÉSEAUX DE NEURONE Est un simplification du fonctionnement de plusieurs neurones Des neurones modulent un signal Les neurones sont construits en couches Les neurones sont connectés entre eux Le mécanisme d’apprentissage repose sur la minimisation d’une fonction de coût par un algorithme adaptatif de type gradient Thouvenot Pierre-Louis – Introdiction a la Data science 53 Exemple SCRIPT Echantillonnage Création du modèle On appelle la librairie nnet On applique la fonction net avec: ─ ─ ─ ─ ─ L’équation du modèle L’existence de couches caché Le nombre de neurones La table d’apprentissage Le nombre maximum d’itérations Validation du modèle Thouvenot Pierre-Louis – Introdiction a la Data science 55 RÉSULTATS Une équation qui peut rapidement devenir incompréhensible Taux d’erreur sur la population test: 61% Thouvenot Pierre-Louis – Introdiction a la Data science 56 Modélisation sous Python PRÉSENTATION Un peu d’histoire 1990: Création de python pas le programmeur Gudio von Rossum 1990-2000: Acquisition d’une notoriété de ce langage dans la construction des sites web 2000: Adoption du calcul scientifique 2016: Transversalité de l’outil qui permet d’aller de la recherche à la mise en production Comme R python fonctionne sur l’appel de bibliothèques dont les plus utilisé en data science sont: Bibliothéque Description PANDAS IPY THON SCIPY paquetage qui offre des structures de données et des fonctions conçurs pour rendre l'utilisation de données structurées rapide, facile et expressive. L'object de base est le DataFrame un tableau à deux dimensions, orienté colonnes, avec des étiquettes de colonnes et de lignes Composant de la boîte à outils standard de python destiné au monde scientifique Bibliothéque dédiés à differents domaines de problèmes clasiques en informatique scientifique. Notament: -scripy.integrate : routine d'inégration numérique et solveurs d'equation différentiels -scripy.linalg: routines d'algébre linéaire et décomposition de matrices au-delà des extensions fournies par numpy.linalg -scripy.optimize: optimisation de fonctions et algorithmes de recherhce de racine -scripy.signal: outils de traitement de signal -scripy.sparse:splveurs de matrices creuses et de systèmes linéaires creux -scripy.special: w rapper développé autour de SPECFUN, un bibliothéque Fortran qui implémente de nombreuses fonctions mathématiques courantes comme la fonction gamma -scripy.stats: distributions standrads de probabilités continues et discrètes, divers tests statistiques et statistiques descriptives -scripy.w ave: outil pour utiliser le code inline C++ pour accélérer les calculs matriciels MATPLOTLIB Bibliothéque la plus populaire de construction de graphiques NUMPY paquetage de base pour le calcul scientifique. Il fournit: - un tableau multidimensionnel rapide et efficace(ndarry) - des fonctions pour réaliser des calculs élément par élément au sein d'un même tableau ou des opérations mathématiques entre tableaux -des outils pour lire et écrire des jeux de données sous forme de tableau sur disque - des operations d'algebre linéaire, des algorithmes type transformation de Fourier rapide et de génération de nombres aléatoires -des outils pour intégrer C,C++ et Fortran avec Python Thouvenot Pierre-Louis – Introdiction a la Data science SCIKITLEARN Bibliothéque de machine learning 58 Procédures utiles LES PROCÉDURE QUE NOUS ALLONS UTILISER Librairie Import Nom_lib as Help() Import de données Read_csv() Data management Head() Merge() Concat Replace() Drop() Echantillonnage Train_test_split() Statistiques Decribe() LogisticRegression() RandomForestClassifier() Tit() Fit() Score() Thouvenot Pierre-Louis – Introdiction a la Data science 60 LIBRAIRIE/ IMPORT librairies Import nom as : permet d’importer une bibliothèque et de la renommer Help : permet de connaître le détail des bibliothèques Import de données Read_csv: permet d’importer une table csv Thouvenot Pierre-Louis – Introdiction a la Data science 61 DATA MANAGEMENT Data management Head(): permet d’afficher les 5 premières lignes d’une table Merge(): permet de faire des jointures Concat(): permet de fusionner des tables Get_gummies(): permet de dichotomiser des variables Thouvenot Pierre-Louis – Introdiction a la Data science 62 DATA MANAGEMENT/ECHANTILLONNAGE Data management Rename(): permet de renommer des colonnes Doublons(): permet d’identifier des doublons Replace(): permet de remplacer des données Echantillonnage train_test_slpit: permet de créer un échantillon d’apprentissage et de validation Thouvenot Pierre-Louis – Introdiction a la Data science 63 STATISTIQUES Statistiques descriptives Value_counts():permet de compter des valeurs Correfcof(): permet de calculer les corrélations Describe(): permet de calculer des statistiques descriptives Modélisation Régression logistique Arbre de décision SVM Thouvenot Pierre-Louis – Introdiction a la Data science 64 Mise en pratique OBJECTIFS Prise en main Importer les données Effectuer des taches de data management Sortir des statistiques descriptives Réplication Faire une régression logistique sous R Comparer les résultats Implémentation de deux nouvelles méthodes statistiques Une foret aléatoire Une SVM Comparer les résultats Thouvenot Pierre-Louis – Introdiction a la Data science 66 Méthodes statistiques MACHINE LEARNING SVM Les 4 principes de la théorie de Vapnik Cohérence: si le nombre d’observations est très grand alors l’erreur sur un nouveau jeu de données sera similaire a celui de l’apprentissage Vitesse de convergence: plus il y a de points, plus il est facile de généraliser . Généralisation: si le ratio du nombre d’observations sur le nombre de dimensions vc est grand alors le modèle généralise bien SRM: méthode qui permet de trouver l’optimun entre Remp et Rgen Thouvenot Pierre-Louis– Introduction au Big Data 68 MACHINE LEARNING FORET ALÉATOIRE La forêt aléatoire se fonde sur les arbres de décision introduits par Léo Breinman en 1984 Il existe de nombreuses méthodes pour réaliser un arbre de décision: CART C4,5 CHAID ID3 La forêt aléatoire n’est autre que la génération en parallèle d’un grand nombre d’arbres de décision Thouvenot Pierre-Louis– Introduction au Big Data 69 Annexe OUVRAGES DE REFERENCE Wes Mc Kinney, Analyse de données en Python, Manipulation de données avec pandas, Numpy. Editions Eyrolles,2015,488p Stéphane Tuffery, Etude de cas en statistique décisionnelle. Editions TECHNIP,2009,384p Catherine Dehon, Jean-jacques Droesbeke, Catherine Vermandele, Eléments de statistique. Editions ELLIPSES,2008,666p