【入門基礎】データサイエンスプロジェクトのライフサイクル

データサイエンスのプロジェクトはどんな人が関わっているのか?

データサイエンスのプロジェクトはどんなライフサイクルをたどるのか?

実際にやってみないとよく分かりませんよね。

ワカメさん

この記事では、ビッグデータを扱うデータサイエンスのプロジェクトに必要な役割と一般的なプロジェクトのライフサイクルについてまとめます。

この記事はこんな人にオススメ
  • データサイエンスのプロジェクトに初めて関わる方
スポンサーリンク

プロジェクトを成功に導くための役割

ヒトデちゃん

データサイエンスのプロジェクトってどんな人が関わるんですか?

データサイエンスのプロジェクトを成功に導くためには、7つの役割が必要になります。

  1. ビジネスユーザー:ドメイン領域を理解しており、プロジェクトの結果から利益を得る人です。チームプロジェクトのコンサルができ、アドバイスを与えることができます。プロジェクトの結果をどのように実際の現場で運用するか想定することもできます。通常、ビジネスアナリストやラインマネージャー、あるいは特定の専門家がこの役割になります。
  2. プロジェクトスポンサー:プロジェクトの責任を持ちます。プロジェクトに対して要望し、また、資金を提供します。プロジェクトの優先事項や望ましいアウトプットを設定する人です。
  3. プロジェクトマネジャー:チームの進捗状況を確認します。また、プロジェクトの目的が期待される結果を満たすものか確認する人でもあります。
  4. ビジネスインテリジェンス(BI)アナリスト:データに対する深い理解・経験、KPI、ビジネスインテリジェンスなどに基づき、専門的な知識や気づきをチームに提供する人です。BIアナリストは、一般的に、ダッシュボードやレポートを作成でき、データフィード、データソースにも詳しい人です。
  5. データベース管理者:チームが必要とする分析の要望をサポートするため、データベース環境の調整を行います。重要なデータベースやテーブルへのアクセスを許可し、適切なデータセキュリティレベルを維持しているか確認もします。
  6. データエンジニア:データマネジメントやデータ抽出のため、SQLを扱うスキルを持ちます。データエンジニアは、分析に必要なデータの抽出を実行するため、データサイエンティストに近いところで働きます。
  7. データサイエンティスト:分析技術、データモデリングのエキスパートであり、与えられたビジネスの課題に対し、有効な分析アプローチを適用します。また、分析の目的が、アウトプットに適したものであるか確認します。

データエンジニアとデータサイエンティストを兼務する人もいます。チームの人数に関して制限はありません。

近年、ビッグデータが注目されているため、特にデータエンジニアとデータサイエンティストの需要が世界的に高まっています。

ワカメさん

データサイエンスのプロジェクトでビッグデータを扱うためには、データベースを理解している人材とIT部門の協力も欠かせません。

データサイエンスプロジェクトのライフサイクル

プロジェクトの一連のライフサイクルは6つのフェーズに分けられます。

プロジェクトのライフサイクル

十分に今やっているフェーズの情報を整理・理解できたら、次のフェーズへ移ります。各フェーズを何度も試行錯誤し、新たな発見や十分な情報を得ながらプロジェクトを進めます。

各フェーズで特に意識するべき内容をメモします。

Phase 1: 発見

このフェーズでは、「プロジェクトの目的」と「プロジェクトの環境」を確認します。このフェーズで取り組むことは以下7つです。

  1. ビジネスドメインの学習:背景知識、用語の擦り合わせを行い、プロジェクトの目的をチーム全体で理解します。
  2. リソースの確認:プロジェクトに利用できるツール、システム、データ、サポートしてくれる人材を確認します。
  3. 問題のフレーミング:プロジェクトを成功に導くため、「何を解決するためにデータ分析を実施するのか」、書き出してみます。
  4. ステークホルダーの特定:データ分析の結果は、誰かに利益をもたらす一方で、また違う誰かに不利益をもたらすこともあります。このプロジェクトの結果から、「誰が利益を得て、誰がどんな不利益を被る可能性があるか」、考えます。
  5. スポンサーへのヒアリング:プロジェクトスポンサーは長年の経験に基づいて、すでにある程度の答えを想定している場合があります。チームはスポンサーにヒアリングし、客観的な立場で問題の本質を特定し、具体的なアプローチを検討します。
  6. 仮説の設定:課題に対して仮説を立てます。この段階で立てた仮説は、プロジェクトが進行するに従って、データに基づいて設定した仮説は検証されます。その後、新たな仮説が設定します。
  7. 大事なデータソースの特定:問題を解決するために必要なデータを特定します。仮説検定を実施するために、どんな種類のデータ、どれだけのデータ量、どれだけの期間のデータが必要か、そして、データのアクセス権、データ管理の権限がどこにあるか、確認します。

Phase 2: データ準備

解析に使用するデータを準備します。データ準備(Data Preparation)は、データ探索 (Data Exploration)データ前処理(Data Preprocess)を含みます。このフェーズがプロジェクトのライフサイクルで最も手間がかかり、プロジェクト全体の少なくとも50%の時間が使われます。

  1. サンドボックスの準備:稼働している現行のデータベースに干渉せず、データを探索することができる分析用サンドボックスを準備します。チームは、会社の資産であるメインデータベースの直接アクセスするのではなく、サンドボックスにコピーしたデータにアクセスします。
  2. ETLTの実行:ETLTとは、データの取り込みを高速化、同時に、業界コンプライアンスに基づいてデータの品質を確保し、機密データを保護するためのデータ統合の方法です。ETLTは、1)データベースからのみ加工データの抽出2)コンプライアンスの遵守を目的としたデータ形式、データクレンジング、機密データのマスキング/削除に関する軽度のデータ変換3)変換したデータをデータウェアハウスへロード4)データウェアハウス上での複数データソースを統合するためのデータ変換、の4つのプロセスです。
  3. データの学習:データに精通することもデータサイエンスプロジェクトを成功に導くための大事な要素です。データの意味や期待される成果をチームとして理解するための時間を確保します。チームが必要なデータソースを特定するために、データソースのカタログを作成しておくことも大事です。
  4. データ調整:データ調整(Data Conditioning)は、データクリーニング、データ正規化、データ変換のプロセスを含みます。この操作は、データセットのジョインやマージといった多くの複雑なステップを含んでおり、後のフェーズに大きな影響を及ぼします。1)なんのデータを扱っているのか2)どのようにデータをクリーニングすべきか3)それぞれのデータがどのような関わりを持っているか4)データタイプは一貫しているか5)変換したデータは適切か6)エラーは含んでいないか、意識してこの操作に取り組みます。
  5. 調査と可視化:データの可視化パッケージや統計ツールを用いて、いくつか変換したデータの性質を調べます。可視化は、データの特徴を簡単に知るための便利な方法です。確認しておくといいポイントとしては、1)欠損を含むか2)データはどのように分布しているか3)データの値の幅4)時間に関する変数5)データは正規化/規格化されたものか6)地理データの規模、などがあげられます。

データ準備に役立つツールとして、HadoopOpenRefineData Wranglerが紹介されます。

Hadoopは2006年に開発された分散処理フレームワークです。ビッグデータの解析は、リレーショナルデータベース(RDB)が苦手とする非構造化データを扱う必要があります。しかし、価値があるかわからないデータを大量に保有することは、コストがかかるうえ、理にかなった方法とも言えません。このような理由から、多量の異なるデータソースから大規模分散処理が得意なHadoopの技術が注目されています。

OpenRefine(別名:Google Refine)は無料で使用できるオープンソースです。乱雑なデータクリーニング、データ変換に役立つ強力なツールです。OpenRefineと同様、Data Wranglerもデータクリーニング、データ変換を可能にするツールです。こちらはスタンフォード大学で開発されました。

ヒトデちゃん

うーん、知らない名詞がたくさん出てきて頭がパンクしそうです…

ワカメさん

IT産業は次々と新しい技術・サービスが出てくるので、追いかけるのは大変です。ここでは「解析のためにデータを綺麗にする必要がある」ということがイメージできたら大丈夫です。

Phase 3: モデル設計

プロジェクトを達成に大事なデータの関係性を発見するためのモデルを検討します。使用するモデルを選択するために意識すべきポイントは以下になります。

  1. データセットの構造:データセットの構造は適用するモデルを決めるために大事な要素です。例えば、データセットが、テキストデータであるか、トランザクションデータであるかで、異なるツールやモデルが必要となります。
  2. 分析手法を適用する意義:適用する分析手法がチームが目指している要件を満たすものであるか、仮説を検定するものであるか、検討します。

以下はこのフェーズで取り組むことです。

  • データ探索:Phase 2ではデータの性質を調べましたが、Phase 3では、選択した変数間の関係を調べ、大事な変数を選択するため、データ探索(Data Exploration)を実施します。誰もが結果に影響すると考える変数を考慮するだけでなく、問題の解決に重要な予測因子とそれに関わる変数を見つけることも意識します。

    ここでは時間をかけてメンバーと議論することも大事です。しっかりデータと解決したい問題を理解することは、この後のステップのモデリング、データ分析をより簡単・効率的にします。また、異なるドメインを持つメンバーの意見は、データの見方に対して、新たな切り口を与えてくれます。データサイエンティストとしては、自身のバイアスを除き、あらゆる結果の想定に対し、疑問を持って問題にアプローチする必要があります。
  • モデル選択:最終目標を達成するための分析手法を選択します。分析手法にはクラスタリング、回帰、分類、連関規則などがあげられます。R、SAS、MATLABなどは、データマイニング、機械学習のためのパッケージを備えていますが、ビッグデータと呼ばれるような超巨大なデータセットに対してモデルを適用する場合、パッケージでの対応には限界があります。このような場合、モデルに使用されているアルゴリズムをデータベース上で実行するために再設計する必要があります。
スポンサーリンク

Phase 4: モデル開発

ここでは、データセットからトレーニングデータテストデータを作成します。その後、トレーニングデータから分析モデルを作成し、テストデータを用いてモデルの性能を評価します。使用するツールの例としては、SAS、SPSS、MATLAB、R、Pythonなどがあげられます。

トレーニングデータ:分析モデルを開発するためのデータセット

テストデータ:開発した分析モデルの有効性を確認するためのデータセット

を意味します。

モデル開発に求められる技術やロジックは非常に複雑ですが、このフェーズにかかる時間はPhase 2「データ準備」やPhase 5の「検証」に比べて短いです。Phase 3とPhase 4は概念的には複雑ですが、それほど時間はかかりません。

モデリングの際に意識すべき点として、

  • モデルがテストデータに対しても有効だと思われるか
  • モデルのアウトプットが専門家に理解されるものか
  • パラメーターの値は妥当か
  • モデルの精度が目的を十分に満たすものか
  • 容認できないエラーを回避しているか
  • 入力データの数が多い場合、変換、あるいは、排除することは可能か
  • モデルが解析にかける時間は妥当か
  • ビジネス上の課題を説明するために、別の形式のモデルは考えられるか

があげられます。

Phase 5: 検証

Phase 4で開発したモデルの性能がプロジェクトで設定されたクライテリアを満たすものか評価しなければなりません。

評価の方法として、一つは統計手法を用いることがあげられます。もし、統計的に有効であれば、何か顕著な特徴がないか探します。もし、結果が有効でなければ、モデルの修正を検討します。

また、Phase 1で立てた仮説が受け入れられ、新しい仮説が立ったなら、それを検証するためのモデルを検討します。何度もこれを繰り返すことで、様々なモデルとその結果が得られます。これらのモデルから見出した全てのインサイトを記録し、重要だと思うモデルを少なくとも3つ選択し、ステークホルダーに共有しましょう。

ここでの結果は、ステークホルダーとスポンサーにとって最も大事なフェーズになります。データ分析の結果、解析方法、分析結果から得られたインサイトは、明確に伝えるように心がけます。

Phase 6: 運用

最後は、プロジェクトのアウトプットを最大化するため、現場に実装します。いきなり大規模に適用するのではなく、その前に小さなスケールでパイロット試験を実施することが推奨されます。小スケールで確認しておくことで、予期せぬ大きなリスクを回避することができます。

パイロット試験では、チームはデータベース上でのアルゴリズムの実行速度を検討する必要があるかもしれません。これは、例えば、インメモリで行なっていたRでの解析と違い、大きなデータセットになるにつれ、アルゴリズムの実行速度が低下するためです。

現場で適用してみると、モデルと乖離した結果が確認されることもあります。現場のユーザーからそのような声が上がった場合、現場のプロセスを考慮して、モデルを修正します。

ワカメさん

データサイエンスのプロジェクトで大事になるのは、このプロジェクトから見出したインサイトをアクションに繋げたことで、誰に、どんな新しいメリットを生むか、です。分析することだけがデータサイエンスの仕事ではありません。

まとめ

いかがでしょう。データサイエンスのプロジェクトのイメージができたでしょうか。

本記事は、ビッグデータを取り扱うデータサイエンスプロジェクトの大事な部分を抜粋して書かせていただきました。以下にデータサイエンスのプロジェクトについて内容をまとめます。

データサイエンスプロジェクトのライフサイクル
  • プロジェクトのライフサイクルは6つのフェーズ(発見、データ準備、モデル設計、モデル開発、検証、実装)から構成される
  • 十分に手前のフェーズの情報を整理・理解できたら、次のフェーズへ移る
  • 各フェーズを何度も試行錯誤し、新たな発見や十分な情報を得ながらプロジェクトを進める
ヒトデちゃん

ありがとうございます!プロジェクトの流れはイメージできました。いろんな人がプロジェクトに関わるんですね。

ワカメさん

プロジェクトをやってみると、データサイエンティスト1人ではプロジェクトはまわせないと気付くはずです。異なるドメインの方からの一言で突破口が開けることもあるので、多様性をどうやって活かすか、といったマネジメントも大事になります。やることは多いですが、まずはチームプロジェクトを楽しんでみてください!

最後まで読んで頂きありがとうございました!

参考文献

(1): Data Science and Big Data Analytics: Discovering, Analyzing, Visualizing and Presenting Data (1st. ed.). Wiley Publishing.

スポンサーリンク

この記事が気にいったらシェアしてね!