Vytvoření příznaků dne v týdnu
Z datetime příznaků můžeme získat další informace pro naše nelineární modely. Většina finančních dat obsahuje datum a čas, které v sobě skrývají spoustu informací – rok, měsíc, den a někdy i hodinu, minutu nebo sekundu. Navíc z nich lze vyčíst den v týdnu, čtvrtletí roku nebo čas uplynulý od nějaké události (například od zveřejnění výsledků hospodaření).
V tomto cvičení se zaměříme pouze na den v týdnu, protože náš dataset nepokrývá příliš dlouhé časové období. Vlastnost dayofweek z datetime indexu pandas nám den v týdnu snadno poskytne. Poté ho zakódujeme pomocí funkce get_dummies() z pandas. Ta vytvoří pro každý den v týdnu samostatný sloupec s binárními hodnotami (0 nebo 1). První sloupec vypustíme, protože ho lze odvodit z ostatních.
Toto cvičení je součástí kurzu
Machine Learning for Finance in Python
Pokyny k cvičení
- Pomocí vlastnosti
dayofweekindexulng_dfzískej dny v týdnu. - Na proměnnou s dny v týdnu aplikuj funkci
get_dummiess prefixem'weekday'. - Nastav index proměnné
days_of_weektak, aby byl stejný jako indexlng_df– tím umožníš jejich spojení. - Spoj DataFramy
lng_dfadays_of_weekdo jednoho DataFramu pomocí funkceconcat.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# Use pandas' get_dummies function to get dummies for day of the week
days_of_week = pd.get_dummies(lng_df.index.____,
prefix=____,
drop_first=True)
# Set the index as the original dataframe index for merging
days_of_week.index = lng_df.____
# Join the dataframe with the days of week dataframe
lng_df = pd.concat([lng_df, ____], axis=1)
# Add days of week to feature names
feature_names.extend(['weekday_' + str(i) for i in range(1, 5)])
lng_df.dropna(inplace=True) # drop missing values in-place
print(lng_df.head())