Tworzenie cech i wartości docelowych
Aby używać uczenia maszynowego do wyboru najlepszego portfela, musimy wygenerować cechy i wartości docelowe. Cechy zostały właśnie utworzone w poprzednim ćwiczeniu – są to wykładniczo ważone średnie kroczące cen. Wartościami docelowymi będą najlepsze portfele znalezione na podstawie najwyższego współczynnika Sharpe'a.
Skorzystamy z metody .iterrows() biblioteki pandas, aby uzyskać pary index, value dla DataFrame ewma_monthly. W pętli ustawimy bieżącą wartość ewma_monthly jako nasze cechy. Następnie użyjemy indeksu najlepszego współczynnika Sharpe'a (z max_sharpe_idxs), aby pobrać optymalne portfolio_weights dla każdego miesiąca i ustawić je jako wartość docelową.
To ćwiczenie jest częścią kursu
Uczenie maszynowe w finansach z Pythonem
Instrukcje do ćwiczenia
- Użyj metody
.iterrows()naewma_monthly, aby iterować po parachindex, valuew pętli. - Użyj
datez pętli orazbest_idx, aby zaindeksowaćportfolio_weightsi uzyskać optymalne wagi portfela na podstawie najwyższego współczynnika Sharpe'a. - Dołącz
ewmado cech.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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:])