Bonjour à tous,
Je n'arrive pas à me dépatouiller d'un problème de structure de données. J'utilise le modèle linéaire de la library scikit learn pour un régression linéaire simple.Voici le code
Voici le code erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 import numpy as np import pandas as pd from sklearn import linear_model #vecteurs de données dans un tableau numpy data= np.array([[12240, 27195, 37675,50962,55805],[4.9, 5.8, 6.5,7.32,7.2]]) #Transposition data=data.T #création d'un datframe de shape(5,2) avec en tête frame=pd.DataFrame(data,columns=['pib','satisf']) X=frame['pib'] y=frame['satisf'] reg = linear_model.LinearRegression() reg.fit(X,y)
J'ai bien compris que python attend un tableau 2D or mon dataframe est 2D. J'ai essayé de reshaper mais je n'arrive à rien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ValueError: Expected 2D array, got 1D array instead: array=[12240. 27195. 37675. 50962. 55805.]. 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.]
Voici un code(qui n'est pas de moi) en tout point semblable sur un dataframe (62,2) qui marche parfaitement . Qu'elle est la différence de stucture des données ?
En vous remerciant de m'avoir consacré de votre temps
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 import pandas as pd import matplotlib.pyplot as plt import numpy as np import seaborn as sns from sklearn import linear_model #http://www.xavierdupre.fr/app/ensae_teaching_cs/helpsphinx/notebooks/ #td2a_eco_regressions_lineaires.html iris = sns.load_dataset("iris") sns.pairplot(iris, hue="species"); plt.show() #regression lineaire avec scikitlearn X = iris[["petal_length"]] y = iris["petal_width"] # On fit le modele model = linear_model.LinearRegression() results = model.fit(X, y)
Partager