始める無料で始める

ウィンドウサイズのチューニング

不整脈データセットの最適なウィンドウサイズが 50 であることを自分でも確かめたいとします。データセットは pandas のデータフレーム arrh として与えられており、時刻 t_now までのデータのサブセットを使います。テストデータは X_test, y_test として利用できます。ウィンドウサイズを 10 から 100 までいくつか試し、それぞれのウィンドウでナイーブベイズ分類器を学習し、テストデータでの F1 スコアを評価して、最も良いウィンドウサイズを選びます。numpynp として利用でき、関数 f1_score() はすでにインポート済みです。最後に、ウィンドウごとの精度を保存するため、空のリスト accuracies が初期化されています。

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

Python で設計する Machine Learning ワークフロー

コースを見る

演習の手順

  • .loc() メソッドを使って、t_now で終わるサイズ w_size のスライディングウィンドウのインデックスを定義します。
  • スライディングウィンドウから class 列を削除して X を作成し、その class 列を y として保存します。
  • ナイーブベイズ分類器を Xy に当てはめ、テストデータ X_test のラベルを予測します。
  • 各ウィンドウサイズに対してこれらの予測の F1 スコアを計算し、最も性能の良いウィンドウサイズを見つけます。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Loop over window sizes
for w_size in wrange:

    # Define sliding window
    sliding = arrh.____[____:t_now]

    # Extract X and y from the sliding window
    X, y = sliding.____('class', ____), sliding[____]
    
    # Fit the classifier and store the F1 score
    preds = GaussianNB().fit(____, ____).____(X_test)
    accuracies.append(____(____, ____))

# Estimate the best performing window size
optimal_window = ____[np.____(accuracies)]
コードを編集して実行