我对此很陌生,但谁能告诉我这行是什么意思?
predicted= linear.predict(x_test)
我认为sklearn.linear_model.LinearRegression().fit()
需要一个(# of rows, 1)
形状的数组。
演示:
In [52]: x_train= [5.5997066,4.759385,2.573958,5.586931,3.019574,4.296047,1.586953,0.5997066,3.683957]
In [53]: linear.fit(x_train, y_train)
<PYTHON_PATH>libsite-packagessklearnutilsvalidation.py:386: DeprecationWarning: Passing 1d arrays as data
is deprecated in 0.17 and willraise ValueError in 0.19. Reshape your data either using X.reshape(-1, 1) if your data has a single feature or X.reshap
e(1, -1) if it contains a single sample.
DeprecationWarning)
...
skipped
...
ValueError: Found arrays with inconsistent numbers of samples: [1 9]
让我们让它快乐:
In [54]: x_train = np.array(x_train).reshape(len(x_train), -1)
In [55]: x_train.shape
Out[55]: (9, 1)
In [56]: linear.fit(x_train, y_train)
Out[56]: LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)
更新:这同样适用于x_test
数组:
In [60]: x_test = x_test.reshape(-1, 1)
In [61]: x_test.shape
Out[61]: (5, 1)
In [62]: predicted= linear.predict(x_test)
In [63]: predicted
Out[63]: array([ 5.7559457, 5.7559457, 5.7559457, 5.7559457, 5.7559457])