Mulai sekarangMulai gratis

Rekayasa fitur dari volume

Kita akan menggunakan model non-linear untuk membuat prediksi yang lebih akurat. Pada model linear, fitur harus berkorelasi secara linear dengan target. Model Machine Learning lainnya dapat menggabungkan fitur secara non-linear. Misalnya, bagaimana jika harga naik ketika moving average harga naik, dan moving average volume turun? Satu-satunya cara untuk menangkap interaksi tersebut adalah dengan mengalikan fitur, atau menggunakan algoritma Machine Learning yang dapat menangani non-linearitas (misalnya random forests).

Untuk memasukkan lebih banyak informasi yang mungkin berinteraksi dengan fitur lain, kita dapat menambahkan fitur yang berkorelasi lemah. Pertama, kita akan menambahkan data volume, yang kita miliki di lng_df sebagai kolom Adj_Volume.

Sebelum Anda mulai, ingat bahwa untuk fungsi TA-Lib (seperti SMA()), Anda perlu memberikan array Numpy, bukan objek pandas. Anda dapat menggunakan atribut .values dari Series atau DataFrame pandas untuk mengembalikannya sebagai array Numpy.

Latihan ini merupakan bagian dari kursus

Machine Learning untuk Keuangan dengan Python

Lihat Kursus

Instruksi latihan

  • Buat persentase perubahan 1 hari pada volume (gunakan pct_change() dari pandas), dan tetapkan ke kolom Adj_Volume_1d_change di lng_df.
  • Buat moving average 5 hari dari persentase perubahan 1 hari pada Volume, dan tetapkan ke kolom Adj_Volume_1d_change_SMA di lng_df.
  • Plot histogram dari dua fitur baru yang kita buat ini menggunakan daftar new_features.

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

# Create 2 new volume features, 1-day % change and 5-day SMA of the % change
new_features = ['Adj_Volume_1d_change', 'Adj_Volume_1d_change_SMA']
feature_names.extend(new_features)
lng_df[____] = lng_df['Adj_Volume'].____
lng_df[____] = talib.SMA(____[____].____,
                        timeperiod=____)

# Plot histogram of volume % change data
lng_df[____].plot(kind='hist', sharex=False, bins=50)
plt.show()
Edit dan Jalankan Kode