Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Cours] Initiez-vous au machine learning

Découvrez les bases du machine learning

    19 juillet 2019 à 9:35:26

    Bonjour.

    Au risque de poser une question complètement débile, j'aimerais comprendre un point.

    Dans le chapitre sur l'entraînement de "notre premier k-NN", le professeur dit voir le chiffre "3" à partir de l'affichage des données relatives à x_test[3].

    Sachant que l'image est censée être un carré de 28 pixels sur 28 pixels mais que la fenêtre dans le notebook Jupyter fait des lignes de seulement 13 valeurs, j'aimerais comprendre comment il peut voir un "3".

    A moins que je me trompe, les 2ème et 3ème lignes comportent les 15 valeurs qui sont nécessaires pour compléter les 13 valeurs de la première ligne, afin de constituer la première "vraie" ligne de l'image d'une longueur de 28 pixels (donc valeurs). Et ainsi de suite...

    Donc, en suivant ce raisonnement, qui est peut-être faux, la matrice présentée dans le notebook n'a donc pas du tout l'allure de l'image réelle.

    Une explication ?

    P.S. : j'ai exécuté plusieurs fois le choix aléatoire des données d'entraînement et de test et je n'ai jamais réussi à "identifier" un chiffre clairement...

    • Partager sur Facebook
    • Partager sur Twitter
      19 juillet 2019 à 9:50:04

      Un débutant a écrit:

      Dans le chapitre sur l'entraînement de "notre premier k-NN", le professeur dit voir le chiffre "3" à partir de l'affichage des données relatives à x_test[3].

      Où ça ? Dans la vidéo ? Je n'y ai pas accès pour l'instant, alors je ne peux pas vérifier.

      Un débutant a écrit:

      Sachant que l'image est censée être un carré de 28 pixels sur 28 pixels mais que la fenêtre dans le notebook Jupyter fait des lignes de seulement 13 valeurs, j'aimerais comprendre comment il peut voir un "3".

      Je ne vois pas pourquoi tu dis que le notebook affiche 13 valeurs ?

      Un débutant a écrit:

      A moins que je me trompe, les 2ème et 3ème lignes comportent les 15 valeurs qui sont nécessaires pour compléter les 13 valeurs de la première ligne, afin de constituer la première "vraie" ligne de l'image d'une longueur de 28 pixels (donc valeurs). Et ainsi de suite...

      :( 2ème et 3ème ligne de quoi ?

      Les données sont un tableau à deux dimensions 70.000 (nb d'échantillons) x 784.

      Les 784 colonnes sont les pixels de l'image, de gauche à droite et de haut en bas.
      Pour l'affichage, on le transforme ces lignes de 784 valeurs en des tableaux à deux dimensions de taille 28x28 :

      # On redimensionne les données sous forme d'images
      images = xtest.reshape((-1, 28, 28))

      On obtient ainsi un tableau à 3 dimensions de taille 70.000 x 28 x 28.
      Bon d'accord, pas 70.000 parce qu'on a découpé les données en train set et test set ; la première dimension est le nombre d'échantillons.

      La commande suivante permet d'afficher une image à partir d'un tableau 28x28 :

      plt.imshow(images[value],cmap=plt.cm.gray_r,interpolation="nearest")

      Si ça peut te rassurer, beaucoup de cours Data science ici sont bourrés de fautes de frappes, de variables qui changent de nom en cours de route, de commandes oubliées, etc. C'est assez pénible mais en principe on s'en rend compte facilement et on peut corriger tout seul. Si ça se trouve tu t'es laissé perturber par une coquille ?

      • Partager sur Facebook
      • Partager sur Twitter
        19 juillet 2019 à 10:58:05

        Re.

        Tout ce que tu expliques à propos du nombre et format des données, je pense avoir compris.

        Je parle de la 2ème vidéo (il faut descendre dans le cours) dans la partie 3, Chapitre 4 "Entraînez votre premier k-NN", aux alentours de 2'14.

        Je vais expliquer d'une autre manière.

        Normalement, soit on a la "vraie" image, soit on peut faire apparaître le niveau de gris de chaque pixel. Il me semble que c'est ce que le prof essaye de faire en appelant la variable "X_test[3]" : il cherche à faire apparaître les niveaux de gris de chaque pixel de l'image n°3 (ou 4 si on compte à partir de 0, mais bref, on s'en fiche...).

        Sauf que le notebook qu'il présente semble sortir une matrice d'une ligne seule avec 28x28 valeurs, soit 784 de rang (et non 28 lignes de 28 colonnes), et ces 784 valeurs sont disposées à l'écran selon des lignes qui ne comportent que 13 colonnes de rang... et non 28.

        Selon moi, pour voir l'image "correctement" sur le notebook, il faudrait qu'il y ait 28 colonnes et non 13. Je ne vois donc pas comment il peut voir un "3" alors que ce n'est pas la "vraie" image, si bien entendu je ne me trompe pas dans mon raisonnement.

        • Partager sur Facebook
        • Partager sur Twitter
          19 juillet 2019 à 13:17:13

          OK, j'ai pu voir la vidéo en question.

          Tout à fait d'accord avec toi : ça n'a pas de sens.
          Les données sont en une dimension au lieu de deux, et elles s'affichent sur 13 colonnes au lieu de 28. Ca donne une image complètement déformée dont on ne peut pas se faire une idée.
          C'est malheureusement le genre d'imprécisions que j'ai constatées à plusieurs reprises dans ces cours. Mais on va s'en remettre !

          Par contre l'idée d'afficher la matrice en guise d'aperçu est amusante.
          Pour y arriver, il faudrait se limiter à 13 colonnes équitablement réparties, par exemple les colonnes paires à partir de la n°2 :

          x_test[3].reshape(28, 28)[:, 2::2]
          • Partager sur Facebook
          • Partager sur Twitter
            19 juillet 2019 à 14:18:13

            Ok.

            Enfin un aperçu digne de ce nom !

            Par contre, comme je fais plein de choses en même temps (il faut que je me repenche sur ta réponse pour le SQL, que j'ai comprise mais je crois qu'il y a un élément de confusion dans mon raisonnement que je n'ai pas bien solutionné pour l'instant), que je débute, et que j'ai fait le cours sur les dataframes il y a 3 mois, est-ce que tu pourrais juste réexpliquer rapidement le fonctionnement (pas l'effet...) du [:, 2::2] ?

            Je crois me souvenir que le premier ":" ne touche rien donc on conserve 28 lignes mais je n'arrive plus à déchiffrer le "2::2", qui permet de garder les colonnes paires à partir de la 2ème colonne...

            Une proposition : le premier 2 pour dire qu'on commence à la 2ème colonne (quoique, colonne n°2 donc 3ème ou 2ème colonne ?) et le deuxième 2 permet de donner le pas qui indique ici qu'on ne garde qu'une colonne sur deux ?

            • Partager sur Facebook
            • Partager sur Twitter
              19 juillet 2019 à 15:22:56

              Oui, c'est ça.

              [start:stop:step]

              Tu commences à la colonne d'indice 2 (donc la 3ème), jusqu'à la fin, en avançant de 2 en 2.

              Plus d'infos sur la doc officielle Python.

              • Partager sur Facebook
              • Partager sur Twitter
                19 juillet 2019 à 16:07:52

                Merci pour le rappel, cela m'évite de regarder sur la documentation d'une chose "simple" comme ça... car là, je regarde depuis une heure la doc sur la régression linéaire et je galère...

                Dans le cours, il décompose la régression linéaire à l'aide de np.array() et de transpositions.

                J'aimerais comprendre pourquoi le "fit" de la régression nécessite des array sur lesquels j'ai été obligé d'utiliser "reshape(-1,1)". J'avoue être complètement perdu, notamment sur la différence entre un dataframe qui annonce (536,) avec shape et un array, après reshape, qui annonce (536,1).

                En tout cas, la fonction de régression linéaire aime le deuxième mais pas le premier...

                • Partager sur Facebook
                • Partager sur Twitter
                  19 juillet 2019 à 16:23:22

                  Les estimateurs, classifieurs, et d'une manière générale toutes les classes de scikit-learn qui traitent des données travaillent sur des tableaux en 2 dimensions.
                  Tout simplement parce qu'on ne travaille jamais sur des problèmes à une seule dimension : sinon ce n'est pas du Big Data. :D

                  Pour découvrir la régression linéaire, le cours fait travailler sur des données à 1 dimension.
                  Pour faire travailler l'estimateur LinearRegression, il faut convertir les données en un tableau à 2 dimensions de taille (n,1). C'est exactement ce que fait reshape(-1,1), sachant que le "-1" indique à numpy qu'il doit adapter la taille de cette dimension en fonction des données. Ce qu'on veut, c'est que la 2ème dimension soit de taille 1.
                  Le résultat est un tableau de n lignes de 1 élément chacune.

                  (536,) est la taille d'un vecteur à une dimension.
                  En Python, la virgule est là pour indiquer qu'il s'agit d'un tuple (une séquence, si tu préfères) contenant un seul élément, contrairement à (536) qui est interprété comme un nombre entier.
                  Pour faire le parallèle avec les maths, c'est la même différence qu'entre \(\{536\}\) et \(536\).

                  -
                  Edité par Zachee54 19 juillet 2019 à 16:23:37

                  • Partager sur Facebook
                  • Partager sur Twitter
                    20 juillet 2019 à 12:19:43

                    J'ai beau être de formation scientifique, j'ai très peu utilisé les matrices dans mes études et mon travail de prof.

                    Donc allons-y pour les vérifications :

                    - 536 est un nombre

                    - (536, ) est un nombre rangé dans une séquence : un tuple qui ne contient qu'un élément. Ce tuple, issue de shape appliqué à une colonne du dataframe, signifie que la colonne contient une liste de 536 valeurs.

                    - (536, 1) est une matrice contenant 536 lignes et une colonne. Il y a donc 536 valeurs dans 536 lignes les unes en dessous des autres dans une seule colonne.

                    - (1, 536) est une matrice contenant 1 ligne et 536 colonnes. Il y a donc 536 valeurs dans 536 colonnes les unes à côté des autres sur une seule ligne.

                    Normalement, ce que je viens de dire est correct, non ?

                    Question qui taraude : quand on fait le reshape du tuple (1D) afin de le transformer en array 2D, y a-t-il une préférence quant à la disposition des valeurs dans une seule ligne ou dans une seule colonne ?

                    Question annexe : quand on utilise la régression linéaire, y a-t-il un intérêt, une meilleure façon de faire pour présenter les matrices ? Je pense notamment au produit matriciel qui nécessite que le nombre de colonnes de la première matrice corresponde au nombre de lignes de la seconde. Y a-t-il une condition de la même sorte lorsqu'on fait la régression ?

                    J'ai cru comprendre que les modèles de "régression" font certaines choses automatiquement même si les données en entrée ne sont pas "parfaitement" présentées.

                    • Partager sur Facebook
                    • Partager sur Twitter
                      21 juillet 2019 à 15:20:02

                      Tout ce que tu dis est exact.

                      En mathématiques on ne fait pas trop la différence entre un vecteur et une matrice colonne : dans les deux cas ce sont des nombres rangés les uns au-dessus des autres.
                      En informatique c'est important, parce qu'une matrice est un tableau à 2 dimensions (un tableau de tableaux). Cela change la façon d'accéder aux données :

                      # On suppose que x_test[3] est un vecteur de 576 éléments
                      
                      # C'est un nombre
                      print(x_test[3][0])
                      
                      x_test = x_test.reshape((-1, 28, 28))
                      
                      # C'est un tableau de 28 nombres !
                      print(x_test[3][0])

                      Un débutant a écrit:

                      Question qui taraude : quand on fait le reshape du tuple (1D) afin de le transformer en array 2D, y a-t-il une préférence quant à la disposition des valeurs dans une seule ligne ou dans une seule colonne ?

                      On dispose toujours les features en colonnes et les échantillons en lignes.

                      Un débutant a écrit:

                      Question annexe : quand on utilise la régression linéaire, y a-t-il un intérêt, une meilleure façon de faire pour présenter les matrices ? Je pense notamment au produit matriciel qui nécessite que le nombre de colonnes de la première matrice corresponde au nombre de lignes de la seconde. Y a-t-il une condition de la même sorte lorsqu'on fait la régression ?

                      J'ai cru comprendre que les modèles de "régression" font certaines choses automatiquement même si les données en entrée ne sont pas "parfaitement" présentées.

                      Si tu as \(p\) échantillons de \(n\) features, tu dois avoir une matrice \(p\times n\). C'est en effet important pour le produit matriciel, et plus généralement pour la bonne interprétation des données.

                      Je crois que LinearRegression transformait tout seul un tableau 1D en matrice \(p\times1\), mais qu'il ne le fait plus maintenant. Disons qu'il ne faut pas te reposer là-dessus et que si tu fournis des données dans un mauvais format, un message d'erreur saura te l'expliquer.
                      Il y a aussi des conversions implicites, par exemple entre un tableau Python et un tableau Numpy. Mais tu n'as généralement pas besoin de t'en soucier, parce que c'est seulement le format des données en mémoire qui change, pas la dimension de la matrice ni les valeurs qui sont dedans.

                      -
                      Edité par Zachee54 21 juillet 2019 à 15:20:51

                      • Partager sur Facebook
                      • Partager sur Twitter
                        25 juillet 2019 à 9:15:02

                        Bonjour,

                        très intéressante formation. J'ai une question à propos de la reconnaissance d'images: quelles applications data science pourraient on imaginer dans le cadre d'une entreprise?

                        Merci

                        • Partager sur Facebook
                        • Partager sur Twitter
                          2 août 2019 à 19:03:10

                          Bonjour,

                          je suis bloqué a l'activité sur les loyer.

                          Est il possible d avoir plus d information sur ce qui est demander car rien n'est clair dans ce cours et bien trop vite expliquer.

                          que devons nous rendre ?

                          quelle est la marde a suivre ?

                          quelles sont les attentes au niveau des test ?

                          devons nous faire une régression linéaire ou K-nn ?

                          combien de test devons nous faire ?

                          des précisions sont nécéssaires ...

                          • Partager sur Facebook
                          • Partager sur Twitter
                            13 août 2019 à 14:22:52

                            Bonjour Guillaume,

                            Je suis d'accord, les attentes ne sont pas très claires. À la vue de la correction, on se dit "Ah bon, c'était seulement ça ?".
                            On ne te demande rien de plus que ce qui est dans l'énoncé :

                            • une séparation en training / testing set
                            • 2 propositions d'amélioration du modèle qui obtiennent de meilleures performances que la "baseline" (la régression linéaire avec une seule feature)
                            • Une sélection d'un modèle final à partir des performances.

                            Le problème, ce sont les propositions d'amélioration. À ce stade de la formation il n'est pas demandé de faire quelque chose de particulièrement intelligent.
                            Ce qu'on te demande, c'est de réfléchir à la façon dont tu pourrais utiliser l'arrondissement pour affiner le résultat. Tant pis si ce n'est pas efficace. Tu n'es pas pénalisé non plus si ta méthode est intellectuellement faussée, parce qu'on n'en demande pas tant à ce stade de la formation.

                            Tu peux en effet utiliser une régression linéaire ou un k-nn. Personnellement j'ai trouvé que ce n'étaient pas des modèles appropriés pour les arrondissements et j'ai cherché autre chose. La doc sklearn peut éventuellement aider.

                            • Partager sur Facebook
                            • Partager sur Twitter
                              19 septembre 2019 à 14:16:10

                              Bonjour,

                              Je suis en train de suivre ce cours et je rencontre un soucis sur le premier code à faire.

                              J'ai rentré le code suivant :

                              # On importe les librairies dont on aura besoin pour ce tp
                              import numpy as np
                              import pandas as pd
                              import matplotlib.pyplot as plt


                              # On charge le dataset
                              house_data = pd.read_csv('house.csv')

                              # On affiche le nuage de points dont on dispose
                              plt.plot(house_data['surface'], house_data['loyer'], 'ro', markersize=4)
                              xlabel("surface")
                              ylabel("loyer")
                              plt.show()

                              Je travaille sous Spyder (Python3.6) et les "légendes" 'surface' et 'loyer' ne s'affiche aps comme dans l'exemple. A quoi est-ce du ?

                              Merci d'avance !

                              • Partager sur Facebook
                              • Partager sur Twitter
                                19 septembre 2019 à 15:07:59

                                Bonjour OcéaneDh, 

                                peut-être as-tu oublié le plt. devant xlabel et ylabel? Le code ci-dessous fonctionne chez moi sur jupyter (mais je n'utilise pas spyder):

                                -
                                Edité par Charles-HenriDupire 19 septembre 2019 à 15:08:19

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  25 septembre 2019 à 13:54:07

                                  Bonjour tout le monde

                                  j'arrive pas de telecharger le fichier 

                                  mnist-original dataset

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    25 septembre 2019 à 14:23:56

                                    Quand j'ai suivi le cours, le serveur du dataset était indisponible. Si c'est toujours le cas, tu peux télécharger le dataset ici :

                                    https://github.com/amplab/datascience-sp14/blob/master/lab7/mldata/mnist-original.mat

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      16 octobre 2019 à 12:36:59

                                      Bonjour,

                                      Le cours mérite d'être mis à jour entre ce qui est écrit et la vidéo. Il est dommage également que ce ne soit pas rafraichi au niveau de l'utilisation de Jupyter car il y a des différences entre ce qui est proposé dans la vidéo et l'application dans Jupyter (cela fait perdre du temps inutilement).

                                      Je suis à nouveau coincé sur le début du 2ème TP concernant le chargement du data set MNIST. Quelqu'un a-t-il une solution?

                                      Merci.

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        17 octobre 2019 à 10:28:14

                                        Tu n'as pas pu le télécharger avec mon lien ci-dessus, ou bien tu n'arrives pas à ce que sklearn accède aux fichiers téléchargés ?
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          17 octobre 2019 à 15:51:04

                                          J'ai téléchargé le fichier et l'ai mis dans Jupyter. Je ne pense pas avoir le bon code dans Jupyter pour appeler le fichier.

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            17 octobre 2019 à 16:00:10

                                            Par défaut sklearn va le chercher dans le répertoire ~/scikit_learn_data (où ~ est ton répertoire personnel). Sinon tu dois spécifier le chemin avec l'option data_home. Voir la doc.
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              17 octobre 2019 à 17:23:58

                                              Merci mais ca ne marche toujours pas.

                                              Il est indiqué "fetch_mldata was deprecated in version 0.20 and will be removed in version 0.22. Please use fetch_openml.".

                                              J'ai également utilisé cette fonction.

                                              Le TD n'est pas à jour et pas évident lorsque l'on découvre Jupyter...


                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                18 octobre 2019 à 16:38:05

                                                Tu peux montrer ton code, montrer l'erreur et dire quel est le chemin du fichier ?
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  5 novembre 2019 à 16:44:05

                                                  Zachee54 a écrit:

                                                  Bonjour Guillaume,

                                                  Je suis d'accord, les attentes ne sont pas très claires. À la vue de la correction, on se dit "Ah bon, c'était seulement ça ?".
                                                  On ne te demande rien de plus que ce qui est dans l'énoncé :

                                                  • une séparation en training / testing set
                                                  • 2 propositions d'amélioration du modèle qui obtiennent de meilleures performances que la "baseline" (la régression linéaire avec une seule feature)
                                                  • Une sélection d'un modèle final à partir des performances.

                                                  Le problème, ce sont les propositions d'amélioration. À ce stade de la formation il n'est pas demandé de faire quelque chose de particulièrement intelligent.
                                                  Ce qu'on te demande, c'est de réfléchir à la façon dont tu pourrais utiliser l'arrondissement pour affiner le résultat. Tant pis si ce n'est pas efficace. Tu n'es pas pénalisé non plus si ta méthode est intellectuellement faussée, parce qu'on n'en demande pas tant à ce stade de la formation.

                                                  Tu peux en effet utiliser une régression linéaire ou un k-nn. Personnellement j'ai trouvé que ce n'étaient pas des modèles appropriés pour les arrondissements et j'ai cherché autre chose. La doc sklearn peut éventuellement aider.

                                                  Bonjour Zachee54,

                                                  J'ai également des difficultés pour terminer l'activité... Il me semble que le jeu de données contient des NaN dans la colonne "surface", ce qui empêche de faire une régression linéaire. Faut-il les enlever? (J'ai trouvé un moyen avec pandas). Et faut-il les enlever avant de faire la séparation entre training set et testing set?



                                                  -
                                                  Edité par Charles-HenriDupire 5 novembre 2019 à 16:45:50

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    5 novembre 2019 à 22:46:49

                                                    Oui, d'une manière générale le nettoyage des données fait partie des bonnes pratiques. Ça va de soi, même si les barèmes des activités en tiennent rarement compte : on évalue souvent une compétence à la fois.

                                                    -
                                                    Edité par Zachee54 5 novembre 2019 à 22:49:02

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      6 novembre 2019 à 7:22:12

                                                      Bonjour

                                                      Juste un commentaire sur les corrections.

                                                      Soyez poli et constructif ! Je me suis tapé 2 excellentes notes et un 0 avec pour seul commentaire "nul"... je suis presque sur que la personne ne s'est même pas donnée la peine de lire le fichier lisez moi, qui indiquait où installer le fichier house_data pour que le script le trouve, ni même lu le script !

                                                      Un commentaire plus constructif aurait été plus correct. Peut etre il y a t-il un moyen pour que le script trouve le csv où qu'il soit sur l’ordinateur...

                                                      @Rawy

                                                      Tu peux tenter un classifieur avec l'arrondissement. Perso, j'ai eu la flemme, donc j'ai fait tourner deux algos différents sur toutes les données, les résultats sont un peu meilleurs qu'avec le scénario de base.

                                                      @Zachee et Charles Henri Dupire

                                                      Faut nettoyer et reshaper X, sinon ça ne marchera jamais. J'ignore pourquoi... je ne fais jamais cela avec les logiciels de chimiométrie.

                                                      La régression sur les données d'astronomie du cours "découvrez les librairies python pour les data sciences" fonctionnait aussi sans reshape des données...

                                                      J'ai une question : qu'est le paramètre Théta ? En quoi est-il pertinent ?

                                                      Dans mon boulot, je me sers surtout du R2 et de la RMSE (dans le cas d'une calibration type PLS ou PCR, on se sert de ces deux paramètres ainsi que du nombre de coefficients directeurs/composantes principales utilisés pour juger de la qualité du modèle, suivi d'une validation).

                                                      -- Modéré par Benzouye : ne postez pas de solution (même partielle) aux activités --

                                                      -
                                                      Edité par RichardChazal1 6 novembre 2019 à 11:42:04

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        8 novembre 2019 à 17:23:53

                                                        Bonjour. Je n'arrive à télécharger l'exercice des autres utilisateurs pour la correction pourtant j'ai de la connexion. Pouvez-vous me donner régler cela s'il vous plaît. Merci.
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          8 novembre 2019 à 17:38:07

                                                          Utilise le bouton "Nous contacter" en bas de page. Le forum n'est fréquenté que par les étudiants et les modos.
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            11 novembre 2019 à 18:31:48

                                                            impossible de charger le dataset des loyers:

                                                            j'ai bien téléchargé house.csv suivant le lien indiqué dans le cours

                                                            mais voici la réponse suite à la ligne de commande : house_data_raw = pd.read_csv('house.csv')

                                                            ça commence bien.. Quelqu'un peut-il m'aider ?

                                                            ---------------------------------------------------------------------------
                                                            FileNotFoundError                         Traceback (most recent call last)
                                                            <ipython-input-5-8d8160d5235d> in <module>
                                                            ----> 1house_data = pd.read_csv('house.csv')
                                                            
                                                            ~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\io\parsers.py in parser_f(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, dialect, error_bad_lines, warn_bad_lines, delim_whitespace, low_memory, memory_map, float_precision)
                                                             683         )
                                                             684 
                                                            --> 685return _read(filepath_or_buffer, kwds)
                                                             686 
                                                             687     parser_f.__name__ = name
                                                            
                                                            ~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\io\parsers.py in _read(filepath_or_buffer, kwds)
                                                             455 
                                                             456     # Create the parser.
                                                            --> 457parser = TextFileReader(fp_or_buf, **kwds)
                                                             458 
                                                             459     if chunksize or iterator:
                                                            
                                                            ~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\io\parsers.py in __init__(self, f, engine, **kwds)
                                                             893             self.options["has_index_names"] = kwds["has_index_names"]
                                                             894 
                                                            --> 895self._make_engine(self.engine)
                                                             896 
                                                             897     def close(self):
                                                            
                                                            ~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\io\parsers.py in _make_engine(self, engine)
                                                             1133     def _make_engine(self, engine="c"):
                                                             1134         if engine == "c":
                                                            -> 1135self._engine = CParserWrapper(self.f, **self.options)
                                                             1136         else:
                                                             1137             if engine == "python":
                                                            
                                                            ~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\io\parsers.py in __init__(self, src, **kwds)
                                                             1915         kwds["usecols"] = self.usecols
                                                             1916 
                                                            -> 1917self._reader = parsers.TextReader(src, **kwds)
                                                             1918         self.unnamed_cols = self._reader.unnamed_cols
                                                             1919 
                                                            
                                                            pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader.__cinit__()
                                                            
                                                            pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader._setup_parser_source()
                                                            
                                                            FileNotFoundError: [Errno 2] File b'house.csv' does not exist: b'house.csv'

                                                            je précise que j'ai auparavant saisi:

                                                            mport numpy as np
                                                            import pandas as pd
                                                            import matplotlib.pyplot as plt

                                                            et qu' aucun message d'erreur ne m'a été retourné

                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                              11 novembre 2019 à 18:41:33

                                                              bonjour, 

                                                              est-ce que ton fichier est bien dans le même dossier que ton fichier notebook? Sinon il faut soit le déplacer, soit mettre le chemin absolu à la place de 'house.csv'

                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              [Cours] Initiez-vous au machine learning

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