Training und Evaluierung eines RNN
Das Training und die Evaluierung eines LSTM-basierten rekurrenten neuronalen Netzes (RNN) zur Vorhersage von Aktienkursen werden erläutert. Das Modell lernt, zukünftige Aktienkurse auf Basis vergangener Daten vorherzusagen. Der Prozess umfasst die Definition der Architektur, die Konfiguration der Verlustfunktion und des Optimierers, das Training des Modells sowie die Bewertung seiner Leistung.
- Modell-Definition: Das LSTM-Modell wird mit PyTorch definiert, wobei zentrale Komponenten wie Eingabegröße, Größe der versteckten Schicht und Anzahl der Schichten festgelegt werden. Das Modell besteht aus einer LSTM-Schicht, gefolgt von einer linearen Schicht zur Ausgabevorhersage. Das Modell ist darauf ausgelegt, vorherige Aktienkurse als Eingabe zu verwenden und den Preis des nächsten Zeitschritts vorherzusagen;
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
- Training des Modells: In diesem Schritt wird das Modell mit der Mean Squared Error (MSE)-Verlustfunktion und dem Adam-Optimierer trainiert. Das Modell wird über mehrere Epochen trainiert, wobei der Verlust für jedes Trainingsdaten-Batch berechnet und aktualisiert wird. Die Trainingsschleife umfasst Vorwärts- und Rückwärtspropagation, wobei die Gewichte optimiert werden, um den Verlust zu minimieren. Während des Trainings wird der Verlustwert überwacht, um sicherzustellen, dass das Modell effektiv lernt;
criterion = nn.MSELoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)
-
Evaluierung: Nach dem Training wird das Modell auf dem Testdatensatz bewertet. Die Vorhersagen des Modells werden mit den tatsächlichen Aktienkursen unter Verwendung des Root Mean Squared Error (RMSE) als Bewertungsmetrik verglichen. Diese Metrik misst die Differenz zwischen den vorhergesagten und den tatsächlichen Werten, wobei ein niedrigerer RMSE auf eine bessere Leistung hinweist. Der Evaluierungsprozess umfasst auch das Inverse-Transformieren der skalierten Vorhersagen, um die tatsächlichen Kurswerte für den Vergleich zu erhalten;
-
Leistungsmetrik: Der RMSE wird verwendet, um zu beurteilen, wie gut das Modell auf unbekannten Daten abschneidet. Ein niedriger RMSE-Wert zeigt an, dass die Vorhersagen des Modells näher an den tatsächlichen Werten liegen. Der RMSE wird berechnet, nachdem die vorhergesagten Werte mit den tatsächlichen, unskalierten Werten aus den Testdaten verglichen wurden.
Zusammenfassend beschreibt dieses Kapitel den Prozess des Trainings und der Evaluierung eines LSTM-Modells für Zeitreihenprognosen mit Fokus auf die Aktienkursvorhersage. Zentrale Schritte sind die Modell-Definition, das Training mit der MSE-Verlustfunktion und dem Adam-Optimierer sowie die Evaluierung des Modells mit RMSE.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Can you explain how the context window size affects the predictions?
What are some ways to improve the model's performance?
How can I visualize the predictions versus the actual values?
Awesome!
Completion rate improved to 4.55
Training und Evaluierung eines RNN
Swipe um das Menü anzuzeigen
Das Training und die Evaluierung eines LSTM-basierten rekurrenten neuronalen Netzes (RNN) zur Vorhersage von Aktienkursen werden erläutert. Das Modell lernt, zukünftige Aktienkurse auf Basis vergangener Daten vorherzusagen. Der Prozess umfasst die Definition der Architektur, die Konfiguration der Verlustfunktion und des Optimierers, das Training des Modells sowie die Bewertung seiner Leistung.
- Modell-Definition: Das LSTM-Modell wird mit PyTorch definiert, wobei zentrale Komponenten wie Eingabegröße, Größe der versteckten Schicht und Anzahl der Schichten festgelegt werden. Das Modell besteht aus einer LSTM-Schicht, gefolgt von einer linearen Schicht zur Ausgabevorhersage. Das Modell ist darauf ausgelegt, vorherige Aktienkurse als Eingabe zu verwenden und den Preis des nächsten Zeitschritts vorherzusagen;
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
- Training des Modells: In diesem Schritt wird das Modell mit der Mean Squared Error (MSE)-Verlustfunktion und dem Adam-Optimierer trainiert. Das Modell wird über mehrere Epochen trainiert, wobei der Verlust für jedes Trainingsdaten-Batch berechnet und aktualisiert wird. Die Trainingsschleife umfasst Vorwärts- und Rückwärtspropagation, wobei die Gewichte optimiert werden, um den Verlust zu minimieren. Während des Trainings wird der Verlustwert überwacht, um sicherzustellen, dass das Modell effektiv lernt;
criterion = nn.MSELoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)
-
Evaluierung: Nach dem Training wird das Modell auf dem Testdatensatz bewertet. Die Vorhersagen des Modells werden mit den tatsächlichen Aktienkursen unter Verwendung des Root Mean Squared Error (RMSE) als Bewertungsmetrik verglichen. Diese Metrik misst die Differenz zwischen den vorhergesagten und den tatsächlichen Werten, wobei ein niedrigerer RMSE auf eine bessere Leistung hinweist. Der Evaluierungsprozess umfasst auch das Inverse-Transformieren der skalierten Vorhersagen, um die tatsächlichen Kurswerte für den Vergleich zu erhalten;
-
Leistungsmetrik: Der RMSE wird verwendet, um zu beurteilen, wie gut das Modell auf unbekannten Daten abschneidet. Ein niedriger RMSE-Wert zeigt an, dass die Vorhersagen des Modells näher an den tatsächlichen Werten liegen. Der RMSE wird berechnet, nachdem die vorhergesagten Werte mit den tatsächlichen, unskalierten Werten aus den Testdaten verglichen wurden.
Zusammenfassend beschreibt dieses Kapitel den Prozess des Trainings und der Evaluierung eines LSTM-Modells für Zeitreihenprognosen mit Fokus auf die Aktienkursvorhersage. Zentrale Schritte sind die Modell-Definition, das Training mit der MSE-Verlustfunktion und dem Adam-Optimierer sowie die Evaluierung des Modells mit RMSE.
Danke für Ihr Feedback!