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.

Platium datameetup vol2

597 views

Published on

Platium datameetup 第2回の発表内容

Published in: Data & Analytics
  • Be the first to comment

Platium datameetup vol2

  1. 1. 本当にあった怖い話 -データサイエンティスト編- 陽行 Platinum Data Meetup Vol.2 2018/10/3
  2. 2. 今回は、これまでにデータ分析をする過程で出会った 恐ろしい出来事を「怪異」という形で紹介していきた いと思います。 前半は、主に作業中に出くわす怪異 後半は、主にPJ全般で出くわす怪異 を取り上げていきます。
  3. 3. ある⽇、来週に迫った中間報告 のためにGBMやXGboostを使っ て需要予測モデルをガシガシ 作っていたところ。。。 アイツらに出くわしたのです
  4. 4. 怪異 生涯がくしゅう
  5. 5. 【出現地点】 • 勾配ブースティングを⽤いる学習器を使っていると稀に出現す る • Learning_rateを低く設定しているORそもそも学習率に関する ハイパーパラメータを何も調整していないと出現しやすい 【特徴】 • Learning_rateが低すぎて勾配が更新されないため、いつまで も学習が終わらない
  6. 6. 怪異レベル • そもそもLearning_rateをどれくらいにしたらどれくらいで収束 しそうかチェックしておけば恐るに⾜らない • 最終的なローンチ⽤のモデルを作成するときはどうしても学習率 は下げざるを得ないので六⼗の⼿習いと思って優しく⾒守る
  7. 7. 主な被害 • ⼟⽇にまとめてモデルを作成しようと⾦曜夜にshellを仕込ん で帰ったのに、⽉曜⽇に状況を確認するとモデルができていな い • 残りの時間でLearning_rateを⾼くして再度学習するも微妙な モデルで報告することになる。。。南無三 終わりなき勾配
  8. 8. 怪異 めもり喰い
  9. 9. 【出現地点】 • 郵便番号や商品名のように多様性が⼤きいコードや名称をアホみ たいにOne-hot Encodingすると出現する • ローカルPCや貧弱な分析サーバで作業をしているとよく出現す る • アンサンブル系の学習器を何も考えず、depth深めに設定して実 ⾏するとたまに出現する 【特徴】 • ⼀瞬でメモリを占有し、バッファオーバーフローを引き起こしか ねない厄介な怪異 • どんな処理がメモリに負担を掛けるのか知らないまま分析してい るとよく出現する
  10. 10. 怪異レベル • 特徴量⽣成をしていると頻繁にエンコーディング処理が発⽣する ので何気ない前処理がハードに⼤きな影響を与える • 分析サーバは⼤抵、他のデータサイエンティストと共有している ので、「あいつ昨⽇サーバ⾶ばしたらしいよ」と周りから揶揄さ れる(もしくはそういう妄想に駆られる)⼆次被害が発⽣する
  11. 11. 主な被害 • 特徴量作成してただけなのにサーバを落としてしまい、業務 を⼀時的にストップさせてしまう メモリを喰い尽して満⾜げな One-hot Encoder
  12. 12. 怪異 ぬる隠れ
  13. 13. 【出現地点】 • SQLでWHERE句を条件分岐させてモデルに⽤いるデータセッ トを分けていたら、不等号ではNULLが抽出できないことを忘 れて置いてきぼりにすると出現する 【特徴】 • SQLの初歩であるにも関わらず、NULLをどう扱うかは頭から 抜けがちなので元のデータセットと分割後のデータセットの件 数が⼀致せず半⽇「なんでヤァ!!」となる
  14. 14. 怪異レベル • 丁寧にSQLを設計するデータサイエンティストならばそもそも出会わ ない、もしくはすぐ退治できる • 過去データではNULLが発⽣していなかったので問題なかったが、直近 受け取ったデータからはデータ取得・蓄積のルールが変更になってお りNULLが発⽣する仕様になっていた場合問題の発⾒がかなり遅れる
  15. 15. 主な被害 • なぜかデータを分割しただけなのに元のデータと件数が⼀致し なくなりデータが⾏⽅不明になる • 特に、NULLが発⽣すると想定していないカラムを条件分岐の 対象にしていると本当に神隠しにあった気分になる どこかにNULLがいます ⾒つけてあげてください NULL
  16. 16. 怪異 隠れりぃけいじ
  17. 17. 【出現地点】 • データの構造についてのヒアリングを⼗分に⾏っておらず、過 去データが最新にUpdateされているのを知らずにモデリング していると出現する 【特徴】 • ターゲットとなる予測値が観測された後にしか知りえない情報 がUpdate処理により⽣まれ、それに気づかずにモデルの特徴 量として⽤いてしまうとLeakeageとなる • ⼀⾒、将来の情報を使っているように思えないので分析者も実 際に予測するために特徴量を作成するまで気づかないか、思っ たよりも精度が出なくてなぜかを追及していくまでわからない ことがある
  18. 18. 怪異レベル • データの中⾝をちゃんと理解していないとずっと気づかずに猛威 を振るうためきわめて悪質 • データそのものに誤りがあるわけではないので、データの発⽣や 更新の構造を知っている⼈間しか問題があることに気づけない
  19. 19. 主な被害 • POCの検証報告が終了し、実際に報告したモデルを本番⽤に実装 しようとなったときに、本当は報告したほどの精度が出ないこと がわかり関係者全員が⻘ざめる さぁパーティーの始まりだ!!
  20. 20. 怪異 ろーりんぐ すきっぷ
  21. 21. 【出現地点】 • 過去のログデータが⽇付の⽋損なくすべて埋まっているだろう と思ってwindow関数を使っていると、本当は⽋損が⽣じてい る場合に出現する • 株価データなど⼟⽇・祝⽇に必ずデータが⽋損するタイプの データを扱う場合には、なにも意識しないと必ず出現する 【特徴】 • 時系列の特徴量を健気にwindow関数を⽤いて作っていると、 1期前が前⽇ではなく5⽇前になっていて特徴量がぐちゃぐちゃ になる
  22. 22. 怪異レベル • 株価データのように必ず特定の⽇付が⽋損することを知ってれば 処理は簡単だが、予想もしないときに⽋損が起きている場合モデ ルがうまく機能しない理由を特定できなくなる • Row_number()over()コワイヨ
  23. 23. 主な被害 • ⽋損を無視してwindow関数を使って過去の状態を特徴量としてい る場合、⽋損がある部分だけ参照しているタイミングがずれるので うまくフィットせず、なぜかうまく当てられないものが⽣まれる • window関数で期をずらしたものを更に3⽇間平均のように集計して いると、どんどんワケのわからない値が⽣成されていく NULL 2018/2/3 2018/2/6 2018/2/17
  24. 24. ある⽇、新たに始まったPJに参 加してヒアリングをしている と。。。 アイツらに出くわしたのです
  25. 25. 怪異 データはある
 「紐づくとは⾔ってない」
  26. 26. 【出現地点】 • PJが開始される前にヒアリングをしていた段階では、広告のデ ータや店舗でのプロモーションのデータがあるので広告効果は 特徴量に加えられると聞いていた 【特徴】 • 確かにデータはある。。。あるが、管理コードが違っていたり 管理コードが上書きされていて以前のプロモーションで使われ ていた番号が消失していたりして使えない
  27. 27. 怪異レベル • この⼿の話になれたデータサイエンティストであれば、PJ開始前に以下を確認 して開始するので出くわさない ①データは紐づくのか ②過去の履歴は保持しているか
  28. 28. 主な被害 • 提案書に壮⼤な夢を書いたのに、実際にデータを触ってみると使 えないものばかりということが分かり地獄のような報告会が待っ ている Let’s Party Night!!!!
  29. 29. 怪異 ガゾウはある
 (「アノテーションしたとはいっていない」)
  30. 30. 【出現地点】 • 特定の物体検出を深層学習でやりたい気持ちが芽⽣えてくると 出現する • 本当は画像にかからわず異常検知系の問題の場合には共通して 出現する 【特徴】 • 画像を⽤いた物体検出のうち、よくあるのが異常の検知だが、 そもそも異常な状態をとらえた画像がない
  31. 31. 怪異レベル • ⼤量のアノテーション歩兵を募集すれば討伐できることもある • 特定の状態を検出したいのではなく、正常状態から逸脱する異常 を検知したいだけなら正解画像だけあればいいので問題にならな いこともある(滅多にない)
  32. 32. 主な被害 • 「こんなことやるために分析の会社に⼊ったわけじゃないの に」という怨嗟の声が⽩⾦台に⽊霊する NULL ポチ ポチ 正解画像に丸をつける簡単なお仕事
  33. 33. 怪異 「それは我々も わかっている」
  34. 34. 【出現地点】 • ⽤いることができる特徴量が限定されている場合やビジネス上 重要だと思われる要素だけが管理されているマスタを使って要 因分析をするとよく出現する 【特徴】 • これまで業務をやっていて気づかなかったデータ上の発⾒を期 待されているが、重要な要素は実際にビジネスをやっているク ライアントは当然把握しているので「○○が⼀番寄与してまし た!!」「うん、そりゃそうだよね」となりがち
  35. 35. 怪異レベル • データサイエンティスト⽬線では理不尽だが、クライアント⽬線 で⾒ても⾼いお⾦を払って知っていることが報告されるという理 不尽を味わうという点で脅威的
  36. 36. 主な被害 • (クライアント⽬線)AIを⽤いてこれまでの業務では気づけな かった知⾒をもとにビジネスを変えていきたかったのに現状を データで確認できただけだった。。。 NULL
  37. 37. 今回は以上となります。 皆さんもこれらの怪異に出くわしたことがあったでしょうか? いやぁ本当に怖いですねぇ。。。 おしまい

×