日常のマーケティング IT - Excel データマイニング編 その 2 - ベイズ定理を使った意思決定要因の分析
前回セットアップした Data Mining Add-in と Excel を使って、今回から数回にわたって、アドインに含まれるツール群からまずは Table Analysis Tools for Excel について解説していく。このツールはその名の通り、Excel のテーブル (表) データに対してマイニング操作を行うものだが、複雑なパラメーター設定が不要で、マイニングの知識がなくても簡単に、直感的に分析できる設計になっている。
図1) サーバーを意識する必要のない Excel データマイニング ツール
Table Analysis Tools には以下のような8つの機能が用意されている:
- 『主要な影響元の分析』 ・・・ 指定の列の値が他の列の値からどのような影響を受けているかを特定。アルゴリズムには 「Microsoft Naïve Bayes」 を使用。
- 『カテゴリの検出』 ・・・ 類似の属性を持つ行をグループ化。アルゴリズムには 「Microsoft クラスタリング」 を使用。
- 『例の全体適用』 ・・・ データのパターンに応じて欠損値を類推。アルゴリズムには 「Microsoft ロジスティック回帰」 を使用。
- 『予測』 ・・・ 将来の値の推移を予測。アルゴリズムには 「Microsoft タイムシリーズ」 を使用。
- 『例外の強調表示』 ・・・ データのパターンから外れる値を特定。アルゴリズムには 「Microsoft クラスタリング」 を使用。
- 『シナリオ分析』 ・・・ ある値の変化と他の値の変化のパターンを類推。アルゴリズムには 「Microsoft ロジスティック回帰」 を使用。結果を固定して適切な投入データを探る 「ゴールシーク」 と、投入データを入力することで結果を探る 「What-if」 がある。
- 『予測計算』 ・・・ ある結果をもたらす要因を分析、対話型のワークシートを生成して、要因のパラメーターを変えることでどのような結果がもたらされるかをシナリオ分析できる。アルゴリズムには 「Microsoft ロジスティック回帰」 を使用。
- 『買い物かご分析』 ・・・ 原因と結果のセットを特定し、レポートを生成。アルゴリズムには 「Microsoft アソシエーション ルール」 を使用。マーケット バスケット分析をはじめとする、同時発生イベントや因果関係の特定が可能。
このうち、1、4、5 は分析方法も結果の利用も直観的でわかりやすいので、頻繁に利用できる。その他のツールは、ペルソナ開発やプランニングなどにも便利だろう。
ベイズ定理を応用した意思決定要因分析
今回はまず 1 の 「主要な影響元の分析」 機能についてみてみよう。この機能は、指定した列の値が、他の列の値からどのような影響を与えられているのかを特定するものだ。たとえば、Data Mining Add-in に付属のサンプルデータには、年齢や性別、地域などの属性を持つ顧客リストの最後の列に、その顧客が特定の製品を買ったかどうかのフラグが立っているテーブルがある。この分析手法を使えば、その製品の購入/不購入に対して、年齢や性別、地域などの他の属性がそれぞれどの程度影響を与えているか、を推定することができる。
この機能では、SQL Server Analysis Services に搭載されている 「Microsoft Naïve Bayes」 (ナイーブ ベイズ) アルゴリズムが使われている。このアルゴリズムは、「ベイズ定理」 を用い、分析対象列と他の列との関連性を確率として求め、判別する。ベイズ定理とはごく簡単に言うと、ある事象Bが発生した下である事象Aが発生する確率 (=事後確率) を、事象Aの下での事象Bの発生確率 (=事前確率) に変換できる、というものだ。
P(A|B) = P(B|A) * P(A) / P(B)
と表され、特に膨大なパターン数の事象の下での判別に効果を発揮する。身近な例では、スパムメールを判別するための 「ベイジアン フィルター」 に使われている。スパムメールのフィルターは、初期には特定のキーワードやアドレスをブロックする方法をとっていたが、これではユーザーが常に辞書をアップデートしなければならないし、伏せ字やアドレス偽装などには弱い。ベイジアン フィルターは、ユーザーが手動でスパム判定 (B) していくと、そのメールのヘッダー構造や含まれる文字列などが持つ特徴的なパターン (A) を学習する。以後は、同じ特徴を持つメール (A) がスパムと判定される (B) ようになるわけだ。なお、「ナイーブ」 とは 「単純な」 という意味で、各列間に相関関係が無いと仮定することで計算を単純化 (高速化) している。
では試してみよう
Data Mining Add-in に付属のサンプルデータで試してみよう。Windowsスタートメニューの [すべてのプログラム] - [Microsoft SQL Server 2010 データ マイニング アドイン] - [Excel サンプル データ] を開き、「Table Analysis Tools Sample」 シートを選択する。このシートはいわゆる顧客情報テーブルで、既婚/未婚、性別、収入などの個人プロファイルと、その個人がPurchased Bike (自転車を買ったか買っていないか) を示すフラグが入っている。CRM のアカウント属性テーブルの最後に、分析したい製品の購入の有無を列として追加したようなものである。
Purchased Bike を分析対象列とし、個人の様々な属性が、自転車の購買動向に対して、どのような影響を与えるのか調べてみよう。表のどこかをクリックすると、リボンに 「テーブル ツール」 が表示される。「テーブル ツール」 の下の 「分析」 タブにある 「主要な影響元の分析」 ボタンをクリックすると、同名のダイアログ ボックスが表示される (図2)。なお、「分析に使用する列の選択 (H)」 をクリックして影響元の列を取捨選択できるが、今回明らかに意思決定と無関係なのは ID 列ぐらいなので無視して構わない。列間の依存関係は分析しないので、無駄な列があってもパフォーマンスとレポートの行数に影響を与えるだけだ。
「主要因を分析する列の選択」 リストから分析対象として 「Purchased Bike」 を選択、「実行」 ボタンを押すと、このテーブルの情報が SQL Server に渡され分析が始まる。分析が成功すると自動的にレポートが作成され、「主要な影響元に基づいた識別」 ダイアログが表示される。すでに作成済みのレポートには、分析対象列に影響度が高い列を、影響度の高さと分析対象列の値でソートし、縦一列に並べているが、このダイアログを使うことで、分析対象列の値二つを比較しながらソートされるようになるため、値が変化する要因を推測することが容易になる。「比較元の値 1」 に 'No'、「比較先の値 2」 に 'Yes' を指定し 「レポートの追加」 ボタンを押すと、新たな表が下に追加され、レポート (図3) が完成する。
レポート上段の表の 「優先」 列は Purchased Bike 列の値を示している。この例では、1 行目は「Purchased Bike」 列が 'No' になる可能性が最も高いのは、「Cars」 列の値が '2' の場合である、ことを示している。レポート下段の表は上段を影響度の大きなものから順に並べ変えたものだが、「Purchased Bike」 列の値が 'No' のものを 'Yes' に変えるには、Cars を '2' から '0' に変えればいい、ということが読み取れる。分析対象列の値の種類が多い場合には上段の表が縦に長くなってしまうため、この下段の表のほうが断然見やすい。
このように、「主要な影響元の分析」 はシンプルかつ強力な分類機能を提供してくれる。CRM データを使った購買動向分析や、購入者アンケートに基づくキャンペーン計画など、膨大な数の (相互の相関性の低い) 属性を持つような大量のデータから規則性を推測する際に大変便利なのである。
@hirokome on Twitter