Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

[第11回]データ分析ランチセッション - モダンな機械学習データパイプラインKedroを触ってみる

560 views

Published on

会社の昼休みに緩めの情報共有会を開催した際の資料です。

Published in: Science
  • Be the first to comment

  • Be the first to like this

[第11回]データ分析ランチセッション - モダンな機械学習データパイプラインKedroを触ってみる

  1. 1. Leverages Marketing Department データ分析ランチセッション#11 モダンな機械学習データパイプライン Kedroを触ってみる 2020/03/25 渋谷スクランブルスクエア25F レバレジーズ株式会社 データ戦略室室長 阪上晃幸 1
  2. 2. Leverages Marketing Department ● データ戦略室で隔週で行っている、書籍をベースにした勉強会の補講の位置付け。情報 の鮮度を意識した勉強会。 ● 扱うトピックは発表者が任意で決める。 ● 発表者以外は弁当を持参する。発表者は発表後に食事する。 ● 発表時間は10~15分。質疑応答が10~15分。 ランチセッションとは 2
  3. 3. Leverages Marketing Department 今回はKedroを紹介しますよ! 3
  4. 4. Leverages Marketing Department これは違う 4
  5. 5. Leverages Marketing Department ● 2019年から開発が進められている、オープンソースのデータパイプライン管理ツール (Python用) ○ AnacondaでPython3.7の環境下で実行できた。 ● データパイプラインの中心(とGitHubに書かれている。) ○ 本番用のコードを書く際に心配が少ない。(テスト、柔軟なデプロイ) ○ ロバストで、スケーラブルで、再現可能性があって、バージョン管理されたデータパイプラインを 作れる。 ○ プロジェクト全体でチームが共同作業する方法を標準化する。 Kedroとは 5
  6. 6. Leverages Marketing Department ● プロジェクトのテンプレート:ベストプラクティスの提供 ● データカタログ:様々なデータ形式に対応(ローカルからクラウドまで) ● パイプラインの抽出:グラフで表現できる(kedro-viz) ● 再現性:パイプラインを再現できる ● コーディング規約:pytestを使ったテストができる ● フレキシブルなデプロイ:kedro-docerやkedro-Airflowなど、既存の環境やワークフ ローへの導入も行いやすいらしい Kedroの特徵 6
  7. 7. Leverages Marketing Department kedro-viz(別ライブラリ) 7
  8. 8. Leverages Marketing Department ● pip install kedro でインストール ● kedro info でインストールされているか確認 Kedroを触ってみる〜インストールについて 8
  9. 9. Leverages Marketing Department Kedroを触ってみる〜Hello World exampleについて 9 今回のHello World exampleではフィッシャーが集めた、アヤメのデータセットである irisを用いた機械学習の データパイプラインを試しています。 ディレクトリは以下のようになっており、ベストプラクティスとされているようです。
  10. 10. Leverages Marketing Department 今回の機械学習のデータパイプラインでは、 ・訓練データとテストデータの分割 ・モデルの訓練 ・モデルを用いた予測 ・評価指標のレポーティング が扱われています。 Kedroを触ってみる〜Hello World example 10
  11. 11. Leverages Marketing Department プロジェクトの新規作成 11
  12. 12. Leverages Marketing Department ディレクトリの中身 12
  13. 13. Leverages Marketing Department ディレクトリの中身 13
  14. 14. Leverages Marketing Department ディレクトリの中身 14
  15. 15. Leverages Marketing Department data_engineering/nodes.pyの中身 15 irisのデータを訓練データとテ ストデータに分けて、 dict型で 返す
  16. 16. Leverages Marketing Department data_engineering/pipeline.pyの中身 16 さきほど定義し た関数 parameters.ymlで指定 された割合 catalog.ymlでパスが指 定されたデータセット
  17. 17. Leverages Marketing Department ディレクトリの中身 17
  18. 18. Leverages Marketing Department catalog.ymlの中身 18 データの名前、データの型、 ファイルのパスを指定している
  19. 19. Leverages Marketing Department parameters.ymlの中身 19 テストデータの割合、訓練回 数、学習率が記されている
  20. 20. Leverages Marketing Department ディレクトリの中身 20
  21. 21. Leverages Marketing Department data/01_raw/iris.csvの中身 21 見紛う事なきirisのデータ
  22. 22. Leverages Marketing Department ディレクトリの中身 22
  23. 23. Leverages Marketing Department data_science/nodes.pyの中身 23 多クラスのロジ スティック回帰モ デルの推定 推定したモデ ルでの予測 正解率のレ ポーティング
  24. 24. Leverages Marketing Department data_science/pipeline.pyの中身 24 さきほど定義し た関数 data_engineering/ pipeline.py で生成したデータ parameters.ymlで指定 された学習率 名付けたモデル名 data_engineering/ pipeline.py で生成したデータ 名付けた変数名 さきほど定義した関数
  25. 25. Leverages Marketing Department ディレクトリの中身 25
  26. 26. Leverages Marketing Department pipeline.pyの中身 26 前処理と推論の関数を呼び出 してパイプラインを作る
  27. 27. Leverages Marketing Department ディレクトリの中身 27
  28. 28. Leverages Marketing Department run.pyの中身 28 パイプラインを呼び出して、プ ロジェクトを実行する
  29. 29. Leverages Marketing Department ディレクトリの中身 29
  30. 30. Leverages Marketing Department tests/test_run.pyの中身 30 pytestモジュールを使った プログラムのテストを実行 できる
  31. 31. 31 コードたちは大体わかったので、実際に機械学 習のパイプラインを実行してみる
  32. 32. Leverages Marketing Department kedro runの実行結果 32 データの読み込み パラメータの読込 前処理部分の実行 前処理で吐かれた データたち パラメータの読込 推論部分(訓練)の実行 推論部分(予測)の実行 推論部分(評価)の実行
  33. 33. Leverages Marketing Department kedro-vizの実行(kedro vizで立ち上がる) 33 kedro-vizは別のライブラリなので、 pip install kedro-vizでインストールしておく。
  34. 34. Leverages Marketing Department kedro-vizはブラウザで表示される 34
  35. 35. Leverages Marketing Department ディレクトリの中身 35
  36. 36. Leverages Marketing Department logs/journalsの中身 36 実行日時からなるid 実行したプロジェクトのパス ログの設定はlogging.ymlでい じれる
  37. 37. Leverages Marketing Department ● Kedroは機械学習データパイプラインのベストプラクティスとされるものを提供してくれて いる。 ● logが吐かれるので、再現性の担保ができる。 ● kedro-vizでデータパイプラインの可視化もできる。 ● 今回のチュートリアルはシンプルだったので、より複雑な前処理、複雑なモデリングの ケースで運用しやすいのかどうかを試していきたい。 さいごに 37
  38. 38. Leverages Marketing Department [1] quantumblacklabs / kedro [2] Kedro を用いた分析コンペ向けのデータパイプライン構築 [3] A “Hello World” example [4] Kedro — Hello World Example [5] pipelineライブラリKedroを使ってみた話 [6] quantumblacklabs / kedro-viz 参考情報 38
  39. 39. Leverages Marketing Department ご静聴ありがとうございました! 39

×