Deep Learning leicht gemacht: PyTorch Transformer sagt Aktienkurse, virtuelle Daten und das ChatGPT-Homologiemodell voraus

Die Vorhersage von Aktienkursen ist eine anspruchsvolle Aufgabe, die bei Forschern und Praktikern große Aufmerksamkeit auf sich gezogen hat. Mit dem Aufkommen von Deep-Learning-Techniken wurden viele Modelle zur Lösung dieses Problems vorgeschlagen. Ein solches Modell ist der Transformer, der bei vielen Aufgaben der Verarbeitung natürlicher Sprache modernste Ergebnisse erzielt. In diesem Blogbeitrag führen wir Sie durch ein Beispiel für die Verwendung eines PyTorch-Transformers, um Aktienkurse für die nächsten 5 Tage basierend auf den vorherigen 10 Tagen vorherzusagen.

Importieren wir zunächst die notwendigen Bibliotheken:

import torch
import torch.nn as nn
import torch.optim as optim
import numpy as np

Generieren Sie Daten, um das Modell zu trainieren

Für dieses Beispiel generieren wir einige Dummy-Aktienkursdaten:

num_days = 200
stock_prices = np.random.rand(num_days) * 100

Daten vorverarbeiten

Wir bereiten die Eingabe- und Zielsequenzen für unser Modell vor:

input_seq_len = 10
output_seq_len = 5
num_samples = num_days - input_seq_len - output_seq_len + 1

src_data = torch.tensor([stock_prices[i:i+input_seq_len] for i in range(num_samples)]).unsqueeze(-1).float()
tgt_data = torch.tensor([stock_prices[i+input_seq_len:i+input_seq_len+output_seq_len] for i in range(num_samples)]).unsqueeze(-1).float()

Erstellen Sie ein benutzerdefiniertes Konvertermodell

Wir erstellen ein benutzerdefiniertes Transformer-Modell für die Aktienkursvorhersage:

class StockPriceTransformer(nn.Module):
    def __init__(self, d_model, nhead, num_layers, dropout):
        super(StockPriceTransformer, self).__init__()
        self.input_linear = nn.Linear(1, d_model)
        self.transformer = nn.Transformer(d_model, nhead, num_layers, dropout=dropout)
        self.output_linear = nn.Linear(d_model, 1)

    def forward(self, src, tgt):
        src = self.input_linear(src)
        tgt = self.input_linear(tgt)
        output = self.transformer(src, tgt)
        output = self.output_linear(output)
        return output

d_model = 64
nhead = 4
num_layers = 2
dropout = 0.1

model = StockPriceTransformer(d_model, nhead, num_layers, dropout=dropout)

Trainingsmodell

Wir werden die Trainingsparameter, die Verlustfunktion und den Optimierer festlegen:

epochs = 100
lr = 0.001
batch_size = 16

criterion = nn.MSELoss()
optimizer = optim.Adam(model.parameters(), lr=lr)

Jetzt trainieren wir das Modell mithilfe der Trainingsschleife:

for epoch in range(epochs):
    for i in range(0, num_samples, batch_size):
        src_batch = src_data[i:i+batch_size].transpose(0, 1)
        tgt_batch = tgt_data[i:i+batch_size].transpose(0, 1)
        
        optimizer.zero_grad()
        output = model(src_batch, tgt_batch[:-1])
        loss = criterion(output, tgt_batch[1:])
        loss.backward()
        optimizer.step()

    print(f"Epoch {
      
      epoch+1}/{
      
      epochs}, Loss: {
      
      loss.item()}")

Sagen Sie den Aktienkurs für die nächsten 5 Tage voraus

Abschließend verwenden wir das trainierte Modell, um den Aktienkurs für die nächsten 5 Tage vorherzusagen:

src = torch.tensor(stock_prices[-input_seq_len:]).unsqueeze(-1).unsqueeze(1).float()
tgt = torch.zeros(output_seq_len, 1, 1)

with torch.no_grad():
    for i in range(output_seq_len):
        prediction = model(src, tgt[:i+1])
        tgt[i] = prediction[-1]

output = tgt.squeeze().tolist()
print("Next 5 days of stock prices:", output)

In dieser Vorhersageschleife verwenden wir die autoregressive Decodierungsmethode ( model(src, tgt[:i+1]) ), um die Ausgabesequenz Schritt für Schritt zu generieren, da die Ausgabe bei jedem Schritt von der vorherigen Ausgabe abhängt.

abschließend

In diesem Blogbeitrag haben wir gezeigt, wie man ein PyTorch Transformer-Modell zur Vorhersage von Aktienkursen verwendet. Wir generieren Dummy-Aktienkursdaten, verarbeiten sie vor, erstellen ein benutzerdefiniertes Transformer-Modell, trainieren das Modell und prognostizieren den Aktienkurs für die nächsten 5 Tage. Dieses Beispiel kann als Ausgangspunkt für die Entwicklung eines komplexeren Aktienkursvorhersagemodells mithilfe von Deep-Learning-Techniken verwendet werden.

Code herunterladen

siehe Link unten

AI Gute Buchempfehlung

Die KI verändert sich mit jedem Tag, aber ein Hochhaus kann nicht von einem guten Fundament getrennt werden. Sind Sie daran interessiert, mehr über die Prinzipien und die Praxis der künstlichen Intelligenz zu erfahren? Suchen Sie nicht weiter! Unser Buch über KI-Prinzipien und -Praktiken ist die perfekte Ressource für alle, die einen Einblick in die Welt der KI gewinnen möchten. Dieser umfassende Leitfaden wurde von führenden Experten auf diesem Gebiet verfasst und deckt alles ab, von den Grundlagen des maschinellen Lernens bis hin zu fortgeschrittenen Techniken zum Aufbau intelligenter Systeme. Ganz gleich, ob Sie ein Anfänger oder ein erfahrener KI-Praktiker sind, dieses Buch deckt alles ab, was Sie brauchen. Warum also warten?

Die Prinzipien und Praktiken der künstlichen Intelligenz decken umfassend die Klassiker verschiedener wichtiger Systeme der künstlichen Intelligenz und Datenwissenschaft ab

Peking University Press, Prinzipien und Praxis der künstlichen Intelligenz Künstliche Intelligenz und Datenwissenschaft vom Einstieg bis zur Kompetenz Ausführliche Erläuterung der Prinzipien des Deep-Learning-Algorithmus für maschinelles Lernen

Supongo que te gusta

Origin blog.csdn.net/robot_learner/article/details/130698542
Recomendado
Clasificación