0

Ich möchte eine lineare Regressionsanalyse mit Sklearn ausführen, das ist mein Code. Ich erhalte eine Fehlermeldung, die besagt, "Expected 2D-Array, bekam 1D-Array statt"Sklearn - Lineare Regression

from sklearn.linear_model import LinearRegression 
import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt 
%matplotlib inline 

# import data from csv file and store it into a variable 

data = pd.read_csv("Advertising.csv") 

x = data.iloc[:,2] 
y = data.iloc[:,4] 

reg = LinearRegression(x,y) 
reg.fit (x,y) 

Fehler:

ValueError: Expected 2D array, got 1D array instead: 
array=[ 37.8 39.3 45.9 41.3 10.8 48.9 32.8 19.6 2.1 2.6 5.8 24. 
    35.1 7.6 32.9 47.7 36.6 39.6 20.5 23.9 27.7 5.1 15.9 16.9 
+1

Ich glaube, Sie reshape Methode verwenden oder [x] und [y]. – GauravInno

Antwort

1

Ihr Code Fehler im Konstruktor Lineare Regression hat.

Statt:

reg = LinearRegression(x,y) 

tun:

reg = LinearRegression() 

Jetzt als für den Fehler, den Sie sagen, es ist, weil Sie nur einzelne Spalte in X. haben also die aktuelle Form ist

(n_rows,) 

Alle Scikit-Schätzer benötigen X der Form:

(n_rows, n_columns) 

So umformen Ihre X wie folgt aus:

X = X.reshape(-1,1) 

Und dann geben sie zu passen()

+0

Vielen Dank. Es funktioniert perfekt. – Kaleembukhari