Предикат_генератор не "обновляется" после каждого прогноза.Придерживается некоторых правильных шаблонов, но с ошибкой - PullRequest
0 голосов
/ 24 марта 2019

Я всегда считал, что предикат_генератора () для данных с одной выборкой работал примерно так, как если бы вы передавали значение или значения из генератора, и он прогнозировал вперед 1 (или сколько бы вы ни указывали временных шагов).Затем, если это не так, он предсказывает на следующем входе, как если бы он начал с правильного значения.Поэтому я ожидаю, что мои прогнозы будут в некоторой степени соответствовать графику, который у меня есть, но с некоторой задержкой.Я надеюсь, что в этом есть смысл.В любом случае, я просто анализирую цены закрытия акций Amazon.Мой код ниже и вывод графика также.Красный прогнозируется, а синий актуален.

Red is Predicted and Blue is Actual

data = pd.read_csv("D:\\School\\Spring_2019\\GraduateProject\\Stock Data\\AMZN.csv",header=0,usecols=['Date','Close'],index_col='Date',parse_dates=True)

# Data Scaling
scaler = MinMaxScaler()
data_s = scaler.fit_transform(data)
data_s

# Data Splitting into Train, Test, and Validation
trainLen = int(0.5*len(data_s))
train = data_s[0:trainLen,:]

valLen = int(0.25*len(data_s))
validation = data_s[trainLen:(trainLen+valLen),:]

test = data_s[trainLen+valLen:,:]

# Generators
trainGen = TimeseriesGenerator(data=train,targets=train,
                               length=1,sampling_rate=1,batch_size=2)

valGen = TimeseriesGenerator(data=validation,targets=validation,
                               length=1,sampling_rate=1,batch_size=2)

testGen = TimeseriesGenerator(data=test,targets=test,
                               length=1,sampling_rate=1,batch_size=2)

# Network Design
AMZN = Sequential()
AMZN.add(LSTM(256,input_shape=(1,1)))
AMZN.add(Dense(1,activation='sigmoid'))

# Model Compiler
AMZN.compile(loss='mean_squared_error',optimizer='adam',metrics=['accuracy'])

# Model Fitting
epochSteps = int(trainLen/2)
epochSteps_v = int(valLen/2)
AMZN.fit_generator(trainGen,steps_per_epoch = epochSteps,epochs=5,verbose=1,
                   validation_data=valGen,validation_steps=epochSteps_v)

predicted = AMZN.predict_generator(testGen,verbose=1)

Очевидно, я еще не масштабировал данные обратно.Дайте мне знать, какие у вас мысли.Я предполагаю, что генератор Keras преобразует массивы NumPy в 3D.Изначально я не ожидал, что это сработает, так как я никогда не менял форму.Любые мысли о том, как на самом деле работает прогноз и почему он, кажется, обнаруживает нисходящие движения на рынке, но постоянно или выше, или ниже фактических значений?

Редактировать: Также у меня есть этот странный результат, где, если яизменить только эпохи я получаю следующий результат;enter image description here

Это происходит, когда я меняю эпохи на 10. 5, похоже, работают, но по какой-то причине 10 и 20 не работают ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...