Wochentags-Features erstellen
Wir können Datetime-Features entwickeln, um unseren nichtlinearen Modellen noch mehr Informationen zu geben. Die meisten Finanzdaten enthalten Datumsangaben, in denen viele Informationen stecken – Jahr, Monat, Tag und manchmal Stunde, Minute und Sekunde. Außerdem können wir den Wochentag, das Quartal des Jahres oder die seit einem Ereignis vergangene Zeit (z. B. seit Earnings-Reports) ableiten.
Hier holen wir uns nur den Wochentag, da unser Datensatz nicht sehr weit in die Vergangenheit reicht. Die Eigenschaft dayofweek aus dem pandas-Datetime-Index hilft uns dabei. Anschließend erstellen wir mit pandas get_dummies() Dummy-Variablen für dayofweek. Dadurch entstehen Spalten für jeden Wochentag mit binären Werten (0 oder 1). Wir lassen die erste Spalte weg, da sie sich aus den anderen ableiten lässt.
Diese Übung ist Teil des Kurses
<Kurs>Maschinelles Lernen für Finanzen in Python</Kurs>Übungsanweisungen
- Verwende die Eigenschaft
dayofweekaus dem Index vonlng_df, um die Wochentage zu erhalten. - Wende die Funktion
get_dummiesauf die Variable der Wochentage an und gib ihr das Präfix'weekday'. - Setze den Index der Variable
days_of_weekauf denselben Index wielng_df, damit wir beide zusammenführen können. - Konkatenieren die DataFrames
lng_dfunddays_of_weekzu einem einzigen DataFrame.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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())