Hacimden özellik üretimi
Daha doğru tahminler yapmak için doğrusal olmayan modeller kullanacağız. Doğrusal modellerde, özelliklerin hedefle doğrusal olarak ilişkili olması gerekir. Diğer Machine Learning modelleri ise özellikleri doğrusal olmayan şekillerde birleştirebilir. Örneğin, fiyatın hareketli ortalaması yükselirken ve hacmin hareketli ortalaması düşerken fiyat artıyorsa ne olur? Bu etkileşimleri yakalamanın tek yolu, ya özellikleri birbiriyle çarpmak ya da doğrusal olmayanlığı yönetebilen bir Machine Learning algoritması kullanmaktır (ör. random forests).
Diğer özelliklerle etkileşime girebilecek daha fazla bilgiyi katmak için zayıf korelasyonlu özellikler ekleyebiliriz. Önce lng_df içindeki Adj_Volume sütununda bulunan hacim verisini ekleyeceğiz.
Başlamadan önce, TA-Lib fonksiyonları (örneğin SMA()) için pandas nesneleri değil, Numpy dizileri sağlaman gerektiğini unutma. Bir pandas Series veya DataFrame'in .values özniteliğini kullanarak onu bir Numpy dizisi olarak alabilirsin.
Bu egzersiz, kursun bir parçasıdır
Python ile Finans için Machine Learning
Egzersiz talimatları
- Hacimde 1 günlük yüzde değişim oluştur (pandas'tan
pct_change()kullan) velng_dfiçindeAdj_Volume_1d_changesütununa ata. - Hacimdeki 1 günlük yüzde değişimin 5 günlük hareketli ortalamasını oluştur ve
lng_dfiçindeAdj_Volume_1d_change_SMAsütununa ata. new_featureslistesini kullanarak oluşturduğumuz bu iki yeni özelliğin histogramlarını çiz.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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()