Mulai sekarangMulai gratis

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

Lihat Kursus

Instruksi latihan

  • Gunakan properti dayofweek dari indeks lng_df untuk mendapatkan hari-hari dalam pekan.
  • Gunakan fungsi get_dummies pada variabel hari dalam pekan, dengan prefiks 'weekday'.
  • Atur indeks variabel days_of_week agar sama dengan indeks lng_df sehingga kita bisa menggabungkannya.
  • Konkatenasikan DataFrame lng_df dan days_of_week menjadi 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())
Edit dan Jalankan Kode