Я работаю над практическими упражнениями по машинному обучению и получаю сообщение об ошибке, когда запускаю следующий код:
from sklearn.neighbors import KNeighborsRegressor
import numpy as np
import matplotlib.pyplot as plt
N=51
SD=1.15
ME=0
E=np.random.normal(ME, SD, N)
X = np.linspace(-4,4, N, endpoint=True)
Y = X**2 + E
neigh = KNeighborsRegressor(n_neighbors=2)
neigh.fit(X, Y)
X_eval = np.linspace(0,4,1000)
X_eval = X_eval.reshape(-1,1)
plt.figure()
plt.plot(X_eval,neigh.predict(X_eval), label="regression predictor")
plt.plot(X,Y, 'rs', markersize=12, label="training set")
plt.show()
ошибка в строке соседей. ():
ValueError: Ожидаемый 2D-массив, вместо него получен 1D-массив: array = [все сгенерированные x-значения]. Измените ваши данные, используя array.reshape (-1, 1), если ваши данные имеют одну функцию, или array.reshape (1, -1), если он содержит один образец.
Но подобная подгонка тоже не работает. Я довольно новичок в машинном обучении и python программировании, поэтому я приношу свои извинения, если этот вопрос тривиален, но: что я могу улучшить, чтобы мой код работал? Заранее спасибо!