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
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
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
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().
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!
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?
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...
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 ?
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
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' :
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' :
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,
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"
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."
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?
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
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
_________________________________________
Maxime Dupouy
Data Scientist | Pharmacien
maxime.dupouy1@gmail.com
________________________________________________________________________
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)
Dr Pepper