НачатьНачать бесплатно

Формирование признаков и целевых переменных

Чтобы использовать машинное обучение для выбора оптимального портфеля, нам нужно сформировать признаки и целевые переменные. Признаки уже были созданы в предыдущем упражнении — это экспоненциально взвешенные скользящие средние цен. Целевыми переменными станут лучшие портфели, найденные по наибольшему коэффициенту Шарпа.

Мы воспользуемся методом .iterrows() из pandas, чтобы получить пары index, value из DataFrame ewma_monthly. В теле цикла текущее значение ewma_monthly будет служить признаком. Затем мы используем индекс наилучшего коэффициента Шарпа (из max_sharpe_idxs), чтобы извлечь оптимальные portfolio_weights для каждого месяца и задать их в качестве целевой переменной.

Это упражнение является частью курса

Машинное обучение для финансов на Python

Посмотреть курс

Инструкции к упражнению

  • Используйте метод .iterrows() с ewma_monthly, чтобы перебрать пары index, value в цикле.
  • Используйте date из цикла и best_idx, чтобы проиндексировать portfolio_weights и получить оптимальные веса портфеля на основе наилучшего коэффициента Шарпа.
  • Добавьте ewma в список признаков.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

targets, features = [], []

# Create features from price history and targets as ideal portfolio
for date, ewma in ewma_monthly.____:

    # Get the index of the best sharpe ratio
    best_idx = max_sharpe_idxs[date]
    targets.append(portfolio_weights[____][____])
    features.append(____)  # add ewma to features

targets = np.array(targets)
features = np.array(features)
print(targets[-5:])
Редактировать и запускать код