SALADこの広告は、90日以上更新していないブログに表示しています。機械学習はじめに11月となり、僕の修士研究*1も大詰めになってきました。研究ではPythonの機械学習ライブラリであるscikit-learnを使っているのですが、先日、「(1時間かけて)訓練したモデルをシリアライズしておけば、評価用のプログラムと分割できて、色々と捗るのでは?」と思って調べたところ、かなり簡単にできたのでやり方をまとめました。Wikipediaでは、2つの意味が紹介されていて、今回は後者の方が該当します。ある環境に存在しているオブジェクトをバイト列やXMLフォーマットに変換すること。この意味では直列化という訳語が用いられる。同義語にMarshallingがある。対義語は直列化復元ないしデシリアライズである。今回の文脈で言えば、Pythonプログラムの実行中にメモリ上に存在する変数を、バイト列に変換する(したがって、ローカルに保存できる)って感じでしょうか。ちなみにscikit-learnでは、sklearn.externals.joblibを使うことで、予測モデルを簡単にシリアライズ・復元することができます。documentationの例を一部改変したものを掲載します。一応内容を解説しておくと、おなじみのirisデータセットを読み込んで、サポートベクターマシンで予測モデルを構築し、あやめの品種を予測するというコードです。このコードを実行すると、次のような結果が出力されます。いうファイルが生成されたかと思います。これをjoblib.loadで読み込むことで、予測モデルを復元することができます。予測結果を出力print(clf.predict(iris.data))このコードを実行すると、先程と同じ予測結果が表示されます。これで、無事復元されたことが確認できました。おわりにモデルの訓練に時間がかかるときに便利です。»プロフィールid:YasaichiWeb周りの話や開発環境改善の備忘録がメインのBlogです。FunctionAsObject注目記事はてなブログをはじめよう!Yasaichiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。