Навчання та Оцінювання RNN
Свайпніть щоб показати меню
Розглядається навчання та оцінювання рекурентної нейронної мережі (RNN) на основі LSTM для прогнозування цін акцій. Модель навчається передбачати майбутні ціни акцій на основі історичних даних шляхом визначення архітектури, налаштування функції втрат і оптимізатора, навчання моделі та оцінювання її ефективності.
- Визначення моделі: LSTM-модель визначається за допомогою PyTorch із ключовими компонентами, такими як розмір вхідного шару, розмір прихованого шару та кількість шарів. Модель складається з LSTM-шару, за яким слідує лінійний шар для прогнозування виходу. Модель призначена для отримання попередніх цін акцій як вхідних даних і прогнозування ціни на наступному кроці часу;
class LSTMModel(nn.Module):
def __init__(self, input_size=1, hidden_layer_size=50, num_layers=2, output_size=1):
super().__init__()
self.hidden_layer_size = hidden_layer_size
self.num_layers = num_layers
self.lstm = nn.LSTM(input_size, hidden_layer_size, num_layers, batch_first=True)
self.linear = nn.Linear(hidden_layer_size, output_size)
def forward(self, input_seq):
h0 = torch.zeros(self.num_layers, input_seq.size(0), self.hidden_layer_size).to(input_seq.device)
c0 = torch.zeros(self.num_layers, input_seq.size(0), self.hidden_layer_size).to(input_seq.device)
lstm_out, _ = self.lstm(input_seq, (h0.detach(), c0.detach()))
last_time_step_out = lstm_out[:, -1, :]
predictions = self.linear(last_time_step_out)
return predictions
- Навчання моделі: на цьому етапі модель навчається з використанням функції втрат mean squared error (MSE) та оптимізатора adam. Модель навчається протягом кількох епох, при цьому втрата обчислюється та оновлюється для кожного батчу тренувальних даних. Цикл навчання включає пряме та зворотне поширення, оптимізацію ваг для мінімізації втрат. Під час навчання відстежується значення втрат для контролю ефективності навчання моделі;
criterion = nn.MSELoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)
-
Оцінювання: після навчання модель оцінюється на тестовому наборі даних. Прогнози моделі порівнюються з фактичними цінами акцій за допомогою метрики root mean squared error (RMSE). Ця метрика вимірює різницю між прогнозованими та фактичними значеннями; менше значення RMSE свідчить про кращу ефективність. Процес оцінювання також включає зворотне перетворення масштабованих прогнозів для отримання реальних цін для порівняння;
-
Метрика ефективності: для оцінки якості моделі на невідомих даних використовується RMSE. Менше значення RMSE означає, що прогнози моделі ближчі до фактичних значень. RMSE обчислюється після порівняння прогнозованих значень із фактичними немасштабованими значеннями з тестових даних.
Підсумовуючи, у цьому розділі описано процес навчання та оцінювання LSTM-моделі для прогнозування часових рядів із фокусом на прогнозуванні цін акцій. Основні етапи включають визначення моделі, навчання з використанням функції втрат MSE та оптимізатора Adam, а також оцінювання моделі за допомогою RMSE.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Навчання та Оцінювання RNN
Розглядається навчання та оцінювання рекурентної нейронної мережі (RNN) на основі LSTM для прогнозування цін акцій. Модель навчається передбачати майбутні ціни акцій на основі історичних даних шляхом визначення архітектури, налаштування функції втрат і оптимізатора, навчання моделі та оцінювання її ефективності.
- Визначення моделі: LSTM-модель визначається за допомогою PyTorch із ключовими компонентами, такими як розмір вхідного шару, розмір прихованого шару та кількість шарів. Модель складається з LSTM-шару, за яким слідує лінійний шар для прогнозування виходу. Модель призначена для отримання попередніх цін акцій як вхідних даних і прогнозування ціни на наступному кроці часу;
class LSTMModel(nn.Module):
def __init__(self, input_size=1, hidden_layer_size=50, num_layers=2, output_size=1):
super().__init__()
self.hidden_layer_size = hidden_layer_size
self.num_layers = num_layers
self.lstm = nn.LSTM(input_size, hidden_layer_size, num_layers, batch_first=True)
self.linear = nn.Linear(hidden_layer_size, output_size)
def forward(self, input_seq):
h0 = torch.zeros(self.num_layers, input_seq.size(0), self.hidden_layer_size).to(input_seq.device)
c0 = torch.zeros(self.num_layers, input_seq.size(0), self.hidden_layer_size).to(input_seq.device)
lstm_out, _ = self.lstm(input_seq, (h0.detach(), c0.detach()))
last_time_step_out = lstm_out[:, -1, :]
predictions = self.linear(last_time_step_out)
return predictions
- Навчання моделі: на цьому етапі модель навчається з використанням функції втрат mean squared error (MSE) та оптимізатора adam. Модель навчається протягом кількох епох, при цьому втрата обчислюється та оновлюється для кожного батчу тренувальних даних. Цикл навчання включає пряме та зворотне поширення, оптимізацію ваг для мінімізації втрат. Під час навчання відстежується значення втрат для контролю ефективності навчання моделі;
criterion = nn.MSELoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)
-
Оцінювання: після навчання модель оцінюється на тестовому наборі даних. Прогнози моделі порівнюються з фактичними цінами акцій за допомогою метрики root mean squared error (RMSE). Ця метрика вимірює різницю між прогнозованими та фактичними значеннями; менше значення RMSE свідчить про кращу ефективність. Процес оцінювання також включає зворотне перетворення масштабованих прогнозів для отримання реальних цін для порівняння;
-
Метрика ефективності: для оцінки якості моделі на невідомих даних використовується RMSE. Менше значення RMSE означає, що прогнози моделі ближчі до фактичних значень. RMSE обчислюється після порівняння прогнозованих значень із фактичними немасштабованими значеннями з тестових даних.
Підсумовуючи, у цьому розділі описано процес навчання та оцінювання LSTM-моделі для прогнозування часових рядів із фокусом на прогнозуванні цін акцій. Основні етапи включають визначення моделі, навчання з використанням функції втрат MSE та оптимізатора Adam, а також оцінювання моделі за допомогою RMSE.
Дякуємо за ваш відгук!