Začněte nyníZačněte zdarma

Tvorba příznaků z objemu obchodů

Budeme používat nelineární modely pro přesnější predikce. U lineárních modelů musí být příznaky lineárně korelované s cílovou proměnnou. Jiné modely strojového učení dokážou příznaky kombinovat nelineárně. Co kdybychom například zjistili, že cena roste tehdy, když klouzavý průměr ceny roste a klouzavý průměr objemu obchodů klesá? Jediný způsob, jak zachytit takovéto interakce, je buď příznaky vzájemně vynásobit, nebo použít algoritmus strojového učení, který s nelinearitou umí pracovat (např. random forests).

Abychom zahrnuli více informací, které mohou s ostatními příznaky interagovat, přidáme i slabě korelované příznaky. Začneme daty o objemu obchodů, která máme v lng_df ve sloupci Adj_Volume.

Než začneš, pamatuj, že funkce TA-Lib (například SMA()) vyžadují Numpy pole, ne pandas objekty. Pomocí atributu .values pandas Series nebo DataFrame je snadno převedeš na Numpy pole.

Toto cvičení je součástí kurzu

Machine Learning for Finance in Python

Zobrazit kurz

Pokyny k cvičení

  • Vypočítej jednodenní procentuální změnu objemu obchodů (použij pct_change() z pandas) a výsledek ulož do sloupce Adj_Volume_1d_change v lng_df.
  • Vypočítej 5denní klouzavý průměr jednodenní procentuální změny objemu obchodů a výsledek ulož do sloupce Adj_Volume_1d_change_SMA v lng_df.
  • Vykresli histogramy těchto dvou nových příznaků pomocí seznamu new_features.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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()
Upravit a spustit kód