Tạo features và targets
Để dùng Machine Learning chọn danh mục tối ưu, chúng ta cần tạo features và targets. Features đã được tạo ở bài trước – trung bình động có trọng số mũ của giá. Targets sẽ là các danh mục tốt nhất mà chúng ta tìm được dựa trên Sharpe ratio cao nhất.
Chúng ta sẽ dùng phương thức .iterrows() của pandas để lấy các cặp index, value cho DataFrame ewma_monthly. Trong vòng lặp, đặt giá trị hiện tại của ewma_monthly làm features. Sau đó dùng chỉ mục của Sharpe ratio tốt nhất (từ max_sharpe_idxs) để lấy portfolio_weights tốt nhất cho từng tháng và đặt chúng làm target.
Bài tập này là một phần của khóa học
Machine Learning cho Tài chính bằng Python
Hướng dẫn bài tập
- Dùng phương thức
.iterrows()vớiewma_monthlyđể lặp quaindex, valuetrong vòng lặp. - Dùng
datetrong vòng lặp vàbest_idxđể đánh chỉ mụcportfolio_weightsnhằm lấy tỷ trọng danh mục lý tưởng dựa trên Sharpe ratio tốt nhất. - Thêm
ewmavào features.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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:])