チャンピオンに挑む
ランダムフォレストを本番環境にデプロイしたものの、もしかすると Naive Bayes 分類器のほうが良いのではと心配になりました。そこで、現在本番で稼働中のまさにそのモデル(混同を避けるためファイルからロードします)をチャンピオンとし、Naive Bayes をチャレンジャーとして比較する champion-challenger テストを実施します。評価指標には F1 スコアを使います。これまでと同様に X_train、X_test、y_train、y_test が利用可能で、GaussianNB()、f1_score()、pickle() も使えます。
この演習はコースの一部です
Python で設計する Machine Learning ワークフロー
演習の手順
- 既存モデルを
pickleを使ってメモリにロードします。 - 学習データに Gaussian Naive Bayes 分類器を学習させます。
- テストデータにおけるチャンピオン、次にチャレンジャーの F1 スコアを出力します。
- 最も良い性能を出したモデルで、現在のモデルをディスク上で上書き保存します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Load the current model from disk
champion = pickle.____(open('model.pkl', ____))
# Fit a Gaussian Naive Bayes to the training data
challenger = ____.____(X_train, y_train)
# Print the F1 test scores of both champion and challenger
print(____(y_test, champion.____(X_test)))
print(____)
# Write back to disk the best-performing model
with open('model.pkl', 'wb') as file:
pickle.____(____, file=file)