https://data-engineering.connpass.com/event/136756/
AutoML パッケージの開発を円滑に進めたいデータと ML 周辺エンジニアリングを考える会 #2Jul 19, 2019
View Slide
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
約 3 ヶ月,同僚 3 名と以下の大会に参加したApril 1, 2019 - July 20, 20193任意のデータセットに対する予測精度を競う大会https://www.4paradigm.com/competition/kddcup2019
何故参加したか?AutoML 周辺技術の調査 開発力強化 案件利用4
本大会の内容は?入力● 5 つの表形式データセット● スキーマ,関係等が記載されたファイル(右図)提出物● 学習,予測を行うコード制約● 計算資源:4 vCPUs (16 GB Memory)● 計算時間:数十分程度評価指標● AUROC5
本大会の課題は?時系列データの扱い● data leak を予防する方法は?● concept drift に対応する方法は?複数表の扱い● 一対多,多対多で結ばれる表を結合する方法は?4 つの型の扱い● cat 型を num 型に変換する方法は?● multi-cat 型を num 型に変換する方法は?● time 型を num 型に変換する方法は?6
Concept drift とは?データを生成する確率分布が時間経過で変化する現象● cat 型の場合,新規カテゴリの出現が相当7Gama, J., et al., "A survey on concept drift adaptation," ACM CSUR, 46(4), p. 44, 2014.
結果は?計算時間超過で失格…通過チームは 31/161パッケージの内容は懇親会でお話します8
開発中,問題になったことは?コードが煩雑で,予測精度が低下した際にバグを特定できない9
どうやってこれらの問題を解決したか?Codecovカバレッジを記録CircleCIテストを実行Comet.ml学習結果を記録開発者変更を push/PRGitHub外部サービスに通知テスト及び CV スコアの監視を継続的に行い,バグの混入を早急に察知する10
何故これらのサービスを採用したか?環境構築の手間を削減できるため● mlflow は自身でサーバを構築する必要があるprivate リポジトリに無料利用できるため● Travis CI は課金する必要がある● Code Climate は private リポジトリに利用できない11
何を学習結果として記録したか?● commit ID● ブランチ名● 実行日時● 計算時間● 標準出力● 依存関係● 学習曲線● CV スコア● ベストパラメータ● 等12