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