J'ai quelques problèmes avec la régression linéaire, je viens d'utiliser un échantillon simple et j'obtiens toujours une erreur, je ne sais pas ce que je fais de mal.

Voici le code:

x = [1,1,2,3,1,1,2,0,4,1]

x = np.array(x)

x = np.reshape(1,-1)

y = [1.24,0.88,0.88,1.31,1.36,0.79,0.79,0.79,1.36,1.36]

y = np.array(y)

y = np.reshape(1,-1)

lin_reg = LinearRegression()

lin_reg.fit(x,y)


"ValueError: Expected 2D array, got 1D array instead:
array=[1].
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."
-2
JohnyNewProgrammer 31 août 2020 à 18:13

2 réponses

Meilleure réponse

L'erreur indique ce que vous devez faire dans ce cas.

Utilisez simplement .reshape(-1, 1) au lieu de .reshape(1,-1).

Ne le faites que pour x et le problème est résolu.

x = [1,1,2,3,1,1,2,0,4,1]

x = np.array(x).reshape(-1, 1) # Edited line

y = [1.24,0.88,0.88,1.31,1.36,0.79,0.79,0.79,1.36,1.36]

lin_reg = LinearRegression()

lin_reg.fit(x,y)
0
Henrique Branco 31 août 2020 à 15:22

Vous avez mal appelé la fonction reshape.

Si vous souhaitez remodeler les matrices x ou y, vous devez appeler comme suit:

x = x.reshape(1, -1)

Ou en combinant avec une ligne avant:

x = np.array(x).reshape(1, -1)

Si vous appelez uniquement np.reshape(), rien ne se passerait avec vos données.

0
NiMaZi 31 août 2020 à 15:21