2016-06-27 14 views
0

y1 ist ein numpy.ndarray mit der Länge 106 (welchen Höhen in Metern gemessen).fit() Fehler: Gefunden Arrays mit inkonsistenter Anzahl von Proben

x1 ist ein numpy.ndarray mit der Länge 106 (entsprechend dem Alter der Jungen, die den Höhen entsprechen)

Ich versuche Höhen mit linearer Regression mit Gradientenabstieg vorherzusagen und dann als 3D-Oberflächendiagramm zu plotten.

Wenn ich versuche, .fit() zu tun, es sagt mir

ValueError: Found arrays with inconsistent numbers of samples: [ 1 106]

import numpy as np 
from sklearn import linear_model 

x1 = np.fromfile('ex2x.dat', float) 
y1 = np.fromfile('ex2y.dat', float) 

clf = linear_model.SGDRegressor(alpha=.007) 

clf.fit(x1, y1) 


y_predicted = clf.predict(3.5) 
+1

Ähnlich: http://stackoverflow.com/questions/30813044/sklearn-found-arrays-with-inconistence-anzahl von samples-when-calling-linearre – SAMO

+0

Ich weiß, ich sah, dass Post und es immer noch nicht geholfen – Nate

+0

Können Sie die Ausgabe von print x1 geben .gestalten? – geompalik

Antwort

2

Die erwarteten Array Formen sind:

  • (N_SAMPLES, 1) für x1, ein 2D-Sinn Array mit einer Spalte (da Sie ein Feature haben)
  • (n_samples,) für y1, was ein 1D-Array bedeutet.

Wenn Ihre erste Array 1D ist, sollten Sie es neu zu gestalten:

x1 = np.fromfile('ex2x.dat', float).reshape(-1, 1) 

Hier ist eine kleine in sich geschlossene Beispiel:

import numpy as np 
from sklearn import linear_model 

x1 = np.array(range(10)).reshape(-1, 1) 
y1 = np.array([k**.5 for k in range(10)]) 

clf = linear_model.SGDRegressor(alpha=.0007) 
clf.fit(x1, y1) 

y_predicted = clf.predict(3.5) 
Verwandte Themen