这条线是什么意思

时间:2017-01-23 14:55:44

标签: python machine-learning scikit-learn

我对此很新,但有人能告诉我这条线是什么意思吗?

predicted= linear.predict(x_test)

1 个答案:

答案 0 :(得分:0)

我认为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])