Ошибка значения: x и y должны иметь одинаковое первое измерение, но иметь формы (32,) и (30,)

#python #pandas #numpy #matplotlib #linear-regression

#python #панды #numpy #matplotlib #линейная регрессия

Вопрос:

Я работаю над моделью прогнозирования запасов, и я получаю эту ошибку, хотя они имеют одинаковые значения!

Это код, в котором я обучаю модель и использую линейную регрессию

     x_train, x_test, y_train, y_test = train_test_split(x,y,test_size = 0.2)
    clf =  LinearRegression()
    clf.fit(x_train, y_train)
    scorepredict = clf.score(x_test,y_test)
    predictedprice = clf.predict(x_prediction)
 

Вот где я получаю ошибку.

     dates = pd.date_range(start = "2018-03-28", end  = "2018-04-28")
    plt.plot(dates,color ="y")
    df["Adj. Close"].plot(color = "g")
    plt.xlim(xmin=datetime.date(2017,1,1))
 

И здесь я настраиваю массивы x и y.

 predictiondays = 30
df["Prediction"] = df[["Adj. Close"]].shift(-predictiondays)
x = np.array(df.drop(["Prediction"],1))
x = preprocessing.scale(x)
x_prediction = x[-predictiondays:]
x = x[:-predictiondays]

y = np.array(df["Prediction"])
y = y[:-predictiondays]
 

Редактировать:

Теперь в clf.fit появляется эта ошибка:

Ошибка значения: ожидаемый 2D массив, вместо этого получен 1D массив: массив=[-1.23874374 1.49125839 0.80930081 … 0.32190385 1.01987874 1.06322504].

Я ничего не трогал lul.

Комментарии:

1. Разве x не должно быть двумерным представлением? x = np.array( [df.drop([«Предсказание»],1) ] )

2. @Amirhosein Он двумерный, нет? Я изменил его на x = np.array([df.drop([«Prediction»],1) ] ), и теперь он говорит, что это 3-мерный массив.