来年、どうやら私はデータサイエンティストになるらしい。そんな自分が事前予習としてデータサイエンスプロセスについて調べてみた。加えて、データサイエンティストのインターンで学んだことや自習したことも多くあったのでまとめてみました。
現在私はデータサイエンティストではありません...そのため、事前学習としてまとめたものを記事にしてみました
※この記事では、データサイエンティストのインターンシップや面接時に自分が知りたかったことも含まれています。
来年入社時に差異があったら更新したいと思っています。(笑)
- そもそもデータサイエンティストとは…
- データサイエンスプロセス
- ステップ1:問題の明確化
- ステップ2: 問題に必要な生データを収集する
- ステップ3: 分析のためのデータ処理
- ステップ4:データを調べる(EDA)
- ステップ5:詳細な分析の実行
- ステップ6:分析結果の伝達
- まとめ
そもそもデータサイエンティストとは…
膨大なデータ(ビッグデータ)から、ビジネスに活用する知見を引き出す中核人材として「データサイエンティスト」に注目が集った。 その流れに自分自身も乗っかった形ではあるが、まだまだ将来性のある職業の一つであると思っている。
より、
つまり、
データサイエンティスト協会ではデータサイエンティストに必要なスキルや知識を
- ビジネス力
- データサイエンス力
- データエンジニア力
と定義しているように、データサイエンティスト=数理問題を解くだけの仕事ではないことが分かるのではないでしょうか?
課題の発掘から施策PoCまでを含めてデータサイエンティストの領域である…と知った。
調べた限り流れとしては
顧客の課題(ビジネス的課題)
↓翻訳(問題の明確化)
数理問題(ML、DNN等の最新技術を駆使)
↓求める
数理の解(顧客の使えるデータにする)
↓実装(PoC等)
ビジネス施策案
のようなかんじであると理解した。
※自身の調べと経験と見解が混ざっているため、解答として正しいか来年データサイエンスに携わった際に判断します。
そもそものプロジェクト自体も、毎回環境が異なる場合もありそうです。アジャイル開発と呼ばれる場合は特に…
のようにプロジェクトでも細分化され、様々な異なる障害が存在する。加えて、アジャイル開発が主流になりつつあるので、ITコンサルは時代の流れに敏感でないとおいて行かれそうですね...
そんななか、英語のサイトではあるが、
にデータサイエンスプロセスについて書いてあった。自分なりに解釈しつつ翻訳+経験を加えてまとめてみることにしました。
データサイエンスプロセス
データサイエンスプロセスは広く、かつ、データサイエンティストに求められる技術も多い...今回はその片方のプロセスについて調べ、自分なりに解釈しまとめてみました。
まずこのサイトのこの図を見ただけで、データサイエンスを行う人の領域が広いことが分かるのではないでしょうか?前節でも書いたが、
顧客の課題(ビジネス的課題)
↓翻訳(問題の明確化)
数理問題(ML、DNN等の最新技術を駆使)
↓求める
数理の解(顧客の使えるデータにする)
↓実装(PoC等)
ビジネス施策案
がデータサイエンティストが行うことであることをインターンや調べていくうちに知った。(これでも一部)
ステップ1:問題の明確化
顧客の課題を翻訳するフェーズと理解
問題を解決する前にまずしなければならないことは、課題自体が何であるかを正確に定義すること。そもそも顧客がデータ関連に無知だと問題設定が上手くいっていない可能性すらあるそうです。
↓
データに関する要望を実用的なものに変換できるようにする必要
↓
実用的なアウトプットに変換する直感を養い、顧客の課題につながる誰も聞いていないこと・いらないと思われていた情報すらをも聞く必要がある
(ケースワークだとよくあるパターンだが、こちらが必要としている情報を教えてくれない、教える必要がないと思い込んでる可能性もある)
↓
ケースワークと同じ、必要不必要・現状と理想の状況とそのギャップの理解
目標と、データに関する質問の背後にある理由を理解することから始める必要が
↓
解決策を考え始める前に、顧客と一緒に問題を明確に定義する必要がある
そのためにしなければいけないこと
- 適切な質問をすること
- 販売方法や顧客は誰なのか、どういった層が多いのかなどを多くの情報を把握する必要がある
↓
顧客系
- 顧客はどの層?誰?会社?
- 顧客が思う御社製品等の魅力は?
- 顧客と製品はつながりがあるか?
- 好調なものと不調なものの差は何か?
データ系
- データ活用の基盤はあるのか?
- データ活用した現状分析や要因分析はできるのか?
- 現在の悪影響を及ぼしている箇所は?その根拠は?
現状と理想の状況とそのギャップの理解をし、ギャップを埋めるための解決案のための情報(データではなく、どのようなデータを持っているかとか)を手に入れることが必要
この段階の最後には、この問題を解決するために必要なすべての情報と背景を持っていることが重要です。
↓
この後の工程で必ず有効活用するために、足りない状態にならないようにしておく
ここで注意しないといけないこと(重複あり)
ゴールの再確認
課題を抽出・整理する前にまずゴールの再確認
↓
ゴールによって確認すべき課題等が大きく異なってくる
※ゴールはプロジェクト中に何度も確認すべき
顧客との認識ずれで、関係のない分析をしてしまう可能性もある
「そもそもAIではないとだめですかね?」という問題
解決すべき課題を明確にした
↓
AIが得意とするようとで、運用に耐えうる制度を確保し、業務に実装できないといけない…
↓
他の方法でもできるのであれば、そっちでもいいのでは?
AI導入にかかるコストを考えると、AI導入自体を目的にしないほうがいいのでは…
↓
ここに関してはのちのステップで確認するべきである
課題抽出のプロセス(ゴール確認後)
解決すべき課題の抽出をしていく作業
↓
- 課題の具体化をし、プロジェクト打ち上げ前のタイミングで共通認識をしておく
- 現状の把握:基礎分析等も行い定量的な確認もするべき
- 現場ヒアリング:現場のドメイン知識を盛り込んだり、現実的な提案を行うための作業
- 過去の事例調査:成功や失敗した事例を課題抽出の参考にする
→社内・社外の類似調査を行う
ステップ2: 問題に必要な生データを収集する
数理問題を解くためにはまずデータが不可欠である
問題を定義
↓
その問題を解決するために必要なインサイトを得るためのデータが必要
このプロセスでは、どのようなデータが必要かを考え、社内データベースへの問い合わせや外部のデータセットの購入など、データを入手する方法を探します。
※「ステップ1:問題の明確化+ステップ2: 問題に必要な生データを収集する」において
課題の抽出である
- 現状の把握
- ヒアリング(現場も含む)
- 過去の事例調査
- データの確認
を確実に行う
↓
その後KPI設計を行う
ここで注意しないといけないこと(前の続き)
AIは万能ではないため、実現性を判断する必要がある
- 技術的に可能か?
- 必要なデータが準備できるのか?
- 業務の変更で支障が出ないか?
- 予算やスケジュールの確保は妥当か?
- 導入後の成果を明確にできるのか?
↓
これでもAIを実現・使用するメリットがある
↓
分析へ
ステップ3: 分析のためのデータ処理
数理問題(ML、DNN等の最新技術を駆使)を解くための下準備
すべての生データが揃ったので、分析を行う前にデータを処理する必要がある
↓
特にメンテナンスが行き届いていない場合や環境ノイズとうの制約によっては、データはかなり乱雑になることも…研究者や軽く触ったことがある人ならデータ欠損に悩まされたことがない人はいないのではないでしょうか?
↓
値が重複していたり、値が欠落していたりと、分析に支障をきたすようなエラーがデータに入ってしまっていたりする。
↓
正確なインサイトを得るために、データをチェックは必須事項
データの確認の必須事項
- 必要なデータが揃っているのか?:現場のヒアリング
- データの量:データ数・カテゴリ数・期間
- データの質:収取方法・欠損や外れ値
質に関してよくやる作業は
- 値の欠落
- 無効な項目など、値が壊れている
- タイムゾーンの違い:データベースが、ユーザーのタイムゾーンの違いを考慮
- 日付範囲のエラー:必要な範囲のみを使用したい
おかしいと感じたら、そのデータを削除するか、デフォルトの値や平均値や最頻値(もしくは予測)に置き換える必要がある
↓
直感を働かせる必要があるのは、欠損自体に意味を持つ場合があることがあることや、実は入手できることだったりする。その場合は問い合わせたりした方がいい。
↓
データのクリーニングが完了したら、探索的データ分析(EDA)を行う準備完了
ステップ4:データを調べる(EDA)
データのクリーニングが完了したら、今度はそのデータを探査する
顧客や消費者が必要とする何か=「インサイト」
経験や思い込みに振り回されないことが重要
「〜とはこういうものである」、「〜がこうなのは当たり前だ」といった概念や経験則も大事だが、時として全く関係のないと思われていたデータ間には大きな関係があるかもしれません…
↓
そのため、難しいのはインサイトになりそうなアイデアを思いつくことである…
現実は締め切りという大きな壁がある…優先順位を決め、収集したデータに基づく需要を把握する。
ステップ5:詳細な分析の実行
統計的、数学的、技術的な知識を応用し、自由に使えるデータサイエンス・ツールをすべて活用して、データを解析し、あらゆるインサイトを見出す!!!
数理問題(ML、DNN等の最新技術や古典的な統計技術を駆使)
↓求める
数理の解(顧客の使えるデータにする)
この上を繰り返し、良い解を見つける作業工程(期限内で最善を尽くす)
問題を設定する際に適切な質問をたくさんしていれば、分析につながる重要な何かに気が付く可能性が高くなる!
↓
定量分析で得たデータと定性的な洞察をすべて組み合わせて、人々を行動に移すためのストーリーを作ることができます。
ここで注意しないといけないこと(前の続き)
AIについての確認
その中でAIが
- 課題解決にずれがないか?
- 分析手法が適しているか?
- 足りないデータがないか?
- 実用的な精度が出せているか?
- 高すぎる目標になっていないか?
をなんども確認しつつ行う。
ステップ6:分析結果の伝達
ここもかなり難しい領域である。
数理の解(顧客の使えるデータにする)
↓実装(PoC等)
ビジネス施策案
ここに移行するためには顧客に自分たちのやったことや有用性を理解してもらう必要がある。そのため、プレゼン能力が問われるところである。
※プレゼンに関してはいつか勉強したい。
発見したインサイトがなぜ重要なのか、理解してもらうことが重要
↓
最終的にデータサイエンスのプロセスを通じて、ソリューションを作成するよう求められている
↓
ここで、作製したデータと彼らの知識を結びつける、説得力のあるストーリーを作る必要がある(理解させなければならない)
↓
どうすれば売上を回復し、目標を達成できるかが明確にさせるために現状と理想、そのギャップを埋めるための解決策をデータに基づいて説明することが必要
↓
提案を実行する準備(スライド等)をする
ここで注意しないといけないこと(前の続き)
PoCに移行する前に
AIを実現・使用するメリットがある
↓
PoC:概念検証へ移行する
その際に、適切なKPIを設定し、過度な期待を生まないような期待値調整が必要である
※KPI=重要業績評価指標
事業目標を達成するための実行すべきプロセスが適切に実施されているのかを数値化して評価するもの
Ex)訪問件数・受注件数など
まとめ
データサイエンティストになる前にインターンやいろいろなサイトで学んだが、本やネットに書いてあることやインターンシップで体感したことは、実際に社会人になったら同じ風に体感するのだろうか…。
データサイエンティストとしてのスキルの前に、コンサルとしての力も必要とより感じ、来年への不安を感じました。
実際に入ってみてのギャップを体感してまたまとめたい。
もし、この記事を読んで参考になった・他の記事も読んでみたいと思った方、以下のボタンを押していただけるとモチベーション向上につながるので、よろしくお願いいたします。