Trainen en Evalueren van een RNN
Training en evaluatie van een LSTM-gebaseerd recurrent neuraal netwerk (RNN) voor aandelenkoersvoorspelling worden besproken. Het model leert toekomstige aandelenkoersen voorspellen op basis van historische gegevens via een proces dat het definiëren van de architectuur, het configureren van de verliesfunctie en optimizer, het trainen van het model en het evalueren van de prestaties omvat.
- Modeldefinitie: het LSTM-model wordt gedefinieerd met behulp van PyTorch, met belangrijke componenten zoals de inputgrootte, de grootte van de verborgen laag en het aantal lagen. Het model bestaat uit een LSTM-laag gevolgd door een lineaire laag voor outputvoorspelling. Het model is ontworpen om de voorgaande aandelenkoersen als input te nemen en de prijs van de volgende tijdstap te voorspellen;
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 van het model: in deze stap wordt het model getraind met behulp van de mean squared error (MSE) verliesfunctie en de adam optimizer. Het model wordt getraind over meerdere epochs, waarbij het verlies wordt berekend en bijgewerkt voor elke batch trainingsgegevens. De trainingslus omvat forward- en backwardpropagatie, waarbij de gewichten worden geoptimaliseerd om het verlies te minimaliseren. Tijdens de training wordt de verlieswaarde gemonitord om te waarborgen dat het model effectief leert;
criterion = nn.MSELoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)
-
Evaluatie: na de training wordt het model geëvalueerd op de testdataset. De voorspellingen van het model worden vergeleken met de werkelijke aandelenkoersen met behulp van root mean squared error (RMSE) als evaluatiemaatstaf. Deze maatstaf meet het verschil tussen de voorspelde en werkelijke waarden, waarbij een lagere RMSE een betere prestatie aangeeft. Het evaluatieproces omvat ook het inverse transformeren van de geschaalde voorspellingen om de werkelijke prijswaarden te verkrijgen voor vergelijking;
-
Prestatiemaatstaf: de RMSE wordt gebruikt om te beoordelen hoe goed het model presteert op niet eerder geziene gegevens. Een lagere RMSE-waarde geeft aan dat de voorspellingen van het model dichter bij de werkelijke waarden liggen. De RMSE wordt berekend na het vergelijken van de voorspelde waarden met de werkelijke, niet-geschaalde waarden uit de testgegevens.
Samengevat beschrijft dit hoofdstuk het proces van het trainen en evalueren van een LSTM-model voor tijdreeksvoorspellingen, met de nadruk op aandelenkoersvoorspelling. Belangrijke stappen zijn modeldefinitie, training met de MSE-verliesfunctie en Adam optimizer, en evaluatie van het model met behulp van RMSE.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Awesome!
Completion rate improved to 4.55
Trainen en Evalueren van een RNN
Veeg om het menu te tonen
Training en evaluatie van een LSTM-gebaseerd recurrent neuraal netwerk (RNN) voor aandelenkoersvoorspelling worden besproken. Het model leert toekomstige aandelenkoersen voorspellen op basis van historische gegevens via een proces dat het definiëren van de architectuur, het configureren van de verliesfunctie en optimizer, het trainen van het model en het evalueren van de prestaties omvat.
- Modeldefinitie: het LSTM-model wordt gedefinieerd met behulp van PyTorch, met belangrijke componenten zoals de inputgrootte, de grootte van de verborgen laag en het aantal lagen. Het model bestaat uit een LSTM-laag gevolgd door een lineaire laag voor outputvoorspelling. Het model is ontworpen om de voorgaande aandelenkoersen als input te nemen en de prijs van de volgende tijdstap te voorspellen;
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 van het model: in deze stap wordt het model getraind met behulp van de mean squared error (MSE) verliesfunctie en de adam optimizer. Het model wordt getraind over meerdere epochs, waarbij het verlies wordt berekend en bijgewerkt voor elke batch trainingsgegevens. De trainingslus omvat forward- en backwardpropagatie, waarbij de gewichten worden geoptimaliseerd om het verlies te minimaliseren. Tijdens de training wordt de verlieswaarde gemonitord om te waarborgen dat het model effectief leert;
criterion = nn.MSELoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)
-
Evaluatie: na de training wordt het model geëvalueerd op de testdataset. De voorspellingen van het model worden vergeleken met de werkelijke aandelenkoersen met behulp van root mean squared error (RMSE) als evaluatiemaatstaf. Deze maatstaf meet het verschil tussen de voorspelde en werkelijke waarden, waarbij een lagere RMSE een betere prestatie aangeeft. Het evaluatieproces omvat ook het inverse transformeren van de geschaalde voorspellingen om de werkelijke prijswaarden te verkrijgen voor vergelijking;
-
Prestatiemaatstaf: de RMSE wordt gebruikt om te beoordelen hoe goed het model presteert op niet eerder geziene gegevens. Een lagere RMSE-waarde geeft aan dat de voorspellingen van het model dichter bij de werkelijke waarden liggen. De RMSE wordt berekend na het vergelijken van de voorspelde waarden met de werkelijke, niet-geschaalde waarden uit de testgegevens.
Samengevat beschrijft dit hoofdstuk het proces van het trainen en evalueren van een LSTM-model voor tijdreeksvoorspellingen, met de nadruk op aandelenkoersvoorspelling. Belangrijke stappen zijn modeldefinitie, training met de MSE-verliesfunctie en Adam optimizer, en evaluatie van het model met behulp van RMSE.
Bedankt voor je feedback!