Я использую приведенный ниже код для прогнозирования данных временных рядов. Я использовал данные Quandl для этого. Но тот же код работает для бота набора данных, не работает для другого. Там нет ошибок компиляции. Но после этапа построения модели я не получаю никаких результатов.
Код:
import pandas as pd
import quandl
quandl.ApiConfig.api_key = 'my-quandl-code'
import matplotlib.pyplot as plt
pd.plotting.register_matplotlib_converters()
col = "Net"
df = quandl.get("ISM/MAN_PROD") #Not working for this dataset
#col = "High"
#df = quandl.get("EOD/HD") Works for this datset
df = df[col]
df = df.reset_index()
df =df.rename(columns = {"Date":"ds",col:"y"})
from sklearn.preprocessing import MinMaxScaler
values = df['y'].values.reshape(-1,1)
values = values.astype('float32')
scaler = MinMaxScaler(feature_range=(0, 1))
scaled = scaler.fit_transform(values)
train_size = int(len(scaled) * 0.9)
test_size = len(scaled) - train_size
train, test = scaled[0:train_size,:], scaled[train_size:len(scaled),:]
print(len(train), len(test))
def create_dataset(dataset, look_back=1):
dataX, dataY = [], []
for i in range(len(dataset) - look_back):
a = dataset[i:(i + look_back), 0]
dataX.append(a)
dataY.append(dataset[i + look_back, 0])
print(len(dataY))
return np.array(dataX), np.array(dataY)
import numpy as np
look_back = 5
trainX, trainY = create_dataset(train, look_back)
testX, testY = create_dataset(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]))
import keras
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import LSTM
model = Sequential()
model.add(LSTM(100, input_shape=(trainX.shape[1], trainX.shape[2])))
model.add(Dense(1))
model.compile(loss='mae', optimizer='adam')
history = model.fit(trainX, trainY, epochs=300, batch_size=100, validation_data=(testX, testY), verbose=0, shuffle=False)
plt.plot(history.history['loss'], label='train')
plt.plot(history.history['val_loss'], label='test')
plt.legend()
plt.show()
, пожалуйста, помогите.