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

More Related Content

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

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

[第1回]データ分析ランチセッション ~ Qiita Advent Calendar2019から得た情報10選
[第1回]データ分析ランチセッション ~ Qiita Advent Calendar2019から得た情報10選[第1回]データ分析ランチセッション ~ Qiita Advent Calendar2019から得た情報10選
[第1回]データ分析ランチセッション ~ Qiita Advent Calendar2019から得た情報10選
 
カスタマーサクセスのためのデータ整備人の活動記録
カスタマーサクセスのためのデータ整備人の活動記録カスタマーサクセスのためのデータ整備人の活動記録
カスタマーサクセスのためのデータ整備人の活動記録
 
LiBRA 05.2021 / 開発と運用
LiBRA 05.2021 / 開発と運用LiBRA 05.2021 / 開発と運用
LiBRA 05.2021 / 開発と運用
 
LiBRA 04.2021 / DevOps
LiBRA 04.2021 / DevOpsLiBRA 04.2021 / DevOps
LiBRA 04.2021 / DevOps
 
LiBRA 03.2021 / DevOps
LiBRA 03.2021 / DevOpsLiBRA 03.2021 / DevOps
LiBRA 03.2021 / DevOps
 
データマイニングCROSS 第2部-機械学習・大規模分散処理
データマイニングCROSS 第2部-機械学習・大規模分散処理データマイニングCROSS 第2部-機械学習・大規模分散処理
データマイニングCROSS 第2部-機械学習・大規模分散処理
 
LiBRA 06.2021 / 開発と運用
LiBRA 06.2021 / 開発と運用LiBRA 06.2021 / 開発と運用
LiBRA 06.2021 / 開発と運用
 
LiBRA_210201/DevOps
LiBRA_210201/DevOpsLiBRA_210201/DevOps
LiBRA_210201/DevOps
 
LiBRA 10.2021 / 開発と運用
LiBRA 10.2021 / 開発と運用LiBRA 10.2021 / 開発と運用
LiBRA 10.2021 / 開発と運用
 
211101_DevOps
211101_DevOps211101_DevOps
211101_DevOps
 
LiBRA 07.2021 / 開発と運用
LiBRA 07.2021 / 開発と運用LiBRA 07.2021 / 開発と運用
LiBRA 07.2021 / 開発と運用
 
Microsoft Ignite 2021 前夜祭 – 注目のIgniteセッション
Microsoft Ignite 2021 前夜祭 – 注目のIgniteセッションMicrosoft Ignite 2021 前夜祭 – 注目のIgniteセッション
Microsoft Ignite 2021 前夜祭 – 注目のIgniteセッション
 
LiBRA 09.2021 / 開発と運用
LiBRA 09.2021 / 開発と運用LiBRA 09.2021 / 開発と運用
LiBRA 09.2021 / 開発と運用
 
LiBRA 08.2021 / 開発と運用
LiBRA 08.2021 / 開発と運用LiBRA 08.2021 / 開発と運用
LiBRA 08.2021 / 開発と運用
 
LiBRA 11.2020 / 開発と運用
LiBRA 11.2020 / 開発と運用LiBRA 11.2020 / 開発と運用
LiBRA 11.2020 / 開発と運用
 
Base 20141011 1_for_slideshre
Base 20141011 1_for_slideshreBase 20141011 1_for_slideshre
Base 20141011 1_for_slideshre
 
LiBRA 12.2020 / 開発と運用
LiBRA 12.2020 / 開発と運用LiBRA 12.2020 / 開発と運用
LiBRA 12.2020 / 開発と運用
 
オープンソースカンファレンスBi勉強会20141018
オープンソースカンファレンスBi勉強会20141018オープンソースカンファレンスBi勉強会20141018
オープンソースカンファレンスBi勉強会20141018
 
[Gree] DataEngConf NYC’18 セッションサマリー #1
[Gree] DataEngConf NYC’18 セッションサマリー #1[Gree] DataEngConf NYC’18 セッションサマリー #1
[Gree] DataEngConf NYC’18 セッションサマリー #1
 
DataEngConf NYC’18 セッションサマリー #1
DataEngConf NYC’18 セッションサマリー #1DataEngConf NYC’18 セッションサマリー #1
DataEngConf NYC’18 セッションサマリー #1
 

More from Teruyuki Sakaue

More from Teruyuki Sakaue (8)

実務と論文で学ぶジョブレコメンデーション最前線2022
実務と論文で学ぶジョブレコメンデーション最前線2022実務と論文で学ぶジョブレコメンデーション最前線2022
実務と論文で学ぶジョブレコメンデーション最前線2022
 
警察庁オープンデータで交通事故の世界にDeepDive!
警察庁オープンデータで交通事故の世界にDeepDive!警察庁オープンデータで交通事故の世界にDeepDive!
警察庁オープンデータで交通事故の世界にDeepDive!
 
[丸ノ内アナリティクスバンビーノ#23]データドリブン施策によるサービス品質向上の取り組み
[丸ノ内アナリティクスバンビーノ#23]データドリブン施策によるサービス品質向上の取り組み[丸ノ内アナリティクスバンビーノ#23]データドリブン施策によるサービス品質向上の取り組み
[丸ノ内アナリティクスバンビーノ#23]データドリブン施策によるサービス品質向上の取り組み
 
[DSO] Machine Learning Seminar Vol.8 Chapter 9
[DSO] Machine Learning Seminar Vol.8 Chapter 9[DSO] Machine Learning Seminar Vol.8 Chapter 9
[DSO] Machine Learning Seminar Vol.8 Chapter 9
 
データ分析ランチセッション#24 OSSのAutoML~TPOTについて
データ分析ランチセッション#24 OSSのAutoML~TPOTについてデータ分析ランチセッション#24 OSSのAutoML~TPOTについて
データ分析ランチセッション#24 OSSのAutoML~TPOTについて
 
[DSO] Machine Learning Seminar Vol.2 Chapter 3
[DSO] Machine Learning Seminar Vol.2 Chapter 3[DSO] Machine Learning Seminar Vol.2 Chapter 3
[DSO] Machine Learning Seminar Vol.2 Chapter 3
 
[DSO] Machine Learning Seminar Vol.1 Chapter 1 and 2
[DSO] Machine Learning Seminar Vol.1 Chapter 1 and 2[DSO] Machine Learning Seminar Vol.1 Chapter 1 and 2
[DSO] Machine Learning Seminar Vol.1 Chapter 1 and 2
 
地理データを集め、可視化し分析することが簡単にできるプログラミング言語について @ BIT VALLEY -INSIDE- Vol.16
地理データを集め、可視化し分析することが簡単にできるプログラミング言語について @ BIT VALLEY -INSIDE- Vol.16地理データを集め、可視化し分析することが簡単にできるプログラミング言語について @ BIT VALLEY -INSIDE- Vol.16
地理データを集め、可視化し分析することが簡単にできるプログラミング言語について @ BIT VALLEY -INSIDE- Vol.16
 

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