Slide 1

Slide 1 text

AutoML パッケージの開発を円滑に進めたい データと ML 周辺エンジニアリングを考える会 #2 Jul 19, 2019

Slide 2

Slide 2 text

Yu Ohori (a.k.a. Kon) NS Solutions Corporation (Apr 2017 - ) ● Researcher ● Data Science & Infrastructure Technologies ● System Research & Development Center ● Technology Bureau @Y_oHr_N @Y-oHr-N #SemiSupervisedLearning #AnomalyDetection #DataOps

Slide 3

Slide 3 text

約 3 ヶ月,同僚 3 名と以下の大会に参加した April 1, 2019 - July 20, 2019 3 任意のデータセットに対 する予測精度を競う大会 https://www.4paradigm.com/competition/kddcup2019

Slide 4

Slide 4 text

何故参加したか? AutoML 周辺技術の調査 開発力強化 案件利用 4

Slide 5

Slide 5 text

本大会の内容は? 入力 ● 5 つの表形式データセット ● スキーマ,関係等が記載されたファイル(右図) 提出物 ● 学習,予測を行うコード 制約 ● 計算資源:4 vCPUs (16 GB Memory) ● 計算時間:数十分程度 評価指標 ● AUROC 5

Slide 6

Slide 6 text

本大会の課題は? 時系列データの扱い ● data leak を予防する方法は? ● concept drift に対応する方法は? 複数表の扱い ● 一対多,多対多で結ばれる表を結合する方法は? 4 つの型の扱い ● cat 型を num 型に変換する方法は? ● multi-cat 型を num 型に変換する方法は? ● time 型を num 型に変換する方法は? 6

Slide 7

Slide 7 text

Concept drift とは? データを生成する確率分布が時間経過で変化する現象 ● cat 型の場合,新規カテゴリの出現が相当 7 Gama, J., et al., "A survey on concept drift adaptation," ACM CSUR, 46(4), p. 44, 2014.

Slide 8

Slide 8 text

結果は? 計算時間超過で失格… 通過チームは 31/161 パッケージの内容は 懇親会でお話します 8

Slide 9

Slide 9 text

開発中,問題になったことは? コードが煩雑で,予測精度が低下した際にバグを特定できない 9

Slide 10

Slide 10 text

どうやってこれらの問題を解決したか? Codecov カバレッジを記録 CircleCI テストを実行 Comet.ml 学習結果を記録 開発者 変更を push/PR GitHub 外部サービスに通知 テスト及び CV スコアの監視を継続的に行い,バグの混入を早急に察知する 10

Slide 11

Slide 11 text

何故これらのサービスを採用したか? 環境構築の手間を削減できるため ● mlflow は自身でサーバを構築する必要がある private リポジトリに無料利用できるため ● Travis CI は課金する必要がある ● Code Climate は private リポジトリに利用できない 11

Slide 12

Slide 12 text

何を学習結果として記録したか? ● commit ID ● ブランチ名 ● 実行日時 ● 計算時間 ● 標準出力 ● 依存関係 ● 学習曲線 ● CV スコア ● ベストパラメータ ● 等 12