IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Calcul scientifique Python Discussion :

Afficher droite de régression linéaire


Sujet :

Calcul scientifique Python

  1. #1
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 897
    Points
    1 897
    Par défaut Afficher droite de régression linéaire
    Bonjour,

    J'ai un modèle de régression linéaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    from sklearn.linear_model import LinearRegressionregressor = LinearRegression()
    regressor.fit(X_train, y_train)
    prediction = regressor.predict(X_test)
    Le soucis est pour afficher (avec Matplotlib ou autre librairie) la droite de régression linéaire qui a été calculée par sklearn.

    Comment faire cette petite chose qui semble toute simple ?

    Merci.

    A+
    La connaissance ne sert que si elle est partagée.
    http://ms2i.net

  2. #2
    Membre éprouvé

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 656
    Points : 1 153
    Points
    1 153
    Par défaut
    Salut,

    prediction est array de dimension 1. Je vais supposé que X_test est de dimension (n,1). Normalement X_train doit être un array de dimension (n,d) avec n le nombre d'observations/points et d le nombre de features, tandis que y_train doit être de dimension (n,), c'est à dire une liste (pas d'erreur, il n'y a rien après la virgule). Je précise, parce que je me suis souvent pris la tête avec ces problèmes de dimensions...

    La seule difficulté est alors de passer X_test de la dimension (m,1), avec m le nombre de points, à la dimension (m,). Autrement dit d'un vecteur colonne à une liste. Pour ces changement de forme, j'ai une préférence pour np.hstack() et np.vstack(), le premier mettant à l'horizontal et l'autre à la vertical.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    import numpy as np
    import matplotlib.pyplot as plt
     
    from sklearn.linear_model import LinearRegression
     
    # Creation d'un jeux de données basique
    x = np.linspace(0, 20, 21)
    y = x + np.random.rand(21)
    X_train, y_train = np.vstack(x), y
    X_test = np.vstack(np.linspace(0, 20, 6))
     
    # Model de regression
    regressor = LinearRegression()
    regressor.fit(X_train, y_train)
    prediction = regressor.predict(X_test)
     
    # On fait un petit graph
    fig, ax = plt.subplots()
    ax.scatter(np.hstack(X_train), y_train, label='Training set')
    ax.scatter(np.hstack(X_test), prediction, color='red', label='Prediction')
    ax.set_xlabel('Input')
    ax.set_ylabel('Output')
    ax.legend()
     
    plt.show()
    Ce qui donne :
    Nom : Figure_1.png
Affichages : 172
Taille : 20,2 Ko

    J

  3. #3
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 897
    Points
    1 897
    Par défaut
    Citation Envoyé par Julien N Voir le message
    Salut,[...]
    Merci beaucoup pour tes explications précises et complètes : C'est très appréciable.

    Je vais tester cela.

    A+
    La connaissance ne sert que si elle est partagée.
    http://ms2i.net

Discussions similaires

  1. Régression linéaire, loi F, t, normale et Khi-2
    Par philben dans le forum Contribuez
    Réponses: 3
    Dernier message: 20/08/2020, 14h22
  2. [Python 2.X] Droites extrêmes et régression linéaire
    Par Mainot dans le forum Calcul scientifique
    Réponses: 1
    Dernier message: 19/10/2017, 10h46
  3. Droite de régression linéaire
    Par marine44 dans le forum R
    Réponses: 2
    Dernier message: 18/04/2013, 16h53
  4. VBA - coefficient de droite de régression linéaire
    Par Timber_Kennedy dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/06/2012, 23h11
  5. Module qui permet de faire des régression linéaire ?
    Par Anti-T dans le forum Calcul scientifique
    Réponses: 3
    Dernier message: 04/09/2009, 13h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo