Creează caracteristici pentru ziua săptămânii
Putem construi caracteristici datetime pentru a adăuga și mai multe informații modelelor noastre neliniare. Majoritatea datelor financiare conțin informații de tip datetime, care includ multe detalii: an, lună, zi și, uneori, oră, minut și secundă. Putem extrage și ziua săptămânii, trimestrul anului sau timpul scurs de la un anumit eveniment (de exemplu, rapoartele de profit).
În acest exercițiu vom extrage doar ziua săptămânii, deoarece setul nostru de date nu acoperă o perioadă foarte lungă. Proprietatea dayofweek din indexul datetime al pandas ne ajută să obținem ziua săptămânii. Apoi vom aplica get_dummies() din pandas pe dayofweek. Aceasta creează câte o coloană pentru fiecare zi a săptămânii, cu valori binare (0 sau 1). Eliminăm prima coloană, deoarece poate fi dedusă din celelalte.
Acest exercițiu face parte din cursul
Machine Learning pentru finanțe în Python
Instrucțiuni pentru exercițiu
- Folosește proprietatea
dayofweekdin indexullng_dfpentru a obține zilele săptămânii. - Aplică funcția
get_dummiespe variabila care conține zilele săptămânii, folosind prefixul'weekday'. - Setează indexul variabilei
days_of_weeksă fie același cu indexullng_df, pentru a putea îmbina cele două DataFrame-uri. - Concatenează DataFrame-urile
lng_dfșidays_of_weekîntr-un singur DataFrame.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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())