Maak dag-van-de-week-features
We kunnen datetime-features engineeren om nog meer informatie toe te voegen aan onze niet-lineaire modellen. De meeste financiële data heeft datums en tijden, die veel informatie bevatten—jaar, maand, dag en soms uur, minuut en seconde. Maar we kunnen ook de dag van de week ophalen, en zaken als het kwartaal van het jaar, of de verstreken tijd sinds een gebeurtenis (bijv. winstcijfers).
Hier halen we alleen de dag van de week op, omdat onze gegevensset niet ver teruggaat in de tijd. De eigenschap dayofweek van de pandas datetime-index helpt ons de dag van de week te krijgen. Daarna maken we dummyvariabelen van dayofweek met pandas' get_dummies(). Dit maakt kolommen voor elke dag van de week met binaire waarden (0 of 1). We laten de eerste kolom weg omdat die uit de andere kan worden afgeleid.
Deze oefening maakt deel uit van de cursus
Machine Learning voor finance in Python
Oefeninstructies
- Gebruik de eigenschap
dayofweekvan de index vanlng_dfom de dagen van de week op te halen. - Gebruik de functie
get_dummiesop de variabele met dagen van de week, met de prefix'weekday'. - Stel de index van de variabele
days_of_weekin op dezelfde index als die vanlng_df, zodat we ze kunnen samenvoegen. - Concateneer de DataFrames
lng_dfendays_of_weektot één DataFrame.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
# 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())