Example: bankruptcy

ACP avec Python - eric.univ-lyon2.fr

Tanagra data Mining 8 juin 2018 Page 1/24 1 Introduction ACP (analyse en composantes principales) sous Python . Package scikit-learn . Le code programme Python et les donn es de ce tutoriel sont accessibles sur : J avoue avoir t estomaqu lorsque j ai pris connaissance des r sultats du sondage annuel de KDnuggets, Python eats away at R : Top Software for analytics , data Science, Machine Learning in 2018: Trends and Analysis (Mai 2018), o des utilisateurs disent utiliser Python en conjonction avec d autres outils, contre pour R. L cart ( ) est norme ! J avais vu la mont e de Python . Je m tais dit que mes tudiants ne pouvaient pas passer c t de ce ph nom ne. Je m y suis investi dans mes enseignements depuis quelques ann es. Mais je ne pensais pas que ce serait aussi rapide ( eats away , grignoter ou d vorer ?). Pour ma part, j ai toujours t r fractaire aux ph nom nes de mode.

KDnuggets, « Python eats away at R : Top Software for Analytics, Data Science, Machine Learning in 2018: Trends and Analysis » (Mai 2018), où 65.6% des utilisateurs disent utiliser Python en conjonction avec d’autres outils, contre 48.5% pour R. L’écart (17.1%) est énorme ! J’avais vu la montée de Python.

Tags:

  Python, Data, Analytics

Information

Domain:

Source:

Link to this page:

Please notify us if you found a problem with this document:

Other abuse

Advertisement

Transcription of ACP avec Python - eric.univ-lyon2.fr

1 Tanagra data Mining 8 juin 2018 Page 1/24 1 Introduction ACP (analyse en composantes principales) sous Python . Package scikit-learn . Le code programme Python et les donn es de ce tutoriel sont accessibles sur : J avoue avoir t estomaqu lorsque j ai pris connaissance des r sultats du sondage annuel de KDnuggets, Python eats away at R : Top Software for analytics , data Science, Machine Learning in 2018: Trends and Analysis (Mai 2018), o des utilisateurs disent utiliser Python en conjonction avec d autres outils, contre pour R. L cart ( ) est norme ! J avais vu la mont e de Python . Je m tais dit que mes tudiants ne pouvaient pas passer c t de ce ph nom ne. Je m y suis investi dans mes enseignements depuis quelques ann es. Mais je ne pensais pas que ce serait aussi rapide ( eats away , grignoter ou d vorer ?). Pour ma part, j ai toujours t r fractaire aux ph nom nes de mode.

2 Il n en reste pas moins qu il faut rester lucide et attentif. Depuis un moment d j , j avais d cid d articuler mes documents sous 3 versions : un support de cours g n rique sur les m thodes, un tutoriel pour R, un autre pour Python . Comme a tout le monde est content. Cette double vision des outils est d autant plus importante que les packages sont de qualit in gale de part et d autre selon les domaines et les techniques. Il nous appartient de choisir l outil le plus efficace compte tenu de nos objectifs et des circonstances. J ai d j beaucoup donn pour l ACP, sous forme de support de cours (ACP), de tutoriels pour Tanagra, pour Excel, pour R, .. mais jamais pour Python . Il est temps d y rem dier. D autant plus que l affaire n est pas si vidente. J ai choisi d utiliser le package scikit-learn maintes fois cit sur le web. Je me suis rendu compte que la classe PCA effectuait les calculs essentiels, mais il nous appartenait ensuite de programmer tout le post-traitement, notamment les aides l interpr tation.

3 Je me suis retrouv un peu dans la m me situation qu il y a presque 10 ans o je m essayais l ACP sous R en utilisant la fonction basique princomp() du package stats (TUTO_R, Mai 2009). Le tutoriel associ [TUTO_R] ainsi que notre support de cours [ACP] nous serviront de rep res tout au long de ce document. Tanagra data Mining 8 juin 2018 Page 2/24 2 Donn es Nous reprenons la trame du didacticiel pour R [TUTO_R]. Les donn es proviennent de l ouvrage de Gilbert Saporta (2006 ; tableau , page 428) qui fait r f rence en analyse de donn es. Il s agit de r sumer l information contenue dans un fichier d crivant (n = 18) v hicules l aide de (p = 6) variables. Figure 1 - Tableau des donn es actives (Saporta, 2006 ; page 428) Disposant des r sultats par ailleurs [Saporta, pages 177 et suivantes ; TUTO_R ; ACP]1, nous pourrons talonner nos sorties chaque tape.

4 En effet, appliquer l outil PCA sur les donn es pour obtenir les coordonn es factorielles des individus et des variables (vecteurs propres) est relativement simple. Les difficult s commencent avec la production des l ments d aide l interpr tation (COS et CTR des individus et variables, cercle des corr lations), et le traitement des individus et variables illustratifs. Il faudra mettre un peu la main la p te. On se rend compte que Python est parfaitement outill et souple pour r aliser une tude compl te, quivalente ce que l on pourrait obtenir sous R avec des packages performants. Il faut savoir exploiter les r sultats interm diaires fournis par PCA simplement. 1 Le m me tableau de donn es est trait dans un tutoriel d di l ACP sous Excel via la librairie de calcul num rique XNUMBERS : Tutoriel Tanagra, ACP sous Excel avec XNumbers , Mars 2018.

5 Nous sommes partis d une d composition en valeurs singuli res de la matrice des donn es centr es et r duites en d taillant les formules. Les mettre en relation avec celles d crites dans ce document permettrait galement d appr hender les quivalences entre les diff rents outils. ModeleCYLPUISSLONGLARGPOIDSV_MAXAlf asud TI135079393161870165 Audi 1001588854681771110160 Simca 13001294684241681050152 Citroen GS Club122259412161930151 Fiat 1321585984391641105165 Lancia Beta1297824291691080160 Peugeot 5041796794491691160154 Renault 16 TL1565554241631010140 Renault 3026641284521731320180 Toyota Corolla116655399157815140 Alf data Mining 8 juin 2018 Page 3/24 3 ACP et aide l interpr tation Importation des donn es actives Dans un premier temps, nous importons le tableau des individus et variables actifs X (xij ; i = 1,..,n, nombre d observations ; j = 1,..,p, nombre de variables) pour la construction des axes factoriels.

6 Nous utilisons la librairie Pandas. La v rification de la version de Pandas est importante. Certaines options de read_excel() sont susceptibles de modifications. #modification du dossier de travail import os (".. votre dossier de travail ..") #librairie pandas import pandas #version print( ) # #chargement de la premi re feuille de donn es X = (" ",sheet_name=0,header=0,index_col=0) Nous remarquons que : Le fichier est un classeur Excel nomm ; Les donn es actives sont situ es dans la premi re feuille (sheet_name = 0) ; La premi re ligne correspond aux noms des variables (header = 0) La premi re colonne aux identifiants des observations (index_col = 0). Nous affichons la dimension de la matrice, nous r cup rons le nombre d observations (n = 18) et de variables (p = 6), enfin nous affichons les valeurs m mes. #dimension print( ) # (18, 6) #nombre d'observations n = [0] #nombre de variables p = [1] #affichage des donn es print(X)

7 Tanagra data Mining 8 juin 2018 Page 4/24 CYL PUISS LONG LARG POIDS V_MAX Modele Alfasud TI 1350 79 393 161 870 165 Audi 100 1588 85 468 177 1110 160 Simca 1300 1294 68 424 168 1050 152 Citroen GS Club 1222 59 412 161 930 151 Fiat 132 1585 98 439 164 1105 165 Lancia Beta 1297 82 429 169 1080 160 Peugeot 504 1796 79 449 169 1160 154 Renault 16 TL 1565 55 424 163 1010 140 Renault 30 2664 128 452 173 1320 180 Toyota Corolla 1166 55 399 157 815 140 1570 109 428 162 1060 175 Princess-1800 1798 82 445 172 1160 158 Datsun-200L 1998 115 469 169 1370 160 Taunus-2000 1993 98 438 170 1080 167 Rancho 1442 80 431 166 1129 144 Mazda-9295 1769 83 440 165 1095 165 Opel-Rekord 1979 100 459 173 1120 173 Lada-1300 1294 68 404 161 955 140 Pr paration des donn es Nous devons explicitement centrer et r duire les variables pour r aliser une ACP norm e avec PCA.

8 Nous utilisons la classe StandardScaler pour ce faire. Ici aussi, il est important de v rifier la version de scikit-learn utilis e. #scikit-learn import sklearn #v rification de la version print( ) # Nous instancions l objet et nous l appliquons sur la matrice X. Nous obtenons une matrice Z = O =1 =1 est la moyenne de la variable Xj, = 1 ( ) =1 son cart-type. #classe pour standardisation from import StandardScaler #instanciation sc = StandardScaler() #transformation centrage-r duction Z = (X) print(Z) Tanagra data Mining 8 juin 2018 Page 5/24 [[ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]] V rifions, par acquit de conscience, les propri t s du nouvel ensemble de donn es.

9 Les moyennes sont maintenant nulles (aux erreurs de troncature pr s) : #v rification - librairie numpy import numpy #moyenne print( (Z,axis=0)) [ +00 ] Et les carts-type unitaires. # cart-type print( (Z,axis=0,ddof=0)) [1. 1. 1. 1. 1. 1.] Nous sommes maintenant par s pour lancer l ACP. Analyse en composantes principales avec PCA de scikit-learn Instanciation et lancement des calculs Il faut instancier l objet PCA dans un premier temps, nous affichons ses propri t s. #classe pour l'ACP from import PCA #instanciation acp = PCA(svd_solver='full') Tanagra data Mining 8 juin 2018 Page 6/24 #affichage des param tres print(acp) PCA(copy=True, iterated_power='auto', n_components=None, random_state=None, svd_solver='full', tol= , whiten=False) Le param tre (svd_solver = full ) indique l algorithme utilis pour la d composition en valeurs singuli res.

10 Nous choisissons la m thode exacte , s lectionn e de toute mani re par d faut pour l appr hension des bases de taille r duite. D autres approches sont disponibles pour le traitement des grands ensembles de donn es. Le nombre de composantes (K) n tant pas sp cifi (n_components = None), il est par d faut gal au nombre de variables (K = p). Nous pouvons lancer les traitements dans un second temps. La fonction fit_transform() renvoie en sortie les coordonn es factorielles Fik que nous collectons dans la variable coord [TUTO_R, page 4 pour lancer l ACP, page 7 pour la r cup ration du champs $scores des coordonn es factorielles]. Nous affichons le nombre de composantes g n r es (K), il est bien gal p = 6. #calculs coord = (Z) #nombre de composantes calcul es print( ) # 6 Valeurs propres et scree plot La propri t .explained_variance_ semble faire l affaire pour obtenir les variances (valeurs propres, k) associ es aux axes factoriels.


Related search queries