Я пытаюсь сделать следующий ниже код python с линейной регрессией, но я получаю ошибку: " expecting a 2D array got 1D array instead: Array=[16]
". Что может быть неправильным?
from sklearn.linear_model import LinearRegression
# Training data
X = [[6], [8], [10], [14], [18]]
y = [[7], [9], [13], [17.5], [19]]
# Create and fit the model
model = LinearRegression()
model.fit(X, y)
print 'A 16" pitta bread should cost: $%.2f' % model.predict([16])[0]
================================================== ================== Traceback (последний последний звонок):
File "<ipython-input-27-8b7f351334d7>", line 1, in <module>
runfile('C:/ML/train.py', wdir='C:/ML')
File "C:\Users\admin\Anaconda3\lib\site-
packages\spyder\utils\site\sitecustomize.py", line 705, in runfile
execfile(filename, namespace)
File "C:\Users\admin\Anaconda3\lib\site-
packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "C:/ML/train.py", line 16, in <module>
model.predict([12])[0]
File "C:\Users\admin\Anaconda3\lib\site-
packages\sklearn\linear_model\base.py", line 256, in predict
return self._decision_function(X)
File "C:\Users\admin\Anaconda3\lib\site-
packages\sklearn\linear_model\base.py", line 239, in _decision_function
X = check_array(X, accept_sparse=['csr', 'csc', 'coo'])
File "C:\Users\admin\Anaconda3\lib\site-
packages\sklearn\utils\validation.py", line 441, in check_array
"if it contains a single sample.".format(array))
ValueError: Expected 2D array, got 1D array instead:
array=[16].
Reshape your data either using array.reshape(-1, 1) if your data has a single
feature or array.reshape(1, -1) if it contains a single sample.
Вы предоставляете только 1D-массив. Пытаться
>>> print 'A 16" pitta bread should cost: $%.2f' % model.predict([16][0])
>>> A 16" pitta bread should cost: $18.14