Partage
  • Partager sur Facebook
  • Partager sur Twitter

[COURS] Analyse exploratoire de données

ACP et clustering

    20 novembre 2020 à 18:48:31

    Merci Billy.

    Mais le problème persiste ... et le problème initial est même réapparu ...

    En regardant le message d'erreur de plus près, il y a des problème au niveau des commentaires !!! Lorsqu'il y a des accents ...

    Bon je ne comprends toujours pas ce pb car il me semble que j'ai déjà tapé des commentaires avec des accents et il n'y a pas eu de pb apparemment ...

    Donc après suppression des accents, les eboulis et les cercles s'affichent, mais y'a un bug après, je vais voir ça après.

    • Partager sur Facebook
    • Partager sur Twitter
      22 novembre 2020 à 6:11:47

      essaie d'ouvrir le fichier functions.py avec un éditeur de texte, peux-tu me dire les 2 premières lignes que tu vois ?
      • Partager sur Facebook
      • Partager sur Twitter
        22 novembre 2020 à 23:32:24

        Euh, avec mes différentes tentatives, je me retrouve avec :

        - 'functions.py' enregistré avec TextWangler je cherche dans mon Finder (je suis sur Mac)

        - 'functions.py' du 'Home' de Jupyter (je ne sais pas si y'a une différence entre enregistrer par TextWangler ou directement avec l'éditeur du Notebook)

        - dans Finder il y a aussi un 'functions.pyc' qui n'apparaît pas dans Jupyter, et je ne sais pas d'où il vient d'ailleurs !!!

        Je ne peux pas ouvrir celui de Jupyter avec un editeur de texte, mais avec celui de Finder, je ne vois pas de pb d'affichage, ce sont les lignes attendues.

        Je ne sais pas vraiment si TextWrangler est un editeur de texte, mais avec TextEdit, je ne peux pas enregistrer en .py.

        Bon sinon finalement toutes les figures attendues s'affichent au final (éboulis, cercles, plans)

        #####################

        Il y a beaucoup d'info sur l'ACP, j'ai un peu de mal à bien synthétiser ...

        Pour la partie 4 'Représentez les individus sur le plan factoriel' :

        comment savoir sur le plan factoriel lié au nuage des individus NI qu'un point est bien représenté ?

        Sur le cercle, si j'ai bien compris, c'est simple : c'est une flèche longue, proche de 1 (même sis dans l'exemple je tourve les flèches un peu courtes, et on a interpréter quand même ... à moins qu'il y ait un truc qui m'échappe ...)

        Mais dans le cas des individus, comme c'est pas un cercle, comment savoir ?

        ###############

        Mon dendrogramme ne s'affiche pas chez moi ... Apparemment Hadrien a déjà eu un pb aussi.

        J'ai l'impression qu'il y a une virgule en trop dans le programme de functions.py, mais ça ne règle pas le pb ...

        Que faire ? Une idée ?

        -
        Edité par Pierre12345678910%% 24 novembre 2020 à 19:48:42

        • Partager sur Facebook
        • Partager sur Twitter
          23 janvier 2021 à 18:06:45

          Bonsoir. J'ai un soucis avec mes fichiers Excel. Les données sont représentées en désordre dans le fichier. Si vous savez de quoi je parle, veillez m'aider svp

          • Partager sur Facebook
          • Partager sur Twitter
            8 avril 2021 à 16:06:05

            problème résolu en évitant 'enregistrer sous' sur git, plutôt copier le fichier texte dans excel, enregistrer en .csv, puis importer avec Pandas et le bon séparateur. ça marche

            =============

            Bonjour,

            J'ai récupéré le fichier du professeur my_courses.csv, pas de problème.

            A l'exécution du premier code du TP sur l'ACP, j'ai un souci :

            - je vois l'erreur suivante à l'import du fichier. my_courses.csv.. : 

            UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 29: invalid continuation byte
            Quelqu'un peut-il m'aider?
            Merci par avance.
            Bien à vous

            -
            Edité par PhilippeCRhone 8 avril 2021 à 17:11:18

            • Partager sur Facebook
            • Partager sur Twitter
              21 avril 2021 à 11:55:36

              PhilippeCRhone a écrit:


              Bonjour,

              J'ai récupéré le fichier du professeur my_courses.csv, pas de problème.

              A l'exécution du premier code du TP sur l'ACP, j'ai un souci :

              - je vois l'erreur suivante à l'import du fichier. my_courses.csv.. : 

              UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 29: invalid continuation byte
              Quelqu'un peut-il m'aider?
              Merci par avance.
              Bien à vous

              -
              Edité par PhilippeCRhone 8 avril 2021 à 17:11:18

              Bonjour ,

              J'ai la même erreur que philippe, concernant l'import du fichier courses_info :

                        courses_info = pd.read_csv('courses_info.csv',encoding = "utf-8", index_col = 0)

               UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 15-16: invalid continuation byte


                      ?? Merci à vous

              • Partager sur Facebook
              • Partager sur Twitter
                26 avril 2021 à 14:10:23

                Bonjour

                pourriez-vous m'aider j'arrive pas à télécharger le fichier "bag_of_words.csv".

                merci

                • Partager sur Facebook
                • Partager sur Twitter
                  29 avril 2021 à 22:27:19

                  Bonjour,

                  J'ai eu le même message d'erreur. Pour le corriger il faut que l'index soit une liste :

                  names = list(data.index)

                  et cela fonctionne.

                  Alice


                  Hadrien.Hubert a écrit:

                  Bonjour,

                  Quelqu'un pourrait il m'aider svp?

                  Je rencontre quelques problèmes parfois à l'exécution du code sur vscode mais tout se passe bien via jupyter notebook.

                  Par exemple pour la création du dendogram aucun problème mais message d'erreur sous vscode

                  Voici le code du cours :

                  import pandas as pd
                  from functions import plot_dendrogram
                  from scipy.cluster.hierarchy import linkage, fcluster
                  from sklearn import preprocessing
                  
                  # import de l'échantillon et des informations relatives aux cours
                  data = pd.read_csv('bag_of_words.csv', index_col = 0)
                  courses_info = pd.read_csv('courses_info.csv',index_col = 0)
                  
                  # Theme du ou des parcours auxquels appartient le cours (data, developpement, marketing, etc.)
                  theme = [courses_info.loc[course_id, "theme"] for course_id in data.index]
                  
                  # préparation des données pour le clustering
                  X = data.values
                  names = data.index
                  
                  # Centrage et Réduction
                  std_scale = preprocessing.StandardScaler().fit(X)
                  X_scaled = std_scale.transform(X)
                  
                  # Clustering hiérarchique
                  Z = linkage(X_scaled, 'ward')
                  
                  # Affichage du dendrogramme
                  plot_dendrogram(Z, names)

                  Et voici le message d'erreur :

                  ---------------------------------------------------------------------------
                  ValueError                                Traceback (most recent call last)
                  <ipython-input-10-9ff203f8e1b3> in <module>
                       23 
                       24 # Affichage du dendrogramme
                  ---> 25 plot_dendrogram(Z, names)
                  
                  d:\Bureau\Data Scientist\VS Code\analyse_exploratoire\functions.py in plot_dendrogram(Z, names)
                      111         Z,
                      112         labels = names,
                  --> 113         orientation = "left",
                      114     )
                      115     plt.show()
                  
                  ~\anaconda3\envs\myenv\lib\site-packages\scipy\cluster\hierarchy.py in dendrogram(Z, p, truncate_mode, color_threshold, get_leaves, orientation, labels, count_sort, distance_sort, show_leaf_counts, no_plot, no_labels, leaf_font_size, leaf_rotation, leaf_label_func, show_contracted, link_color_func, ax, above_threshold_color)
                     3275                          "'bottom', or 'right'")
                     3276 
                  -> 3277     if labels and Z.shape[0] + 1 != len(labels):
                     3278         raise ValueError("Dimensions of Z and labels must be consistent.")
                     3279 
                  
                  ~\anaconda3\envs\myenv\lib\site-packages\pandas\core\indexes\base.py in __nonzero__(self)
                     2148     def __nonzero__(self):
                     2149         raise ValueError(
                  -> 2150             f"The truth value of a {type(self).__name__} is ambiguous. "
                     2151             "Use a.empty, a.bool(), a.item(), a.any() or a.all()."
                     2152         )
                  
                  ValueError: The truth value of a Index is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

                  Merci d'avance!!

                  Hadrien



                  -
                  Edité par AliceDrahon 30 avril 2021 à 14:23:44

                  • Partager sur Facebook
                  • Partager sur Twitter
                    4 mai 2021 à 11:48:53

                    Salut à tous !

                    Je suis un peu perturbée par le chapitre "Interprétez le cercle des corrélations" ; dans la vidéo il parle de F1, mais j'ai l'impression que c'est en fait F2 (exemple, à 1min35 ; il parle de "la projection de la flèche sur F1" en traçant une ligne rouge sur F2).

                    Ensuite il étudie les variables les plus corrélées à F1, mais de toute évidence celles-ci sont plus proches de F2 sur son schéma que de F1.

                    Je pensais que c'était une erreur de lecture des noms des abscisses et ordonnées, mais dans le cours écrit, ça devient encore plus bizarre, il écrit ; "Qu’y voit-on ?
                    On y voit un cercle, de rayon 1. De plus, l’axe des abscisses représente le premier axe d'inertie. L’axe des ordonnées représente F2 ."

                    Pour moi, l'axe des ordonnées et vertical, donc ça devrait être F1 si on suit son schéma, et non F2.

                    Il refait ensuite la même analyse dans le cours écrit :

                    Est-ce que vous êtes d'accord avec moi ou j'ai loupé un truc style rotation du cercle avant analyse?

                    > Edit car je n'ai pas trouvé où supprimer le commentaire ; je lisais mal le graphique, les axes des abscisses et ordonnées ne sont pas les axes partant de la légende (F1 / F2), mais les axes alignés avec la légende!

                    -
                    Edité par HéloïseGalfré 4 mai 2021 à 18:20:12

                    • Partager sur Facebook
                    • Partager sur Twitter
                      6 mai 2021 à 13:40:38

                      ZeroData a écrit:

                      Bonjour,

                      Il me semble qu'une erreur s'est glissée dans la représentation du cercle des corrélations.

                      Il est tracé avec les valeurs de components_ qui sont les vecteurs propres. Mais pour obtenir la corrélation, et donc avoir une représentation graphique correcte, ne faut-il pas multiplier leur valeur par la racine carrée des valeurs propres ?


                      Effectivement, j'ai remarqué également ce problème. Pourquoi le multiplier par la racine carrée des valeurs propres?
                      • Partager sur Facebook
                      • Partager sur Twitter
                        24 juin 2021 à 16:27:23

                        Remarque d'ordre générale : Je trouve qu'il manque un peu de liant entre la théorie et la pratique dans ce cours, bien que globalement clair et compréhensible. 

                        N'ayant (pour le moment) que très peu de pratique des librairies python qu'on utilise ici, le TP final (juste 4 lignes à compléter certes) est un peu délicat. Notamment la 4eme, j'ai vu dans le corrigé qu'il fallait utiliser la fonction "fcluster" de scipy, mais je n'en avait vu nulle mention nulle part dans le cours ni dans les exemples (je l'ai peut être raté certes). Difficile pour un néophyte dans le domaine de le deviner...  

                        • Partager sur Facebook
                        • Partager sur Twitter
                          20 juillet 2021 à 14:19:43

                          Bonjour 

                          Ce cours as t-il un été traduit en R ?

                          Merci

                          • Partager sur Facebook
                          • Partager sur Twitter
                            10 août 2021 à 11:04:37

                            Bonjour, 

                            Je viens de mettre en place le code du dernier TP sous Jupiter.

                            La generation du graphique des plans factoriels > (0,1) genere une erreur.  obtenez vous la meme erreur ? ai je fait une erreur  ?

                            Merci d avance

                            -
                            Edité par XavierBuisson2 10 août 2021 à 17:34:57

                            • Partager sur Facebook
                            • Partager sur Twitter
                              10 août 2021 à 17:47:42


                              Bonjour Xavier,

                              De mon côté je n'ai pas eu d'erreur. Le premier graph que tu as ressemble au mien, les axes sont les mêmes. Par contre le code du prof génère 4 autres graphs.

                              Pourtant ce bout de code n'avait pas besoin d'être complété, donc peut-être que l'erreur vient d'un bout précédent réutilisé ici ? Ca fait un bail que je ne l'ai pas fait. Vérifie avec le corrigé du prof :)

                              XavierBuisson2 a écrit:

                              Bonjour, 

                              Je viens de mettre en place le code du dernier TP sous Jupiter.

                              La generation du graphique des plans factoriels > (0,1) genere une erreur.  obtenez vous la meme erreur ? ai je fait une erreur  ?

                              Merci d avance

                              -
                              Edité par XavierBuisson2 il y a 3 minutes



                              • Partager sur Facebook
                              • Partager sur Twitter
                                26 octobre 2021 à 19:27:32

                                Bonjour,

                                A quoi correspondent les coefficients dans la combinaison linéaire des variables pour le calcul de F1 (voir copie écran ci-dessous)?

                                Pour vous situer, c'est dans le chapitre "interprétez le cercle des corrélations".

                                Merci beaucoup,

                                -
                                Edité par SamanthaChartrel 26 octobre 2021 à 19:27:56

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  27 décembre 2021 à 15:35:10

                                  Bonjour Samantha,

                                  La classe PCA de sklearn.decomposition permet de diagonaliser la matrice qu'on lui fournit via sa méthode fit_transform (cf. les lignes qui précèdent ta copie d'écran). Or suivant la section "Aller plus loin" du chapitre précédent, les axes principaux d'inertie (F1, F2, F3, ...) sont les vecteurs propres provenant de la diagonalisation de la matrice de corrélation des variables.

                                  pca.compnents_ contient la liste de ces vecteurs propres donc F1 est donné par pca.components_[0] et F2 par pca. components_[1], ... Chaque coefficient correspond donc aux coordonnées du vecteur propre dans la base de départ qui est constituée des vecteurs/variables initiales inscription, progression, ...

                                  -
                                  Edité par RehahnQureshi 27 décembre 2021 à 16:28:44

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    16 février 2022 à 11:13:34

                                    Bonjour,

                                    je suis a priori le seul à avoir un probème avec le fichier bag_of_words ... j'ai essayé plusieurs méthodes (copier le fichier texte depuis le git dans Excel, enregistrer sous pour avoir un csv, et tester le csv de base puis le csv utf8.

                                    quand je lance le code du des deux TP où ce fichier intervient j'ai le même message d'erreur : 'parse error' :

                                    quelqu'un a-t-il une solution ? merci d'avance !

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      16 février 2022 à 19:41:20

                                      Bonjour Laurent,

                                      De mon côté, cela fonctionne pour le TP Réalisez une ACP (pas testé l'autre). J'ai téléchargé le fichier zip de Github, puis "dézippé", et dans la ligne de commande: python  pca_bag_of_words.py . J'ai aussi essayé de télécharger seulement les 2 fichiers csv nécessaires et copier-coller le code du fichier pyhton dans Jupyter pour une meilleure interactivité, et tous les graphiques apparaissent bien.

                                      Si cela ne marche toujours pas pour toi, en donnant plus de détails cela permettra probablement à quelqu'un de t'aiguiller vers la bonne direction. Par exemple quel message d'erreur as-tu précisément? en lançant quel fichier? comment as-tu récupéré tous les fichiers nécessaires? ...


                                      LaurentCarn a écrit:

                                      Bonjour,

                                      je suis a priori le seul à avoir un probème avec le fichier bag_of_words ... j'ai essayé plusieurs méthodes (copier le fichier texte depuis le git dans Excel, enregistrer sous pour avoir un csv, et tester le csv de base puis le csv utf8.

                                      quand je lance le code du des deux TP où ce fichier intervient j'ai le même message d'erreur : 'parse error' :

                                      quelqu'un a-t-il une solution ? merci d'avance !



                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        17 février 2022 à 9:16:45

                                        Bonjour, et merci pour ces indications

                                        J'ai réglé le problème en téléchargeant le texte raw du fichier au format .txt, que j'ai utilisé comme source de données pour une feuille Excel.

                                        Puis du format Excel où j'ai pu vérifier que le nombre de champs pour chaque ligne était bien égal au nombre d'en-têtes, jai sauvegardé le tout au format csv / ',' / utf-8.

                                        Plus de problème après ça.

                                        En revanche, je rencontre un problème sur le dernier TP. J'ai rempli facilement les lignes de code manquant, mais sur la partie 3 'ACP et réduction de dimension' j'ai un message d'erreur qui pointe le code X=X.astype(np.float64)

                                        le message : "Memory Error: Unable to allocate 408. MiB for an array with shape (1934, 27648) and data type float64"

                                        j'ai parcouru pas mal de messages stack overflow et autre sources, sans trouver de réponse/traitement adapté au contexte du TP.

                                        côté matériel, mon pc est plutôt récent et assez puissant, et ma version de Python est 64 bits ...

                                        Du coup, si tu as une solution ou un indice pour ce type de problème, je suis  preneur.

                                        Encore merci pour ta première réponse et très bonne journée,

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          17 février 2022 à 12:19:15

                                          Bonjour, il me semble qu'une petite erreur est présente sur le notebook du dernier chapitre; afin d'effectuer la fonction "display_compressed_img", j'ai du réaliser un reshape dans la fonction "decompress_image"

                                          def decompress_image(pca, std_scaler, compressed_img):

                                              img = pca.inverse_transform(compressed_img)

                                              img = std_scaler.inverse_transform(img.reshape(-1,img.shape[0]))

                                              return img

                                          Sans ça, j'obtiens un message d'erreur 

                                          "Expected 2D array, got 1D array instead:

                                          array=[0.67410538 0.67410538 0.67410538 ... 0.         0.         0.        ].
                                          Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample."
                                          Bien à vous 
                                          • Partager sur Facebook
                                          • Partager sur Twitter

                                          _________________________________________

                                          Maxime Dupouy

                                          Data Scientist  |  Pharmacien

                                          maxime.dupouy1@gmail.com

                                          ________________________________________________________________________

                                            18 février 2022 à 22:32:31

                                            Bonjour Laurent,

                                            Etrange ton problème. Ca tourne sur mon ordinateur qui date de Mathusalem. En plus 408 MiB ce n'est pas énorme. Tu as essayé de fermer tous les autres logiciels/fenêtres ouverts sur ton ordinateur, voire de l'éteindre/rallumer ? sinon en convertissant les données en float32 au lieu de float64?

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              21 février 2022 à 19:15:19

                                              Bonjour !

                                              oui ... j'ai réduit float, et déjà essayé toutes tes suggestions (pour lesquelles je te remercie).

                                              j'avoue que pour le moment je suis passé à la suite, car il faut que j'avance sur mon projet en cours.

                                              Mais j'y reviendrai dès que j'aurai uen fenêtre de tir, je ne peux pas rester sur ce genre de blocage.

                                              Bonne soirée !

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                8 avril 2022 à 19:16:52

                                                ce cours est extraordinaire
                                                • Partager sur Facebook
                                                • Partager sur Twitter

                                                Gnanga Gildas Walter

                                                Né le : 03/04/1983 à Brazzaville

                                                Nationalité : Congolaise

                                                Tel : +242 04 414 72 47 /06 673 76 62

                                                e- mail : gildasgnanga@gmail.com

                                                37, rue Bakoukouyas poto-poto 2 (Brazzaville)

                                                  9 mai 2022 à 20:44:46

                                                  Bonjour 

                                                  Tout d'abord merci Nicolas pour ce cours bien illustré et pédagogique 

                                                  mais je rencontre un problème, je n'arrive pas à lire correctement le fichier excel. je pense que le fichier n'a pas été téléchargé dans son integralité car lors de l'excution du code il y avait plusieurs messages d'erreurs.

                                                  je vous mets une capture d'écran pour voir ou est le problème 

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    25 mai 2022 à 5:19:10

                                                    Bonjour,

                                                    concernant le chapitre  "Téléchargez les jeux de données analysés dans ce cours" pour télécharger les fichiers il faut

                                                    - telecharger  zip

                                                    - apres il faut ouvrir les fishiers en jupiter notebook avec le code suivante:

                                                    courses_info = pd.read_csv('courses_info.csv',encoding = "utf-8", index_col = 0)

                                                    bag_of_words = pd.read_csv('bag_of_words.csv',encoding = "utf-8", index_col = 0)

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      11 août 2022 à 12:04:49

                                                      Bonjour,

                                                      Lorsque je lance "display_compressed_image(pca, std_scaler, X_projected, 150, video["position"])" et "display_with_pylab(img)" j'ai un message d'erreur indiquant "

                                                      Expected 2D array, got 1D array instead:"

                                                       A quoi est-ce dû? Je n'ai pas touché aux fonctions.

                                                      Edit : Je vais voir ce qu'a fait MAxime qui a rencontré le même problème. Merci. Mais la question du bug demeure.

                                                      -
                                                      Edité par Laetitia_Dan0122 11 août 2022 à 12:06:45

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        23 août 2022 à 14:39:56

                                                        Bonjour Nicolas,

                                                        Pour actualiser ton code sur Github pour l'affichage du chat 3D qui plante avec matplotlib 3.5 :

                                                        l'issue, et le fix sur la classe Arrow3D : https://github.com/matplotlib/matplotlib/issues/21688

                                                        ++ Franck

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter

                                                        Dr Pepper

                                                          18 décembre 2022 à 20:03:06

                                                          Bonjour,

                                                          je débute et des le début du cours j'ai des soucis

                                                          je ne sais pas comment passer entre ces deux tableaux suivant (pas de détail .... c'est certainement basique pour beaucoup mais pas pour moi !)

                                                          merci pour votre aide

                                                          -
                                                          Edité par patrickdidier91 18 décembre 2022 à 20:06:48

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter

                                                          [COURS] Analyse exploratoire de données

                                                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                          • Editeur
                                                          • Markdown