始める無料で始める

特徴量とターゲットの作成

機械学習を使って最適なポートフォリオを選ぶには、特徴量とターゲットを用意する必要があります。特徴量は前の演習で作成済みです。価格の指数加重移動平均(EWMA)がそれにあたります。ターゲットには、シャープレシオが最も高かったポートフォリオを使用します。

pandas の .iterrows() メソッドを使って、ewma_monthly データフレームの indexvalue のペアを取得します。ループ内では、ewma_monthly の現在の値を特徴量として設定します。次に、max_sharpe_idxs から得られるシャープレシオ最大のインデックスを使い、各月の最適な portfolio_weights を取得してターゲットとして設定します。

この演習はコースの一部です

Python による金融のための Machine Learning

コースを見る

演習の手順

  • .iterrows() メソッドを ewma_monthly に対して使用し、ループ内で indexvalue を取得します。
  • ループ内の datebest_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:])
コードを編集して実行