More Related Content
Similar to データ分析チームの振り返り
Similar to データ分析チームの振り返り (20)
More from Satoshi Noto (10)
データ分析チームの振り返り
- 8. Ⓒ Classmethod, Inc.
データ分析チームの軌跡
• 2015年年4⽉月Amazon Machine Learning(Amazon ML)のリリースに
伴い機械学習チームとして発⾜足
• 良良品計画様とAmazon MLのPoCを実施
• http://dev.classmethod.jp/cloud/aws/amazon-‐‑‒machine-‐‑‒learning-‐‑‒poc-‐‑‒with-‐‑‒
ryohin-‐‑‒keikaku/
• あきんどスシロー様とAmazon MLを⽤用いた待ち時間予測の精度度向上を実施
• http://dev.classmethod.jp/machine-‐‑‒learning/amazon-‐‑‒machine-‐‑‒learning-‐‑‒akindo-‐‑‒
sushiro/
• 良良品計画様と製品の購⼊入ユーザ予測を実施
• http://dev.classmethod.jp/cloud/aws/amazon-‐‑‒machine-‐‑‒learning-‐‑‒ryohin-‐‑‒user/
• 2015年年11⽉月データ分析チームに改名
• 現在に⾄至る
8
- 9. Ⓒ Classmethod, Inc.
実際の所は
• メンバーに統計や機械学習の経験者がいなかった
• Amazon MLがリリースされたので、AWSのサービ
スを使いこなす⼀一環で取り組み始めた
• 当然、何から⼿手を付ければよいかも分からず、試⾏行行錯
誤が続いた
• 1年年ほど取り組んで、多少分かるようになってきた気
はするが、まだまだ勉強中
9
- 12. Ⓒ Classmethod, Inc.
データ分析の⽬目的
• データを集めて、可視化したり、統計や機械学習を⽤用
いて、アウトプットを出す
• アウトプットとは、データを何らかの施策につなげ
て、ビジネス上の効果を出す
• 施策につなげることを意識識する
• 効果の絶対額を確認する。例例えば売上向上であれば⺟母数とな
る⾦金金額が⼤大きくないと投資に⾒見見合った成果が得られない場合
がある
12
- 13. Ⓒ Classmethod, Inc.
意外にデータがない
• 統計や機械学習で欲しいデータは業務システムのDBに⼊入っ
ていない
• アクセスログ(⾏行行動ログ)
• システム外部の情報(天気、イベントの有無、他社の情報など)
• 過去データがない
• 新サービス、新商品、新店舗はそもそもデータがない
• 季節性がある場合は少なくとも1年年以上過去のデータが必要
• 件数が少ない
• 飲⾷食店の来店者数は1店舗でみると1⽇日多くて数百件
• 平⽇日と⼟土⽇日で傾向が異異なるので⼟土⽇日だけにするとデータが2/7に減る
13
- 14. Ⓒ Classmethod, Inc.
データがあっても前処理理が必要
• ⽋欠損値、異異常値は普通にある
• 性別や誕⽣生⽇日を⼊入⼒力力しない、もしくは嘘の値を⼊入れるケースは多々ある
• そもそもフォーマット通りのデータが⼊入っているとは限らない
• 業者というカラムは存在しない
• 購⼊入⾦金金額が異異常に⼤大きいユーザーがいたりする
• 分析する⽬目的に合わせて集計が必要になる
• ユーザー単位の特定の商品カテゴリーの購⼊入回数のデータのようなものはテー
ブルには⼊入っていない
• SQLの可読性がひどいことに
• 100⾏行行超えとか当たり前。。。
• RDSだとレスポンスが帰ってこない
• Redshiftを利利⽤用
14
- 15. Ⓒ Classmethod, Inc.
⽬目的変数と説明変数
• ⽬目的変数:分析したり予測したい対象
• 売上、購⼊入の有無、待ち時間など
• 説明変数:⽬目的変数を算出するために利利⽤用する情報
• 売上:来客数、曜⽇日、天気、セールの有無、株価
• 購⼊入の有無:商品の検索索履履歴、類似商品の購⼊入の有無
• 待ち時間:待ち組数、曜⽇日、直近15分の発券数
• ⽬目的変数に合わせて適切切な説明変数を⾒見見つける必要がある
15
- 16. Ⓒ Classmethod, Inc.
どうやって説明変数を⾒見見つけるのか
• 対象ドメインについて理理解する
• お客様はドメイン知識識はあっても、統計や機械学習について
知識識がないと変数の候補を出せない
• ⾃自分たちもドメインを理理解してお客様と⼀一緒に探す
• 可視化してグラフを眺める
• 仮説を⽴立立てて、お客様とレビューする
• いろいろ組み合わせを試す
• 同じ変数を⼆二乗、平⽅方根、対数に変換してみる
16
- 19. Ⓒ Classmethod, Inc.
案件の流流れ
• 要件定義
• モデルの評価基準と⽬目標値を定める
• 検証フェーズ
• ドメイン理理解
• 可視化、ETL
• モデルの作成と評価
• ひたすら繰り返す
• 適⽤用フェーズ
• システム開発
• ⾃自動化したりシステムに組み込む
• リリース
• 保守
• 期待した精度度を維持しているか監視する。モデルが前提としている状況が変わったら精度度も
変わってしまう
19
- 20. Ⓒ Classmethod, Inc.
⼯工数⾒見見積もり
• 検証フェーズ
• 最初はドメイン理理解(可視化やETL処理理)が⼤大きいが、モデ
ルの作成と評価を繰り返すうちに⽐比率率率が下がっていく
• ⼀一度度可視化の仕組みやETL処理理(SQL)を⽤用意すれば、使
いまわせる
• モデルの作成と評価はどの程度度になるか予測不不能
• 期間とか予算枠で区切切るしかない
• 適⽤用フェーズ
• 普通のシステム開発として⾒見見積もれる
20
- 21. Ⓒ Classmethod, Inc.
お客様に伝えなければいけないこと
• データがあっても期待する結果が得られるとは限らない
• データがない(あっても⾒見見つけられない)こともある
• そもそも特徴がない可能性もある。例例えば偏りのないサイコロで
は次の⼿手の確率率率はどこまで⾏行行っても1/6
• ⼀一度度良良い結果が出ても、継続するとは限らない
• 既存のデータを利利⽤用するため、データの前提が変われば使いもの
にならない可能性がある
• 100%予測できるものはできない
• 間違えた場合にどうするか話し合う。システムの例例外処理理と異異な
り、その瞬間異異常があったと認識識できない
21
- 22. Ⓒ Classmethod, Inc.
まとめ
• 普通のシステム開発と似てる部分も多い
• ビジネス上の成果を意識識する
• 意外にデータはない
• データがあっても前処理理が必要
• 対象ドメインの理理解は必須
• 成果が出ないこともある
• リリース後は精度度を監視する
• 間違えた場合の対処について検討する
22
- 24. Ⓒ Classmethod, Inc.
統計と機械学習の違い
• 統計は説明を⽬目的としている
• 機械学習は予測を⽬目的としている
• やっている作業内容はとても似ている
• 統計と機械学習の両⽅方を必要に応じて使えばいい
• まとめとしては以下がおすすめ
• http://tjo.hatenablog.com/entry/2015/09/17/190000
24
- 25. Ⓒ Classmethod, Inc.
Amazon MLの概要
• http://dev.classmethod.jp/cloud/aws/
fit2015-‐‑‒amazon-‐‑‒machine-‐‑‒learning-‐‑‒overview/
• http://dev.classmethod.jp/cloud/aws/cm-‐‑‒
advent-‐‑‒calendar-‐‑‒2015-‐‑‒getting-‐‑‒started-‐‑‒again-‐‑‒
amazon-‐‑‒ml/
• http://dev.classmethod.jp/writing/amazon-‐‑‒
machine-‐‑‒learning-‐‑‒itpro2/
25
- 27. Ⓒ Classmethod, Inc.
カテゴリカルデータから数値データへの変換
• カテゴリー毎に複数の変数に分割し、1つの変数だけ値
を1として残りは0にする
• 性別(男性/⼥女女性)で男性の場合
• 男性フラグ -‐‑‒> 1
• ⼥女女性フラグ -‐‑‒> 0
• ⾎血液型(A型/B型/AB型/O型)でAB型の場合
• A型フラグ -‐‑‒> 0
• B型フラグ -‐‑‒> 0
• AB型フラグ -‐‑‒> 1
• O型フラグ -‐‑‒> 0
27
- 29. Ⓒ Classmethod, Inc.
数値データを複数の数値データに変換
• 数値データ→カテゴリカルデータ→数値データという
変換。数値の⼤大⼩小関係ではなくグループが重要な場合
• 年年齢(数値データ)で33歳
• 年年齢(10代/20代/30代/40代/50代)
• 10代フラグ -‐‑‒> 0
• 20代フラグ -‐‑‒> 0
• 30代フラグ -‐‑‒> 1
• 40代フラグ -‐‑‒> 0
• 50代フラグ -‐‑‒> 0
29
- 30. Ⓒ Classmethod, Inc.
どこから勉強すればいいか
• まずはRやPythonを使った⼊入⾨門書で実際にコードを⼊入⼒力力して操作イメージ
を掴む
• 全部読まなくてもいいし、わからない所は読み⾶飛ばず
• 次にデータ分析、統計、機械学習の⼊入⾨門書をそれぞれ読む
• 微積分や線形代数が分かるなら、数式が登場する⼊入⾨門書からでもいいのでは
• 分からない場合は、まずは数式が出ない⼊入⾨門書を読みつつ、平⾏行行して数学の勉強も⾏行行う
• その上で、必要な⼿手法を深掘りする。全てを万遍なく勉強するのは現実的で
はない
• システム開発と同じ
• 気⻑⾧長に取り組む
• システム開発の知識識の延⻑⾧長線上ではないし、そもそも難しい
• あと、昔読んだ本を読みなおしてみると成⻑⾧長を実感できるw
30
- 31. Ⓒ Classmethod, Inc.
参考書籍:R
• Rではじめるビジネス統計分析
• http://www.shoeisha.co.jp/book/detail/
9784798134901
• 内容も分かりやすいし、RのコードをRStudioで⼊入⼒力力している
うちにRのコードも多少読めるようになった
• 可視化のやり⽅方や統計の各種⼿手法が紹介されており、実際に
どんなことが出来るのか把握できる
31
- 33. Ⓒ Classmethod, Inc.
参考書籍:データ分析
• データ解析の実務プロセス⼊入⾨門
• https://www.morikita.co.jp/books/book/2851
• 全体像がつかめるし、初⼼心者向けの注意点もいろいろ書かれ
ていて、まず最初に読むといいのでは
• ⾊色々な⼿手法が紹介されており、詳しく学ぶための書籍も紹介
されているので、この本を起点に⾊色々読んでいくのもいいの
では
33
- 34. Ⓒ Classmethod, Inc.
参考書籍:統計学
• 完全独習 統計学⼊入⾨門
• http://www.diamond.co.jp/book/9784478820094.html
• 中学レベルの数学で分布と検定の概要をつかめる
• 1冊使ってひたすら標準偏差について説明している
• よくわかる⼼心理理統計
• http://www.minervashobo.co.jp/book/b48724.html
• とても読みやすい。数式もほぼ出てこない
• 多変量量解析がわかる
• http://gihyo.jp/book/2011/978-‐‑‒4-‐‑‒7741-‐‑‒4639-‐‑‒3
• 数式を読み⾶飛ばしても、説明の仕⽅方が分かりやすく、イメージがわく
34
- 35. Ⓒ Classmethod, Inc.
参考書籍:機械学習
• Sparkによる実践データ解析
• https://www.oreilly.co.jp/books/9784873117508/
• 様々な適⽤用領領域についての事例例集となっており、前処理理から精度度向
上まで書かれていて⾮非常に実践的
• SparkのMLlibを利利⽤用する際は必読だと思われる
• Mahoutイン・アクション
• http://www.oreilly.co.jp/books/9784873115849/
• 実践から学ぶスタイルで、Sparkによる実践データ解析よりも紹介
する⼿手法が少ない分、それぞれの⼿手法の理理論論⾯面は詳しく書いてある
• ただ、いまMahoutを使うかというと。。
35
- 36. Ⓒ Classmethod, Inc.
参考書籍:数学
• 統計学のための数学⼊入⾨門30講
• http://www.asakura.co.jp/books/isbn/
978-‐‑‒4-‐‑‒254-‐‑‒11633-‐‑‒5/
• 統計学に必要な微積分と線形代数がコンパクトにまとまってい
る印象
• 簡単ではないが、後の章で出てくる内容は基本的に前の章に書
かれていて、⼀一冊で全体がつながるように書かれている
• なぜ統計や機械学習で微積分や線形代数が必要なのか分かるよ
うになる。ただし最後まで読まないと分かるようにならない
36