我对此很陌生,但是谁能告诉我这句话是什么意思?

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>\lib\site-packages\sklearn\utils\validation.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])

09-27 09:20