Python · LSTM timingu rynku
Kod
import torch, torch.nn as nn import numpy as np class MarktTimingLSTM(nn.Module): """ Wejście: 16 tygodni historii × cechy dla dzielnicy×typu Wyjście: prognoza 8 tygodni (indeks popytu + gęstość podaży) Cechy tygodniowe: - wolumen zapytań (dane portali) - aktywne oferty (strona podażowa) - średnia cena/m² (poziom cen) - sprzedane nieruchomości (transakcje) - stopa procentowa (EBC/kredyty) - sezonowość (efekty kalendarzowe) - indeks Google Trends ("kupno mieszkania" + miasto) """ 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 tygodni × 2 targety ) def forward(self, x): out, _ = self.lstm(x) return self.head(out[:, -1]).view(-1, 8, 2) # Trenowany na 156 tygodniach (3 lata) × 10 dzielnic × 4 typy # MAPE prognozy popytu: 11,4% (horyzont 8 tygodni) # MAPE prognozy podaży: 8,2% print("Wskaźnik timingu = popyt↑ + podaż↓ + bonus sezonowy") print("Wynik >70: publikuj natychmiast") print("Wynik 40-70: publikuj, ale sprawdź cenę") print("Wynik <40: warto poczekać 2-4 tygodnie")