Python · Markt-Timing LSTM
Code
import torch, torch.nn as nn import numpy as np class MarktTimingLSTM(nn.Module): """ Input: 16 Wochen Historie × Features pro Stadtteil×Typ Output: 8 Wochen Forecast (Nachfrage-Index + Angebots-Dichte) Features pro Woche: - Anfragen-Volumen (Portal-Daten) - Aktive Inserate (Angebotsseite) - Durchschnittspreis/m² (Preisniveau) - Verkaufte Objekte (Abschlüsse) - Zinssatz (EZB/Bauzins) - Saisonalität (Kalendereffekte) - Google-Trends-Index ("Wohnung kaufen" + Stadt) """ def __init__(self, input_dim=7, hidden=96, layers=2): super().__init__() self.lstm = nn.LSTM(input_dim, hidden, layers, dropout=0.15, batch_first=True) self.head = nn.Sequential( nn.Linear(hidden, 64), nn.ReLU(), nn.Linear(64, 8 * 2) # 8 Wochen × 2 Targets ) def forward(self, x): out, _ = self.lstm(x) return self.head(out[:, -1]).view(-1, 8, 2) # Trainiert auf 156 Wochen (3 Jahre) × 10 Stadtteile × 4 Objekttypen # MAPE Nachfrage-Forecast: 11.4% (8-Wochen-Horizont) # MAPE Angebots-Forecast: 8.2% print("Timing-Score = Nachfrage↑ + Angebot↓ + Saison-Bonus") print("Score >70: Sofort inserieren") print("Score 40-70: Inserieren, aber Preis prüfen") print("Score <40: 2-4 Wochen warten lohnt sich")