本書は2017年4月1日にTeradata Japanのブログに掲載された内容を、再掲載したものです。
掲載内容の正確性・完全性・信頼性・最新性を保証するものではございません。
また、修正が必要な箇所や、ご要望についてはコメントをよろしくお願いします。
著者 山本 泰史 (やまもと やすし)
データマイニングのプロセス
データマイニングの手法を用いて分析する際に、標準的に踏むべきプロセスについて説明をします。モデルを構築することがデータマイニングにおける分析の中心ですが、一方でその前後にはデータの準備、そしてモデル構築後に行なわれるスコアリング処理が存在します。これは、データマイニングプロセスの中でも大きな作業負荷を占めることになります。
■CRISP-DM
以下に記載の区分はCRISP-DM: CRoss Industry Standard Process for Data Mining、Webサイト(https://www.datascience-pm.com/crisp-dm-2/)と呼ばれるコンソーシアムにて策定されたデータマイニングの標準的プロセスに、筆者による説明を加えたものです。
ビジネス課題の理解
最初に、どのようなビジネス課題に対してデータマイニングを適用するのかを決定します。今現在ビジネスを遂行する上で課題となっている点、そして課題解決のために知識を必要とするテーマが選定されます。例えば、「あるキャンペーンのレスポンス率に課題を感じており、このレスポンス率を改善するためにどのような顧客がキャンペーンに反応するのかを理解したい」といったテーマが設定されます。
データ内容の理解
認識された課題、そしてその改善のために関連すると思われるデータを洗い出します。データウェアハウスの中に膨大な顧客データが存在しているのであれば、その中から関連しそうなデータを吟味することになります。ここで考慮しなければならないのは、テーマとの関連性と共に、データ品質がデータマイニングに耐えられる品質を保っているかという点です。当然ながら、魅力的なデータカラムに見えても、中をのぞいたときにほとんど欠落しているのであれば、それは利用に値しません。
データの準備
吟味されたデータはデータマイニング用のデータとして、コピーされます。通常、データベース/データウェアハウスに存在するデータは、幾つものテーブルにデータサブジェクト毎に格納されています。例えば顧客のデモグラフィック情報と、取引明細は別なテーブルに格納されているケースがほとんどのはずです。また、発生時のイメージに近い、詳細なレベルのデータがテーブルに格納されているケースが多いことでしょう。一方でデータマイニングツールの多くは単一のテーブル(これを分析データセット:Analytic Data Set、もしくはデータセットと呼びます)にデータが整理される必要があります。また場合によってはデータをデータマイニングツールが求める形に変換したり、集約したり、派生させたりすることによって、本来必要なデータ形式に揃える必要があります。また一旦作成したデータセットには足りないデータがあったり、一方で不要なデータが見つかったりすることも良くあります。このようなデータ準備の作業は非常に煩雑であり、実際データマイニングプロセスにまつわる時間的負荷の半分以上を占める場合もあります。
モデリング
準備されたデータに対して、各種分析手法を用いて分析します。データの種類と、本来解決したいビジネス課題、導き出したい知識から、適切な分析手法を選択することになります。分析の結果としてモデル、つまり数式やルールが得られ、これが本来必要とする知識を導き出すことになります。ただし、元々想定したデータで充分でなかったりする場合には、データ準備のプロセスに立ち返り、データを準備しなおすことによって再度モデリングを行ないます。より良いモデルを構築するために、通常このような試行錯誤を繰り返します。
モデルの評価
モデルが作成された後、そのモデルが意味のあるものであるかどうかを判別するため、モデルの評価を行なうことになります。当初準備されたデータ、つまりデータセットは幾つかに分割されて作られることになります。最初のデータセットはモデルを作成するために用いられ、モデルが作成された後に次のデータセットにそれを適用し、同様に合致するものか確かめます。ときにはテストマーケティングのような形で評価を行なうこともあります。
モデルの実装
最終的に作成され、評価を終えたモデルは、マーケティングであれば顧客などのデータに適用されることになります。スコアリングと呼ばれるこのプロセスは、全ての顧客データに対してスコアを付与するような、多大にコンピューター資源を必要とする作業となることがあります。モデルとして作成された数式がy = ax + bであるとすると、xには顧客それぞれのデータが代入され、aをかけてbを足しこんでyという結果を得ます。このyがスコアに該当します。ここで得られたこの顧客のスコアは、データベース上に書き込まれ、例えばある特定キャンペーンに対する反応可能性スコアとして、キャンペーンに利用されることになります。スコアリング結果がセグメンテーションであれば、それぞれの顧客をモデルに通すことによって、各セグメント番号が付与され、どのセグメントに属しているかを理解できるようになります。当然ながらこれらのデータを用いてキャンペーンの対象顧客を理解することも可能でしょうし、特定セグメントの嗜好性やパフォーマンスを理解するために、更なる分析、例えばレポーティングツールやオンライン多次元分析ツールで利用することも可能となります。
■モデル/スコアの継続的改善
ここまででご紹介したプロセスを経て、最後に残るのはモデルとスコアです。スコアは多くの場合、顧客に対して付与されます。そしてモデルはスコアを導くためのボックスということになります。データのインプットがボックスを経由すると、アウトプットとしてスコアが導かれるという流れです。
一方、モデルもスコアも、ある時点でのデータを元に構築されたものです。観念的に考えれば、モデルとは現実世界において発生している事象をデータで表現するとどのようなカタチになるかを表したものであり、スコアとはモデルというフィルターを用いたときにそれぞれの顧客、または事象はどのように評価できるかを表したものです。つまり、いずれも現実世界を我々が理解するために構築され、付与されたものなのですが、問題はある特定期間における現実世界を対象として出来上がったものであるということです。そしてデータウェアハウスに対して、顧客データは毎日のように流れ込んできます。これらは自社が直面している市場の動きであり、それらは変動し続けるものです。従って、それらの変動に伴ってモデルは改善されなければならず、仮にモデルが改善しなくとも、スコアは更新されなければなりません。
スコアの更新
モデルが更新されない場合でも、スコアは更新されなければなりません。例えば、携帯電話端末のアップグレードキャンペーン案内に反応しやすい顧客を考えて見ましょう。キャンペーンに反応して携帯電話端末の買い替えに成功した場合、その顧客スコア(購買可能性スコアであるとします)は次のデータリフレッシュのタイミングで確率0、もしくは限りなく0に近い値に落ちなければなりません。モデルという観点からすると、そのように動作するモデルが必要になります。しかしながらその顧客が2年3年とその端末を使い続けることによって、またスコアは向上していくことでしょう。端末そのものが時代遅れになったり、最新機種では新たな機能が追加されていたり、そもそも同じ端末に飽きてしまっていたりと、買い替えをする気分が次第に高揚していくはずだからです。
モデルの更新
市場、もしくは市場に影響を与える社会的事象などに変化が現れれば、顧客の行動にも変化は現れます。当然ながらその変化はデータにも現れるため、それを説明する目的で構築されたモデルも変化させなければなりません。世の中の何かが一夜にして変わってしまうような断続的変化であれば、モデルそのものも見直しを迫られることになり、一方で徐々にある傾向が強まっていく(もしくは弱まっていく)ような浸透的変化であれば、モデルそのものに微調整を加えていくことになるでしょう。ただし、微調整といってもデータを元にモデルを構築しなおすため、結果として得られたモデルが、以前のモデルから少しだけ変化したに過ぎません。前者の例としては、例えばナンバーポータビリティ施行前後の離反可能性モデルが想定されます。後者の例としてはセグメンテーションモデルが挙げられます。今でこそクレジットカードの主利用シーンセグメントとして「インターネットサイトでの購入に利用」セグメントが想定できますが、このようなセグメントは10年前には考えられませんでした。しかしながらインターネットの普及率向上に伴い、このようなセグメントが徐々に明確になってきたはずであり、このセグメントを切り取るためのモデルもそれに伴って定義されてきたはずです。
そしていずれのケースにおいても、新たに作成されたモデルを利用してスコアリングを実施しなおさなければならないのは言うまでもありません。