Buat fitur hari-dalam-pekan
Kita dapat merekayasa fitur datetime untuk menambahkan lebih banyak informasi bagi model non-linear kita. Sebagian besar data keuangan memiliki datetime, yang menyimpan banyak informasi — tahun, bulan, hari, dan kadang jam, menit, serta detik. Kita juga bisa memperoleh hari dalam pekan, kuartal tahun, atau waktu yang telah berlalu sejak suatu peristiwa (misalnya laporan laba/rugi).
Di sini kita hanya akan mengambil hari dalam pekan karena himpunan data kita tidak terlalu panjang rentang waktunya. Properti dayofweek dari indeks datetime pandas akan membantu kita mendapatkan hari dalam pekan. Lalu kita akan membuat dummy untuk dayofweek dengan fungsi get_dummies() dari pandas. Ini akan membuat kolom untuk setiap hari dalam pekan dengan nilai biner (0 atau 1). Kita menghapus kolom pertama karena nilainya dapat diinferensikan dari kolom lainnya.
Latihan ini merupakan bagian dari kursus
Machine Learning untuk Keuangan dengan Python
Instruksi latihan
- Gunakan properti
dayofweekdari indekslng_dfuntuk mendapatkan hari-hari dalam pekan. - Gunakan fungsi
get_dummiespada variabel hari dalam pekan, dengan prefiks'weekday'. - Atur indeks variabel
days_of_weekagar sama dengan indekslng_dfsehingga kita bisa menggabungkannya. - Konkatenasikan DataFrame
lng_dfdandays_of_weekmenjadi satu DataFrame.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# 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())