Aan de slagBegin gratis

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

Bekijk cursus

Oefeninstructies

  • Gebruik de eigenschap dayofweek van de index van lng_df om de dagen van de week op te halen.
  • Gebruik de functie get_dummies op de variabele met dagen van de week, met de prefix 'weekday'.
  • Stel de index van de variabele days_of_week in op dezelfde index als die van lng_df, zodat we ze kunnen samenvoegen.
  • Concateneer de DataFrames lng_df en days_of_week tot éé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())
Code bewerken en uitvoeren