Transcription of Chapitre 4 OUTILS PYTHON POUR LA DATA SCIENCE
1 Mineure Data SCIENCE Fr d ric PennerathOUTILS PYTHON POUR LA DATA SCIENCEC hapitre 4 Mineure Data SCIENCE Fr d ric PennerathL cosyst me PYTHON pour les data scientistsPlotly, .. nltk , CoreNLP, Gensim, textblob, SpaCy, ..FoliumGeoPandas, ..SeabornTensorFlow, ..VisualisationWebGIST raitement du signalBases de donn esBigDataMachine LearningTraitement du langage naturelMineure Data SCIENCE Fr d ric PennerathScikitlearnDonn es X : tableau 2D numpyde taille (n. exemples) x (n. variables) Y : tableau 1D numpyde taille ( )Induction du mod le Cr ation d un estimateur/mod le (hyper param tres pass s au constructeur) M thode fit(Xa,Ya)apprend les param tres du mod le partir de donn es d apprentissagePr diction M thode predict(X) pr dit un vecteur de sortie YpEvaluation M thode score(Xtest,Ytest)utilise la fonction associ e au classifieur Nombreuses fonctions de score/co t dans Nombreuses techniques d valuation (CV k-folds, etc) dans Data SCIENCE Fr d ric PennerathMod leimport numpyas npfromsklearnimport datasetsdata = ()X,Y = , # M lange le jeu de donn shuffleX,Y = shuffle(X,Y)# Cr e une for t de 10 RandomForestClassifierforest= RandomForestClassifier(n_estimators= 10)# D coupe en jeu d'apprentissage et jeu de testXa,Xt= X[ *len(X)], X[ *len(X):]Ya,Yt= Y[ *len(Y)], Y[ *len(Y).]
2 ]# Apprend le mod (Xa,Ya)# Pr dit la sortieYp= (Xt)Mineure Data SCIENCE Fr d ric PennerathValidation crois e# Evalue le mod le (score par d faut)print("score = ", (Xt,Yt))# Utilise une m zero_one_lossprint("zeroloss= ", zero_one_loss(Yt,Yp))# Validation crois e avec fonction pr d finieforest= RandomForestClassifier(n_estimators= 10)fromsklearnimport cross_validationas cvacc= (forest,X,Y, cv = 10, scoring= "accuracy")print("accuracy= ", ())# Validation crois e avec fonction de perte sp make_scorercout = ([3,1,2])defmyloss(yreel, ypred): return cout[yreel[yreel!= ypred]].sum()myloss= (forest,X,Y,cv= 10, scoring= make_scorer(myloss))print("myloss= ", ())Mineure Data SCIENCE Fr d ric IndexDataFrameData SerieDataIndexData SerieIndexMineure Data SCIENCE Fr d ric PennerathPandasimport pandas as pdimport numpyas np# Cr ation d'un "DataFrame"data = {"site" : [ "Mus e d'Art Moderne", "Mus e du Louvres", "Mus e d'Orsay", "Centre Pompidou", "Centre Pompidou", "Mus e des Beaux-Arts" ],"type" : [ "Contemporain", "Classique", "Impressionisme", "Contemporain", "Contemporain", "Classique" ],"ville" : [ "Strasbourg", "Paris", "Paris", "Paris", "Metz", "Nancy" ],"visite" : [ 2011, 2012, 2012, 2012, 2015, 2011 ]}frame = (data, index = ["Str1", "Par1", "Par2", "Par3", "Mtz1", "Ncy1"])# S lections de colonnes et de lignesprint(frame[[1,2]].)
3 Ix[1:3])print(frame[['site','ville']].ix ['Str1':'Mtz1'])sample= ( (0, len(frame), size = 2))# Ajout, suppression de lignes, de colonnesframe['nbr'] = [2,2,3,3,4,1,]delframe['nbr'] ('Mtz1')Mineure Data SCIENCE Fr d ric PennerathPandas# Statistiquesprint( ())print(frame['visite'].mean())# Histogrammes et discr ( ,2)frame['periode']= ( ,2)# Aggr gationgroups = (frame['type'])print( ())print( (lambda g : ( (), ())))# Nettoyage et pr ()frame['code'] = frame['type'].map({ "Contemporain": 1, "Classique" : 2 })frame = ()# Jointureframe2 = ({"ville" : [ "Strasbourg", "Paris","Metz", "Nancy" ],"dept" : [ 67, 75, 57, 54 ]})frame3 = (frame, frame2, on='ville')Mineure Data SCIENCE Fr d ric PennerathMatplotlibet les projections cartographiquesimport pltimport numpyas Basemap# Cr e une projection centr e sur San Franciscoframe = (( , ), ( , ))map= Basemap(llcrnrlon=frame[0][0], llcrnrlat=frame[0][1],urcrnrlon=frame[1] [0], urcrnrlat=frame[1][1], epsg=3493)# Charge le plan associ la (service='ESRI_StreetMap_World_2D', xpixels= 1000, verbose= True)latitudes = (.
4 ; longitudes = ..couleurs = ..; rayons = ..# Convertit (long,lat) en position image(X,Y)=map(longitudes, latitudes)# Appel classique aux fonctions (X, Y, rayons, marker = 'o', color= couleurs, alpha = )# Lance l ()Mineure Data SCIENCE Fr d ric Pennerathimport sqlite3villes = [{ "nom" : "Metz", "pays" : 1, "popu" : },..]pays = [{ "code" : 1, "nom" : "France" },{ "code" : 2, "nom" : "Luxembourg" } ]# Connexion la base (simple fichier)connection= (' ') # Cr ation de ('CREATE TABLE IF NOT EXISTS villes (nom text, pays integer, population real)') ('CREATE TABLE IF NOT EXISTS pays (nom text, code integer)')# Suppression des entr es ('DELETE FROM villes') ('DELETE FROM pays')# Remplissage des tables partir d un tableau de ('INSERT INTO villes VALUES (:nom, :pays, :popu)', villes) ('INSERT INTO pays VALUES (:nom, :code)', pays)# Confirme la mise ()Une base SQL tr s l g re (un seul fichier) mais Data SCIENCE Fr d ric PennerathTest 3R sultat 3 Test 2R sultat 2 Test 1 Validation crois eBut : valuer la capacit g n raliser Risque de sur-apprentissage besoin d un jeu d exemples et de test ind pendant Nombre d chantillons limit Solution : validation crois e 3-fold, 10-fold.
5 , m-fold(leave-one-out)Donn esJeu 1 Jeu 2 Jeu 3 Jeu 3 Jeu 1 Jeu 2 Jeu 3 Jeu 2 Jeu 1R sultat 133 %33 %MoyenneStratification :partition assurant une m me proportion des classesR sultatExemples de testExemples d apprentissageMineure Data SCIENCE Fr d ric PennerathEvaluation d une m thode de r gressionProbl me : mesurer les carts entre pr dictions et valeurs cibles r ellesMesureD finitionCorr lation entre et , = 1 1 2 1 2 Erreur absolue (L1) moyenne 1=1 1 Erreur quadratique (L2) moyenne 2=1 1 2 Erreurs absolue et quadratique relatives 1/2 1/2 = Mineure Data SCIENCE Fr d ric PennerathEvaluation d une m thode de classification binaire :Pr dictionR alit positifn gatifpositif (P)vraipositif (VP)faux n gatif (FN)n gatif (N)faux positif (FP)vrai n gatif (VN)Les 4 cat gories de pr diction d un classifieurbinaire :Taux d erreur : estimation du risque moyen o estl erreurvalant0 ou1 = + + Taux de r ussite / de pr diction (accuracy) : = + + =1 Mineure Data SCIENCE Fr d ric PennerathG n ralisation au probl me multi-classe : Matrice de confusionPr dictionR alit Classe 1 Classe 2 Classe3 Classe 4 Classe 1n11n12n13n14 Classe 2n21n22n23n24 Classe 3n31n32n33n22 Classe 4n41n42n43n44 Taux de r ussite : = , , , Mineure Data SCIENCE Fr d ric PennerathConfiance sur les mesures (1)Probl me 1 : quelle confiance accorder une mesure calcul e sur un ensemble fini d exemples de test ?
6 R ponse : calculer un intervalle de confianceExemple du taux d erreur calcul sur m exemples se : exemples ind p. ident. distribu s (apprent. et test) Si la probabilit de commettre une erreur est p, le nombre d erreurs Ne= =1 suit une distribution binomiale de prob. p, telle que = 2= (1 )2. converge vers une loi normale car m >> 100 (loi des grands nombres) =1 =Ne + , 1 Mineure Data SCIENCE Fr d ric PennerathConfiance sur les mesures (2) de la distribution : + , 1 1 + (0,1) d un intervalle de confiance de risque sur 0,1: > ~ 0,1= = 0,1 duction d un intervalle de confiance sur p fonction de et m : =1 / = + 22 2 + 24 21+ 2 Mineure Data SCIENCE Fr d ric PennerathApplication num rique :Exemple des donn es Glass (identification de verres en criminologie) exemples : = d erreur de =1% =2,58, =5% =1, en validation crois e.
7 Mesure de . Ex : =66% de l intervalle de confiance = % = % 66 %57 %73 %59 %72 %90 %83 %94 %85 %93 %99 %95 %99,8 %96,6%99,7 %Mineure Data SCIENCE Fr d ric PennerathConfiance sur les mesures (3)Probl me : comment comparer deux m thodes (A et B) selon une mesure calcul e sur diff rents jeux de donn es ?Exemple d un score s calcul sur k jeux de m exemples se : exemples ind p. ident. distribu s et m lev >> 100 et suivent des lois normales (loi des grands nombres) pour le jeu i = suit une loi normale (loi des grands nombres) ind pendante de i : = ~ , de la mesure globale : = =1 ~ , des param tres : = =1 , 2= =1 2 1 Mineure Data SCIENCE Fr d ric PennerathConfiance sur les mesures (4)Probl me : la variance n est pas connue (loi du 2) : ~ , 2~? distribution normalis e suit une loi de Student 1de degr k-1: 2~ d hypoth se nulle : A et B sont quivalentes si = d un intervalle de confiance de risque sur S(k) : > = = 1( ) statistique : Si < 2< alors A et B sont statistiquement quivalents Sinon si >0, A est meilleur que B Sinon B est meilleur que AMineure Data SCIENCE Fr d ric PennerathProbl me des classes d s quilibr es Compromis optimal entre sensibilit et sp cificit : ( )= = Exemples : classifieur toujours positif =1, =0 classifieur toujours n gatif =0, =1 classifieural atoire positif de prob.
8 = , =1 Biais du taux de r ussite (accuracy) par le taux de positif : = + + = + + + = +1 tp "tjrspositif"=tp ("tjrsn gatif")=tn Taux de r ussite non biais : =12 +12 Mineure Data SCIENCE Fr d ric PennerathCourbe ROC (receiveroperating characteristic)Taux de faux positif = 1 -sp cificit Taux de vrai positif = sensibilit 0011 Classifieurs compl mentairesClassifieurs al atoiresClassifieurtoujours positifClassifieurtoujours n gatifClassifieurparfaitAUC (area undercurve)Indice de GiniG1/212 1 = ..> .. 1=2 12 0 >1 0,1 Mineure Data SCIENCE Fr d ric PennerathCourbe ROC (receiveroperating characteristic)Taux de faux positif = 1 -sp cificit Taux de vrai positif = sensibilit 0011 = +1 + 1 2 = + 2 Mineure Data SCIENCE Fr d ric PennerathLien avec les courbes lift (lift chart) Outil utilis en marketing (d marchage, etc) Tri des exemples par score d croissant Abstraction du score Lift chart: nombre de oui versus taille de l chantillonP(y=c)y=c0,98oui0,95oui0,93oui 0,93non0,90oui0,83non0,8non0,8oui0,8oui0 , de l chantillonNombre de oui0 %100 %0 %100 %Echantillon 1 : taille 5, oui 4 Echantillon 2 : taille 10 oui 6 Mineure Data SCIENCE Fr d ric PennerathErreur de classification co t variable et aide la d cisionApplication o le co t de l erreur est asym trique Exemples.
9 Diagnostic m dical, diagnostic de pannes, de co t :Crit re minimiser : ( )= , , , , , Si = =011101110alors ( )= , , , vautle tauxd erreurPr dictionR alit Bon tatD faillant (d pannage)Critique (arr t d exploitation)Bon tat100 1000 10000 D faillant(aggravation)100000 10000 19000 Critique(risque d accident)100000000 100000000 100000 Etat des r acteurs d un avionMineure Data SCIENCE Fr d ric PennerathCas des classifieurs probabilistes Sortie : probabilit d appartenance chaque classe = = Minimisation de l esp rance du co t : | = , = = , | = , = =argmin | = , Paradoxe : la plus grande probabilit n est pas forc ment la meilleurecritique 1,01110001,0049,095,01010101010101010105 588445432 yPCTTM ineure Data SCIENCE Fr d ric PennerathMesures entropiquesEntropie : = log Positive ou nulle. Nulle si nulle Quantifie l incertitude d une distributionDistance ou divergence de Kullback-Leibler , = log Positive ou nulle.
10 Nulle si = Pseudodistanceentre distributionsEntropie crois e , = log = + , ( ) Quantifie l incertitude qui s ajoute repr senter p par qLogloss:Estimation de l entropie crois e entre les classes r elles ( ) et la probabilit des classes pr dites ( ) = 1 =1 =1 = log( , )