Формирование признаков и целевых переменных
Чтобы использовать машинное обучение для выбора оптимального портфеля, нам нужно сформировать признаки и целевые переменные. Признаки уже были созданы в предыдущем упражнении — это экспоненциально взвешенные скользящие средние цен. Целевыми переменными станут лучшие портфели, найденные по наибольшему коэффициенту Шарпа.
Мы воспользуемся методом .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:])