‫さて､ 皆さん､ 私と同じようにワクワクしているかな？
‫なぜ？
‫まあ､ ホームストレッチにいるからね｡
‫6番まで来ました､ 学習済みモデルの保存と読み込みです｡
‫ここで､ すべてのステップを終えたわけです｡
‫ここまで､ ハイパーパラメータチューニングでモデルを改善する方法を見てきました｡
‫そして､ モデルを改良して､ 同僚と共有したり､ エクスポートして保存し､
‫アプリケーションに組み込んで､ 顧客がそのモデルを使ったり､ 予測にアクセスしたりできるようになったとしましょう｡
‫基本的には､ 学習させたモデルを使いたいのです｡
‫この結果をファイルにエクスポートして､ Jupyter Notebookの中だけでなく､ 他の場所でもインポートして使えるようにします｡
‫では､ 見出し6を作成しましょう｡
‫学習済み機械学習モデルの保存と読み込み
‫美しい｡
‫そして､ その方法は2つあります｡
‫そこで､ チェーン学習モデルの保存と読み込みの方法を2つ紹介します｡
‫最初に取り上げるのは､ PythonのPickleモジュールです｡
‫そして2つ目は､ Job Libモジュールとの組み合わせです｡
‫そこで､ Pickleを使ってどのようなことができるかを確認してみましょう｡
‫そこでまず､ ピクルスの輸入です｡
‫そして､ その後に｡
‫そして､ ピクルスって何だろうと思ったら､ いつものようにPythonピクルスでOKです｡
‫何かわからないことがあれば､ 検索すればいいのです｡
‫そこで､ Pythonのオブジェクトシリアライゼーション｡
‫これを読むと､ pickleモジュールはPythonのオブジェクト構造を直列化・分散化するためのバイナリプロトコルを実装していることが分かりますね｡
‫さて､ Pythonのオブジェクト構造とは何かというと､ この場合､ Pythonのオブジェクトはモデルです｡
‫ですから､ 例えばチーズの分類をしたい場合､ グリッドサーチパラメータモデルに最も満足していると言うわけです｡
‫そこで､ グリッドサーチで学習させたランダムフォレスト分類器です｡
‫これをエクスポートしようと思ったら､ これがPythonのオブジェクトで､ pickleがそれを助けてくれるんです｡
‫では､ そうしましょう｡
‫pythonのオブジェクトである自己をpickleファイルにエクスポートする例を挙げましょう｡
‫だから､ 既存を保存する｡
‫ファイルするモデル｡
‫はい､ お願いします｡
‫そのために､ ピクルスダンプを使うんです｡
‫この場合､ 保存したいオブジェクトを渡します｡
‫CLF 私たちのグリッドで検索された分類器､ そしてここに何か名前をつけることができます｡
‫そこで､ open関数を使う必要があります｡
‫そこで､ ファイルの入出力を扱うためのpythonのopen関数｡
‫今回は､ ランダムフォレストモデル1としています｡
‫さて､ これらの名前は､ あなたが好きなだけ創造することができます｡
‫チーム内で決めた命名法とかがあるかもしれませんね｡
‫それは､ モデルに使っているものですね｡
‫しかし､ 今回の場合はシンプルに､ ドットPklはPickle Fileの略で､
‫ファイルを書くので右バイナリのパラメータWBも渡しますので､ シフトとエンターを押せばOKです｡
‫美しい｡
‫これで救われる｡
‫このファイル名のOwl grid search modelをカレントワーキングディレクトリに配置します｡
‫だから､ ここで上がったら､ ゲッ､ ランダム｡
‫まあ......ランダムが二人いるから......ゲッ......ランダムフォレストか
‫つまり､ これはランダムなランダムフォレスト､ 本当にランダムな1k pklなのです｡
‫そして､ ここに他のモデルファイルがあるのがおわかりいただけると思います｡
‫ドットPCOは､ これは直前に試したもので､ これも最初の頃に作ったもので､ サイキックワークフローを見ていたものです｡
‫そして今､ これらのモデルをかなりの数エクスポートしたのなら､ モデルファイルのように入れておくとよいでしょう｡
‫データをデータファイルで持っているようなものです｡
‫というわけで､ これはディレクトリを整頓する一つの方法ですが､ 先ほど保存したものをここで見てみましょう｡
‫それは数秒前の話です｡
‫さて､ もし戻ってきたら､ どのようにそれを読み込むのでしょうか？
‫まあ､ Pickleでもできるんですけどね｡
‫そこで､ 保存されたモデルをロードします｡
‫そこで､ loaded pickle model equals pickle loadとします｡
‫さて､ ここでの利点は､ モデルをpickleファイルに保存し､ このディレクトリに保存しているため､
‫このモデルを使いたい人は､ 上で行ったトレーニングのステップをすべて行う必要がないことです｡
‫モデルにアクセスするだけで､ それを読み込むことで予測を立てることができるようになるのです｡
‫このファイル名をここにコピーしてもいいのですが､ GEのタブに入力することにします｡
‫ここではタブのオートコンプリートを使用し､ ファイルを読み込むので､ RBというパラメータを渡してバイナリを読み込んでいます｡
‫素晴らしい｡
‫これが保存モデルに読み込まれるわけです｡
‫さて､ それを確認する方法ですが､ いくつかの予測を立てることができます｡
‫ですから､ このモデルが実際に機能するかどうか､ それを保存して予測に使えるかどうかを確認することは､
‫良いことだと思います｡
‫前にselfで予測したのと同じように､ loaded pickle model predictをしたいのですが､
‫ここでは全く同じ行を実行しますが､ selfで予測します｡
‫テストデータセットで予測するピクルスモデル｡
‫素晴らしい｡
‫そして､ フレッドの評価関数を呼び出して､ テストラベルとピクルスyプレッズを比較します｡
‫これは何なんだ？
‫サンプル数が一定でない入力変数が見つかりました｡
‫うーん｡
‫私たちが何をしたかは知っています｡
‫ここでデータの不一致が発生しました｡
‫私たちがやらなければならないこと
‫です｡
‫この行をコメントアウトして再作成すると､ trainとtestのスプリットを再インスタンス化する必要があると思います｡
‫それが､ 私たちのやるべきことです｡
‫だから､ とりあえずこの行をコメントアウトして､ このセルを走らせることにしようかな｡
‫下りてきてください｡
‫私たちはそれを読み込むので､ ここでの間違いは､ 私が思うに､ もしかしたら間違っているかもしれません｡
‫Xのテストは上のどこかでインスタンス化されていたので､ 正しい形状にリセットするために再度インスタンス化しなければなりませんでした｡
‫そして､ これが正しく行われたことを知るには､ 比較すればよいのです｡
‫オリジナルのGPRS clefの予測値を比較すると､ ここにある値をコピーすると､ これがオリジナルのグリッドサーチ分類器の測定値です｡
‫では､ 見てみましょう｡
‫これが､ 私たちのロードしたモデルの指標です｡
‫精度､ 78． 69.
‫同じ精度 0. 74､ 同リコール0. 82同上､ Fワンスコア0｡ 78.
‫だから同じです｡
‫つまり､ インポート､ 保存､ モデル､ そして再インポートを行うのです｡
‫そのため､ 読み込みは正常に行われました｡
‫ここでもう一度､ これらの名前を好きなものに変えてみてください｡
‫読み込んだ変数名と同じです｡
‫しかし､ これはPickleを使って､ あるモデルを素早くファイルに保存し､ 必要であれば後日ロードして､
‫ロードしたモデルと全く同じものを使って予測を行い､ 最初に保存したモデルと全く同じ結果を得ることができる､
‫という簡単な例に過ぎないのです｡
‫次のビデオでは､ 今回はjob libを使用していますが､ 同じことを行う方法を紹介します｡