23章訓練済みモデルのセーブとロード

レシピ23.0 はじめに

 これまでの 22章にわたり、およそ 200のレシピで生データから機械学習を用いて性能の良いモデルを生成する方法を紹介してきた。しかし、これまで学んだことを役に立てるには、モデルを使って何かをしなければならない。それには、既存のソフトウェアアプリケーションに組み込む必要がある。これを実現するためには、訓練した後のモデルをセーブしておき、必要に応じてアプリケーションからロードできるようにし、このアプリケーションにリクエストして予測を行うことができるようにしなければならない。

 MLモデルを簡単なWebサーバにデプロイし、入力値に対して予測値を返すようにする場合が多い。こうすれば同じネットワーク上のクライアントからモデルを利用することができる。他のサービス(UI、ユーザなど)が、どこからでもリアルタイムにMLモデルを用いて予測を行うことができる。ECサイトでのアイテム検索にMLを用いる場合もこれに当たる。MLモデルは、ユーザとアイテムのリストを入力とし、個々のアイテムを購入する確からしさを返す。検索結果はリアルタイムでなければならないし、ユーザの検索を受け取りユーザに返す結果を調整するECアプリケーションから利用できなければならない。

レシピ23.1 scikit-learnモデルのセーブとロード

問題

scikit-learnの訓練済みモデルをセーブしておき、別の場所でロードしたい。

解決策

 pickleファイルとしてモデルをセーブする。

# ライブラリをロード import joblib from sklearn.ensemble import RandomForestClassifier from sklearn ...

Get Python機械学習クックブック 第2版 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.