ПочатиПочніть безкоштовно

Створення ознак на основі обсягу

Ми будемо використовувати нелінійні моделі, щоб робити точніші прогнози. У лінійних моделях ознаки мають бути лінійно корельовані з цільовою змінною. Інші алгоритми машинного навчання можуть поєднувати ознаки нелінійно. Наприклад, що як ціна зростає, коли середнє ковзне ціни зростає, а середнє ковзне обсягу зменшується? Єдиний спосіб врахувати такі взаємодії — або перемножити ознаки, або використати алгоритм машинного навчання, що вміє працювати з нелінійністю (наприклад, random forests).

Щоб додати більше інформації, яка може взаємодіяти з іншими ознаками, ми можемо включити слабко корельовані ознаки. Спершу додамо дані про обсяг, які є в lng_df у стовпці Adj_Volume.

Перш ніж почати, пам'ятайте: для функцій TA-Lib (таких як SMA()) потрібно передавати масиви Numpy, а не об'єкти pandas. Ви можете використати атрибут .values у Series або DataFrame бібліотеки pandas, щоб отримати масив Numpy.

Ця вправа є частиною курсу

Machine Learning для фінансів у Python

Переглянути курс

Інструкції до вправи

  • Створіть 1-денну відсоткову зміну обсягу (використайте pct_change() з pandas) і запишіть її в стовпець Adj_Volume_1d_change у lng_df.
  • Створіть 5-денне ковзне середнє 1-денної відсоткової зміни обсягу та запишіть його в стовпець Adj_Volume_1d_change_SMA у lng_df.
  • Побудуйте гістограми цих двох нових ознак за допомогою списку new_features.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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()
Редагувати та запускати код