データ分析プロセス『CRISP-DM』とは

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、小澤です。

最近はAlteryxについて書くことが多い私ですが、今回はどういったツールを使うか以前にどういったプロセスでデータ分析を行っていけばいいかについて、書かせていただきたいと思います。 これによって、Alteryxなどのツールがどういった場面で活用できそうかのイメージもしやすくなるのではないかと思います。

データ分析のプロセスについては、いくつかの方法論が提案されていますが、今回はその中のCRISP-DMというものについて紹介させていだきます。

CRISP-DMとは

CRISP-DM(CRoss-Industry Standard Process for Data Mining)は、同名のコンソーシアムによって提唱されたデータ分析プロジェクトのプロセスモデルとなります。

CRISP-DMでは以下のようなサイクルでデータ分析を行います。

crisp-dm-cycle

このプロセスでは、相互に矢印が引かれていたり、全体を囲うように円形の矢印を引いていることからもわかる通り、ウォーターフォールのような一方通行のプロセスではなく、必要に応じて適時行ったり来たりを繰り返していきながら適切な結果へと結びつけるためのものとなっています。

実際にデータ分析を行う際にも、事前に「こうすれば必ず成功する」といったものを決めてあとはその通りに実行していくだけ、といった状態にすることは非常に難しく、試行錯誤していく中で最適な結果へと結びつけていくことになります。 これらのプロセスを実行していく中でうまくいかない場合はどこからやり直す必要があるのかを適切に見極めていくことが重要となります。

また、1回のプロセスで完了するのではなく、得られた結果を次のデータ分析へとつなげていくことになります。

各プロセスを見ていく

では、各プロセスでどのようなことをしていくのか見ていきましょう

Business Understanding

最初の出発地点は図中の左上にあるBusiness Understainding(ビジネス課題の理解)となります。

データ分析というと、数学的な素養が必要となる高度な手法やツールをどう使うかといった部分や、分析環境を用意するといったものに注目されがちですが、まずはこの部分から始めることになります。 「課題」というと、売り上げや利益の低下など何か悪いことが起こっている前提になるじゃないか!と、思われる方もいるかもしれません。 もちろん、そういった改善が必要となる要因に対して、「なぜそうなっているか」を発見して、「どのように改善すべきか」を考えるプロセスも含まれます。 しかし、それだけでなくより良くしていくためにやるべきことや、注力すべきこと、新規事業を考える際にどういった領域に手を出すのが適切か、などビジネスの成長的な側面でも同様に考えることができます。

ここで、最初にこのプロセスが入ることの最もキーとなるポイントとしては、ただ闇雲に「データ分析」をすれば何か発見できる、と考えるのではなく、「次の一手として何がしたいのか」と、そのために「どういったやり方が考えられるか」を明確にしておくことです。 この取り組みのKGI/KPIとなる指標は何か、それはどのように計測可能かについて考えるのもここでのプロセスとなります。

Data Under Standing

続いてのプロセスはデータの理解となります。 データは、一言で「データ」といってしまうとそれだけのものになってしまいますが、実際には人間やシステムなど様々なもの動きを観測した結果生まれたものになります。 そのため、観測対象の行動を特徴付ける要素がそこに含まれています(含まれないならデータ分析なんてできませんね)。

どんなデータが観測されていて、どんなデータが観測されていないかは非常に重要な項目となります。 ビジネス課題の理解で定めた課題を解決するために必要なデータが揃っていそうか、という点において必要なデータがなさそうであれば新たにそれを計測するための仕組みを作るか、課題自体を別な視点から捉えるように考え直すかを決める必要が生じます。

実際には、すべての要素を観測してデータとして記録することはできません。 また、観測対象としていたものでも必ずしやすべてが正確に記録できているとは限りません。 例えば、アンケートのようなものであれば、個人情報欄が未記入であったり、年齢でサバを読んでいたりといったことも考えられるでしょう。 また、メートルとセンチメートルを間違えて、身長170mのようなありえない数値を記載してしまうこともあるかもしれません。 不均衡データであるなどの性質もこのプロセスで確認しておくといいでしょう。 そういった、外れ値や欠損値の有無の確認もこのプロセスに含まれるでしょう。

また、ここでは足りていないデータを補完する必要がある場合にはそのコストを考えるのも重要になります。 足りていないものを新たに計測するとなった場合、それがどのくらい容易に取得できるものなのかといった点も重要になりますし、計測を始めてから利用可能になるまでにはそれなりの期間も必要になります。

このプロセスではこれらの点を踏まえて、どのような分析によってどのようなことが分かりそうか、仮説を立てていくことになります。 クラスタリングなど、探索的データ解析のような方法でデータの傾向をつかんでいくのもいいでしょう。

Data Preparation

続いて、データの準備となります。 このプロセスでは、データを次のモデリングで利用可能な形式に整形していくことになります。

ここと、その手前のデータ理解は、データ分析のプロセスの中でも最も時間と労力のかかる部分になります。 この2つのプロセスはかなりの頻度で行ったり来たりを繰り返すことになるかと思います。

データを利用可能な状態にするというはどういうことでしょうか? 多くの場合、観測されたままの生のデータは非常に汚く、そのまま直接利用できることはほとんどありません。 ここで、いくつかの例をあげると

  • データに対するアクセス権限をもらう
  • 様々なデータソースに散りばめられたデータを1箇所に集約する
  • ETL(Extract Transform Load)を行って分析を行いやすい形式に変換する
  • システムごとに異なるIDの体系を統一するために名寄せする
  • カテゴリ変数をダミー変数化する
  • 文字列に対するテキストマイニングなどの処理
  • 外れ値や欠損値の補完
  • 数値の正規化

など、おおよそどんな状況でも出てくるであろう前処理だけでもいろいろ挙げられ、これら1つ1つとってもかなり複雑な処理が必要なものも多々あります。 その他にも、次元削減を行ったり、機械学習であれば教師データを作成したりといったことも必要になるでしょう。 場合によっては、観測されているデータからモデリングの際に有用になりそうな新たな項目を予測して追加することもあります。

Modeling

さて、いよいよ「データ分析といえばここ」のプロセスに入ります。 実際にはここまでのデータの理解・準備で力尽きている人も多いのではないでしょうか?w

このプロセスでは様々な手法を利用して、最も良い結果を出すような手法を見つけることになります。 数値の予測をしたい、レコメンドをしたい、など、どのようなことをしたいかによって使える手法はある程度限定されますが、それでもモデリングの手法は数多くあります。 その中のどれが最適かについては、「常にこれを使っておけばいい」というベストな選択肢は存在しません(ノーフリーランチ定理と言います)。

数学的な性質から適切そうなものを選んだり、様々な手法を実際に試して比較したり、最も良いものを選択していくことになります。

Evaluation

モデルを作成してもそれで終わりではありません。 作成したモデルが適切に動作するか確認する必要があります。

モデルの評価にもいくつか考え方があります。 ここでは、最初に定めたビジネス上の課題を解決するのに十分な精度が出るものになっているかといった観点で考えることになります。 また、オフライン評価ではいい感じモデルになっているけど、実際に適用してみたら思ったような成果が得られないといったこともありえます。

そういった観点から、作成したモデルを評価して、改善を行う必要があるかを見極めていきます。

Deployment

モデルを作成してビジネス的に使えそうということがわかったらそれで終わりではありません。 得られた結果を元に具体的なアクションを取る必要があります。

具体的なアクションを行うためには意思決定者の承認を得る必要があるかもしれませんし、機械学習などであれば既存システムに組み込む必要があるかもしれません。 データ分析を行ってうまくいったからそれでおしまいではなく、それを実際に活用するのがこの最後のプロセスになります。

ここまでのプロセスを経て得られた結果はまた、次のデータ分析プロジェクトに活用されながらさらに改善されていくことになります。 また、一回の分析もここで終了ではなく、ユーザの行動の変化など常に最新の情報を反映させてモデルをリフレッシュしていくことが重要になります。

終わりに

今回は、データ分析のプロセスである、CRISP-DMを紹介しました。 全体として、具体的に何をするかには踏み込まず概要的なものになっていますが、まずは闇雲にとりあえずデータを漁ったり手法を適用してみるから先に進むための方法として参考にしていただければ幸いです。

参考資料

指標を決める

前処理・ETL

CRISP-DM

データ分析プロセス全般