Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Cours] Initiez-vous au machine learning

Découvrez les bases du machine learning

    11 juillet 2017 à 16:03:52

    Quand est-ce qu'une version ebook (ou PDF) du cours est prévue ?
    • Partager sur Facebook
    • Partager sur Twitter
      Team OC 12 juillet 2017 à 14:11:29

      Bonjour,

      Malheureusement, ce n'est pas prévu.

      Cordialement.

      • Partager sur Facebook
      • Partager sur Twitter
        7 août 2017 à 17:53:00

        Bon aller, je m'y remet car j'ai de nouveau un peu de temps ces prochains mois, et je ne desespère pas d'y arriver un jour, car ce domaine me passionne vraiment.

        Malheureusement j'ai un niveau de mathematique de BAC....oui je sais, c'est trop léger pour faire ce cours, c'est pourquoi je fouille les sites de math au passage pour m'y remettre aussi. 

        Et là du coup j'ai une petite question de math...j'espere que ce n'est pas trop hors sujet?

        Dans le TP : Décomposez l'apprentissage d'une régression linéaire, on voit le prof remplir son X avec des 1, nous expliquant que c'est un hack pour l'ordonnée à l'origine. D'ailleurs on peut lire dans le cours textuel

        "Le vecteur d’observation  xx commence par 1 car on a besoin de l’ordonnée à l’origine. C’est un petit hack pour avoir une notation plus simple !"



        Bon...on pourrait m'expliquer là? :D

        si je cherche "ordonnée à l'origine" sur wikipedia, on me raconte que c'est la valeur de Y quand X vaut 0. Donc dans notre cas précis, quand la surface (X) vaut 0, on peut estimer que Y vaudrait 0 aussi (pas de bien à louer, pas de sous!). Donc là je vois pas en fait a quoi correspond heu..."physiquement" si je puis dire...ce parametre 1?

        Merci d'avance!

        • Partager sur Facebook
        • Partager sur Twitter
          Team OC 8 août 2017 à 15:42:50

          Hello Skem,

          C'est simplement que lorsque tu as une équation de la forme y = a * x + b

          tu peux aussi la voir sous la forme y = m * z où m = (a, 1) et z = (x, b)

          C'est la même chose pour le cas dont tu parles, simplement en dimension > 1 donc avec un vecteur de 1. Ca simplifie les calculs pour la suite

          Bonne journée

          • Partager sur Facebook
          • Partager sur Twitter
            8 août 2017 à 17:32:04

            Ha ok je savais pas! C'est tout de suite plus clair :)

            Merci Yannis!

            • Partager sur Facebook
            • Partager sur Twitter
              19 août 2017 à 23:23:18

              hello bonjour a vous !

              Déjà j’apprécie beaucoup ce que vous fêtes et merci beaucoup ce cour dont je trouve très enrichissant .Mon problème se situe au niveau du de activiste dans le quel nous avons 4 missions dont la troisième est 

              • 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)

                je ne comprend pas exactement ce qu'on attend de nous par la 

              • Partager sur Facebook
              • Partager sur Twitter
                10 septembre 2017 à 19:35:37

                Bonjour,

                Je suis en train de suivre le cours "Initiez-vous au machine learning", chapitre "TP : Décomposez l'apprentissage d'une régression linéaire".

                Dans la section "Apprentissage : trouver le Θ optimal", y a un lien vers

                https://isites.harvard.edu/fs/docs/icb.topic515975.files/OLSDerivation.pdf

                Je n'arrive pas à l'accéder. L'un d'entre vous rencontre le même souci que moi ?

                Avez-vous déjà trouvé le bon lien?

                D'avance merci pour votre aide

                • Partager sur Facebook
                • Partager sur Twitter
                Lorie
                  11 septembre 2017 à 8:48:36

                  Est-ce que faire une prédiction pour chaque arrondissement n'est pas une solution?

                  • Partager sur Facebook
                  • Partager sur Twitter
                    11 septembre 2017 à 9:23:14

                    Oui, ça peut en être une !

                    • Partager sur Facebook
                    • Partager sur Twitter
                    La chute n'est pas un échec, l'échec c'est de rester là où on est tombé!
                      25 septembre 2017 à 18:15:02

                      Hallo !

                      Python ne reconnait pas les trois imports fait en debut de code malgre l'instalation de scikit-learn (si ca a un rapport). Qu'est ce que je fais pour corriger cela ? merci

                      import numpy as np

                      ModuleNotFoundError: No module named 'numpy'

                      -
                      Edité par JoelSande 25 septembre 2017 à 18:18:25

                      • Partager sur Facebook
                      • Partager sur Twitter
                        25 septembre 2017 à 19:03:45

                        Bonsoir,

                        Il faut télécharger le package !

                        A+

                        • Partager sur Facebook
                        • Partager sur Twitter
                        La chute n'est pas un échec, l'échec c'est de rester là où on est tombé!
                          3 octobre 2017 à 21:31:22

                          Bonjour a tous,

                          Je souhaite soumettre l'activite 2 en python 3 ? ce sera possible ?

                          D'avance merci

                          Laurent

                          -
                          Edité par LaurentRudloff 3 octobre 2017 à 22:36:55

                          • Partager sur Facebook
                          • Partager sur Twitter
                            Team OC 4 octobre 2017 à 12:37:36

                            Bonjour ! Aucun souci, Laurent.
                            • Partager sur Facebook
                            • Partager sur Twitter
                              8 octobre 2017 à 14:06:26

                              Bonjour !

                              Merci pour ce cours que j'apprécie beaucoup, néanmoins j'ai trouvé des difficultés à comprendre l'activité. ce que je n'ai pas bien compris c'est l'ajout de la nouvelle observation(arrondissement)et comment on va l'utiliser afin d'améliorer notre modèle de prédiction de loyer, dans le cours on a rencontré l'exemple avec un seul dataset unidimensionnel en entrée (où les observations dépendent seulement de la variable x = surface). Avec cette nouvelle observation(arrondissement) est ce qu'on va avoir un dataset bidimensionnel ou bien on va travailler chaque dimension à part x1=arrondissement et x2= surface ?

                              Merci.

                              • Partager sur Facebook
                              • Partager sur Twitter
                                26 novembre 2017 à 11:08:58

                                j'avoue, j'ai bloqué sur le meme problème...
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  1 décembre 2017 à 14:21:12

                                  MH_17 a écrit:

                                  Bonjour !

                                  Merci pour ce cours que j'apprécie beaucoup, néanmoins j'ai trouvé des difficultés à comprendre l'activité. ce que je n'ai pas bien compris c'est l'ajout de la nouvelle observation(arrondissement)et comment on va l'utiliser afin d'améliorer notre modèle de prédiction de loyer, dans le cours on a rencontré l'exemple avec un seul dataset unidimensionnel en entrée (où les observations dépendent seulement de la variable x = surface). Avec cette nouvelle observation(arrondissement) est ce qu'on va avoir un dataset bidimensionnel ou bien on va travailler chaque dimension à part x1=arrondissement et x2= surface ?

                                  Merci.

                                  Il faut utiliser les deux dimensions conjointement. Ce n'est pas pertinent d’entraîner un modèle pour chaque arrondissement à part, tout comme il n'est pas pertinent d’entraîner un modèle différent pour chaque surface d'appartement.

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    5 décembre 2017 à 20:12:03

                                    Bonjour,

                                    Je me suis trompé de fichier zip, du coup mon tp n'a pas été évalué.

                                    Comment serait-il possible de le soumettre aux correcteurs?

                                    Cordialement 

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    José Castro
                                      Team OC 6 décembre 2017 à 10:10:23

                                      Bonjour JoséCastro,

                                      Vous pouvez écrire au support (hello@openclassrooms.com) pour demander la réinitialisation de votre exercice, en expliquant la raison.

                                      A bientôt.

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        6 décembre 2017 à 10:53:42

                                        Merci,

                                        Cordialement José Castro

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                        José Castro
                                          6 janvier 2018 à 10:51:10

                                          Bonjour, 

                                          Je suis actuellement en train de faire l'exercice et je bloque au moment du calcul de theta, j'obtiens un résultat étrange, pourriez-vous m'aider?

                                          # On importe les librairies dont on aura besoin
                                          import numpy as np
                                          import pandas as pd
                                          import matplotlib.pyplot as plt
                                          
                                          # On charge le dataset
                                          house_data = pd.read_csv('house_data.csv')
                                          
                                          # On affiche le nuage de points dont on dispose
                                          
                                          from mpl_toolkits.mplot3d import Axes3D
                                          
                                          fig = plt.figure()
                                          ax = fig.add_subplot(111, projection='3d')
                                          ax.plot(house_data['surface'], house_data['arrondissement'], house_data['price'], 'ro')
                                          ax.legend()
                                          
                                          plt.show()
                                          
                                          # On décompose le dataset et on le transforme en matrices pour pouvoir effectuer notre calcul
                                          X = np.matrix([np.ones(house_data.shape[0]), house_data['surface'].as_matrix(), house_data['arrondissement'].as_matrix()]).T
                                          y = np.matrix(house_data['price']).T
                                          
                                          # On sépare notre dataset en training set et testing set
                                          
                                          from sklearn.model_selection import train_test_split
                                          
                                          xtrain, xtest, ytrain, ytest = train_test_split(X, y, train_size=0.8)
                                          
                                          # On effectue le calcul exact du paramètre theta
                                          theta = np.linalg.inv(xtrain.T.dot(xtrain)).dot(xtrain.T).dot(ytrain)
                                          
                                          print(theta)

                                          Voilà ce que j'obtiens pour theta:

                                          [[ nan]
                                           [ nan]
                                           [ nan]]



                                           

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            7 janvier 2018 à 19:54:56

                                            Bonjour,

                                            Dans les données exportées, il y a des champs non renseignés. Il faut nettoyer vos données.

                                            Crdlt

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                            José Castro
                                              12 janvier 2018 à 23:17:36

                                              Bonjour,

                                              Impossible de charger les données avec les lignes :

                                              from sklearn.datasets import fetch_mldata
                                              mnist = fetch_mldata('MNIST original')

                                              Suis-je le seul à avoir ce problème ?

                                              Cordialement, Alexis

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                16 janvier 2018 à 11:23:05

                                                Bonjour AlexisLechat,

                                                J'ai eu le même problème. J'avais une erreur sur scipy que j'ai du installer pour que ça fonctionne : pip install scipy

                                                (Sous Linux/Ubuntu)

                                                MN

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  16 janvier 2018 à 11:23:58

                                                  Bonjour,

                                                  L'auteur du cours devrait corriger les erreurs qui ont été remontées sur le forum. Ne pas avoir les mêmes résultats que ceux du cours doit perturber l’apprenant (à juste titre). Ca fait presque un an que les erreurs ont été signalées. C'est bien la première fois que je vois ce manque de rigueur sur OpenClassRoom.

                                                  -
                                                  Edité par Milleras 16 janvier 2018 à 11:24:20

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    Team OC 16 janvier 2018 à 12:15:38

                                                    Bonjour Milleras,

                                                    Merci pour votre message.

                                                    Nous faisons régulièrement des retours sur tous nos cours, et nous avons appliquées plusieurs corrections sur le cours "Initiez-vous au machine learning".

                                                    Nous allons refaire une passe de correction suite à votre retour.

                                                    A bientôt.

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      7 mars 2018 à 17:08:24

                                                      Bonjour à tous, j'ai globalement compris tout le TP de régression linéaire à l'exception de la définition de la matrice X

                                                      # On décompose le dataset et on le transforme en matrices pour pouvoir effectuer notre calcul
                                                      X = np.matrix([np.ones(house_data.shape[0]), house_data['surface'].as_matrix()]).T
                                                      y = np.matrix(house_data['loyer']).T
                                                      
                                                      

                                                      En effet, j'ai bien compris qu'il fallait une ordonnée à l'origine, mais le reste ne me parait pas clair, pourquoi avoir besoin d'avoir un vecteur constitué de 1 (le fameux np.ones...)

                                                      alors que pour la matrice y, il suffit de la définir de manière classique y = np.matrix(house_data['loyer']) ?

                                                      N'aurait-on pas pu tout simplement définir X = np.matrix(house_data['surface']) ?

                                                      Merci pour votre aide, au passage, cours très bien expliqué à l'exception de ce petit passage.

                                                      -
                                                      Edité par MoBo2 7 mars 2018 à 17:10:49

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        4 juin 2018 à 22:26:00

                                                        Bonjour à tous,

                                                        J'ai fait le 1er TP en suivant la vidéo mais je voulais savoir s'il y avait une base de donnée disponible avec toutes les formules, pour savoir laquelle il faut appeler suivant nos besoins.

                                                        Merci d'avance.

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          12 juin 2018 à 11:35:31

                                                          Bonjour à tous,

                                                          @prof:

                                                          Pourriez-vous répondre au point deux de Wils: 

                                                          • Si j'utilise un modèle de régression, comment choisir la meilleure métrique pour évaluer les performances de mon modèle ?

                                                          Moi je suis restée sur le modèle de régression en modifiant les mes échantillons des données d'entrainement et je ne suis pas sur que c'est la bonne manière de faire:

                                                          errors=[]

                                                          for i in range(1,5000):

                                                              xtrain, xtest, ytrain, ytest = train_test_split(x, y, train_size=0.8)

                                                              theta = np.linalg.inv(xtrain.T.dot(xtrain)).dot(xtrain.T).dot(ytrain)

                                                              y_pred=np.dot(xtest,theta)

                                                              errors.append(sqrt(mean_squared_error(ytest, y_pred)))

                                                          plt.plot(range(1,5000), errors, 'o-')

                                                          plt.show()

                                                          En vous remerciant par avance pour votre retour

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            22 juillet 2018 à 15:40:38

                                                            Bonjour à tous,

                                                            Je suis resté bloqué quelque temps au chapitre "TP Entrainez le modèle des plus proches voisins KNN."

                                                            En effet, La commande "mnist = fetch_mldata('MNIST original', data_home='./scikit_learn_data')" ne permettait pas récupérer le dataset : donc impossible réaliser le TP.

                                                            Le problème est apparu plusieurs fois, (cf le forum Open Classroom et le Github de Scikit Learn) , car la source du data set est injoignable.

                                                            J'ai donc trouvé une source alternative ici :https://github.com/amplab/datascience-sp14/raw/master/lab7/mldata/mnist-original.mat

                                                            En plaçant le fichier dans le repertoire './scikit_learn_data/mddata', ca fonctionne ! (nom du dossier à adapter en fonction de celui que vous spécifiez en appelant la fonction fetch_mldata.

                                                            -
                                                            Edité par BenjaminHannache 22 juillet 2018 à 15:48:55

                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                              25 juillet 2018 à 11:07:51

                                                              Bonjour à tous

                                                              A propos de l'exercice sur l'amélioration du modèle de prédiction du loyer, il me semble que la relation entre le numéro de l'arrondissement et le prix n'a aucune raison d'être linéaire, ou alors il conviendrait le vérifier en traçant dans un premier temps les prix/m^2 en fonction de l'arrondissement.

                                                              Si ceci peut être "fitter" par une droite, on peut alors envisager une regression linéaire multiple, sinon autant faire un modèle par arrondissement (ou envisager un autre type régression). Qu'en pensez-vous?

                                                              -
                                                              Edité par Rawy 25 juillet 2018 à 11:10:17

                                                              • 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