1. Učit se
  2. /
  3. Kurzy
  4. /
  5. Feature Engineering with PySpark

Connected

cvičení

Úprava časových příznaků

V průběhu tohoto kurzu jsme několikrát zmiňovali rizika spojená s únikem informací do modelu během trénování. Data leakage způsobuje, že model vykazuje příliš optimistické metriky přesnosti – jakmile ho ale spustíš na reálných datech, výsledky bývají zklamáním.

V tomto cvičení zajistíme, aby sloupec DAYSONMARKET odrážel pouze informace, které máme k dispozici v okamžiku predikce hodnoty. Jinými slovy: pokud je dům stále v nabídce, nevíme, kolik dalších dní tam zůstane. Musíme proto upravit test_df tak, aby odpovídal informacím, které máme k dispozici ke dni 2017-12-10.

POZNÁMKA: V tomto příkladu použijeme funkci lit(). Tato funkce slouží k předání jedné hodnoty tam, kde se v rámci volání funkce očekává celý sloupec.

Pokyny

100 XP
  • Naimportuj z pyspark.sql.functions následující funkce, které použiješ v dalším kroku: datediff(), to_date(), lit().
  • Převeď řetězec s datem '2017-12-10' na pyspark datum: nejprve na něj zavolej funkci lit() a výsledek předej funkci to_date().
  • Vytvoř test_df tak, že pomocí where() vyfiltrujete záznamy, kde je OFFMKTDATE větší nebo rovno split_date a LISTDATE menší nebo rovno split_date.
  • Přepiš sloupec DAYSONMARKET výpočtem nového sloupce se stejným názvem – jeho hodnota by měla odpovídat rozdílu mezi split_date a LISTDATE. K výpočtu použij funkci datediff(). Nový i původní sloupec si prohlédni pomocí připraveného kódu.