ValueError: non-broadcastable output operand with shape (12,1) doesn't match the broadcast shape (12,5)

Не могу понять, как исправить. Как я понял, неправильно матрицу транспонирует или что-то типа этого. Буду благодарен, если поможете и объясните, что не так:

import pandas as pd
from darts import TimeSeries
from darts.models import ExponentialSmoothing
import matplotlib.pyplot as plt
import requests
from bs4 import BeautifulSoup as bs4
import math
from keras.models import Sequential
from keras.layers import Dense 
from keras.layers import LSTM
from sklearn.preprocessing import MinMaxScaler
from sklearn.metrics import mean_squared_error
from sklearn.preprocessing import StandardScaler
import numpy as np

armatura = pd.read_csv("data_1.csv")
arm = armatura.copy()
arm = arm.filter(regex="railway")
arm = arm.dropna(axis=0, how="any")
del arm['pro_railway_import']
dt_arm = arm.copy()
print(dt_arm)

scaler = MinMaxScaler(feature_range=(0, 1))
dt = scaler.fit_transform(dt_arm)

train_size = int(len(dt) * 0.67)
test_size = len(dt) - train_size
print(test_size)

train, test = dt[0:train_size,:], dt[train_size:len(dt), :]
print(len(train), len(test))

def create_dt(dt, look_back=1):
    dataX, dataY = [], []
    for i in range(len(dt)-look_back-1):
    a = dt[i:(i+look_back), 0]
    dataX.append(a)
    dataY.append(dt[i + look_back, 0])
return np.array(dataX), np.array(dataY)

look_back = 1
trainX, trainY = create_dt(train, look_back)
testX, testY = create_dt(test, look_back)
trainX = np.reshape(trainX, (trainX.shape[0], 1, trainX.shape[1]))
testX = np.reshape(testX, (testX.shape[0], 1, testX.shape[1]))

print("Результат тренировочных данных", trainX)
print("Результат тестовых данных", testX)

model = Sequential()
model.add(LSTM(4, input_shape=(1, look_back)))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam')
model.fit(trainX, trainY, epochs=100, batch_size=1, verbose=2)

trainPredict = model.predict(trainX)
testPredict = model.predict(testX)

trainPredict_like = np.zeros(shape=(len(trainPredict), 1))
trainPredict_like[:,0] = trainPredict[:,0]
testPredict_like = np.zeros(shape=(len(testPredict), 1))
testPredict_like[:,0] = testPredict[:,0]

trainPredict = scaler.inverse_transform(trainPredict_like.reshape(-1,1)).reshape(-1)
trainY = scaler.inverse_transform([trainY])
testPredict = scaler.inverse_transform(testPredict_like.reshape(-1,1)).reshape(-1)
testY = scaler.inverse_transform([testY])

trainScore = math.sqrt(mean_squared_error(trainY[0], trainPredict[:,0]))
print('Train Score: %.2f RMSE' % (trainScore))
testScore = math.sqrt(mean_squared_error(testY[0], testPredict[:,0]))
print('Test Score: %.2f RMSE' % (testScore))

Ответы (0 шт):