Недавно я попытался завершить нейронную сеть для прогнозирования колебаний цен отдельных акций на фондовом рынке, используя Keras в качестве основы для сети и Quandl для получения исторических скорректированных цен акций; при запуске этой программы я в основном использовал парадигму программы и информацию, отображаемую в отдельном руководстве, ссылка на которое отображается ниже:
https://www.youtube.com/watch?v=EYnC4ACIt2g&t=2079s
Однако в учебнике использовался модуль линейной регрессии «sklearn»; Я изменил программу, чтобы использовать Keras, который обладает большими возможностями настройки. Программа представлена ниже:
import tensorflow as tf
import keras
import numpy as np
import quandl
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
df = quandl.get("WIKI/FB")
df = df[['Adj. Close']]
forecast_out = 1
df['Prediction'] = df[['Adj. Close']].shift(-(forecast_out))
X = np.array(df.drop(['Prediction'], 1))
X = X[:-forecast_out]
y = np.array(df['Prediction'])
y = y[:-forecast_out]
x_train, x_test, y_train, y_test = train_test_split(X, y, test_size = 0.2)
model = keras.models.Sequential()
model.add(keras.layers.Dense(units = 64, activation = 'relu'))
model.add(keras.layers.Dense(units = 1, activation = 'linear'))
model.compile(loss='mean_absolute_error',
optimizer='adam',
metrics=['accuracy'])
model.fit(x_train, y_train, epochs=5, batch_size=32, validation_split = 0.2)
x_forecast = np.array(df.drop(['Prediction'], 1))[-forecast_out:]
print(x_forecast)
prediction = model.predict(x_train)
Однако после запуска модели с предоставленной тестовой информацией с помощью команды model.fit() я получил следующее отображение потерь и точности для каждой эпохи:
Train on 940 samples, validate on 236 samples
Epoch 1/5
940/940 [==============================] - 1s 831us/step - loss: 85.4464 - acc: 0.0000e+00 - val_loss: 76.7483 - val_acc: 0.0000e+00
Epoch 2/5
940/940 [==============================] - 0s 51us/step - loss: 65.6871 - acc: 0.0000e+00 - val_loss: 55.4325 - val_acc: 0.0000e+00
Epoch 3/5
940/940 [==============================] - 0s 52us/step - loss: 43.3484 - acc: 0.0000e+00 - val_loss: 30.5538 - val_acc: 0.0000e+00
Epoch 4/5
940/940 [==============================] - 0s 47us/step - loss: 16.5076 - acc: 0.0011 - val_loss: 1.3096 - val_acc: 0.0042
Epoch 5/5
940/940 [==============================] - 0s 47us/step - loss: 2.0529 - acc: 0.0043 - val_loss: 1.1567 - val_acc: 0.0000e+00
<keras.callbacks.History at 0x7ff1dfa19470>
Учитывая мой относительно небольшой опыт проверки таких парадигм, я бы предпочел знать, удовлетворительна ли эта точность или нет; указывают ли параметры потерь и точности на то, что модель работает идеально? В чем разница между ними и как их можно прочитать? Наконец, как их характеризует Керас? Документация по модулю не содержала достаточного количества информации; однако, возможно, виноват мой осмотр их. Спасибо за помощь.