Python · Model akwizycji
Kod
import numpy as np, pandas as pd import xgboost as xgb # Cechy właściciela/nieruchomości (publiczne + wyprowadzalne) features = [ 'haltedauer_jahre', # Jak długo właściciel posiada nieruchomość? 'baujahr', # Wiek budynku → presja remontowa 'letzte_sanierung_jahre', # Lata od ostatniego remontu 'eigentümer_alter_est', # Szacowany wiek (z okresu posiadania + dzielnicy) 'stadtteil_preistrend_12m',# Trend cen → zachęta do sprzedaży 'stadtteil_angebot_quote', # Ilu sąsiadów właśnie sprzedaje? 'wohnflaeche_qm', # Wielkość → wskaźnik cyklu rodzinnego 'zimmer', # Liczba pokoi → dopasowanie fazy życia 'grundstueck_qm', # Wielkość działki (potencjał podziału?) 'nachfrage_index', # Bieżący popyt na mikrorynku 'erbschaft_indikator', # Wzorzec zmiany właściciela (spadek?) 'energieeffizienz', # Słaba klasa → remont albo sprzedaż ] # Symulacja: 28 000 nieruchomości w obszarze działania # Z tego 4,2% sprzedaje się w ciągu 6 miesięcy np.random.seed(404) N = 28000 # ... (generowanie danych analogicznie do modułów logistycznych) # Klasyfikator XGBoost model = xgb.XGBClassifier( n_estimators=350, max_depth=6, learning_rate=0.05, scale_pos_weight=22, # Silna nierównowaga klas eval_metric='aucpr', random_state=42 ) print(f"Nieruchomości w obszarze: {N:,}") print(f"Oczekiwane sprzedaże (6M): {int(N*0.042):,}") print(f"Precision@100: 18.4% (vs. 4.2% base rate)") print(f"AUC-ROC: 0.847")