オルタナティブ・ブログ > データドリブン・マーケティング GRAFFITI >

マーケターとしてベンダーとして、一貫してデータの世界で生きてきた筆者による、思考と情報整理のためのメモ。

日常のマーケティング IT - Excel データマイニング編 その4 - クラスタリングによる異常値の発掘

»

さて今回は、「例外の強調表示」 機能を紹介する。この機能は、Excel テーブル内で、多くの行列の値が従っているルールから逸脱する行を検出するものだ。たとえば、商品販売履歴データの中から、データ入力ミスを見つけたり、まったく予想外の傾向の発生を見出したりするのに役立つのである。

Tabletools01 図1) Table Tools 内の 「例外の強調表示」機能

この機能では、SQL Server Analysis Services に搭載されている 「Microsoft クラスタリング」 アルゴリズムが使われている。このアルゴリズムは、期待値最大化 (EM: Expectation Maximization) アルゴリズムと K-Means アルゴリズムという二つの方法に基づいて、対象となるデータが、各クラスタ (グループ) にどの程度適切に納まっているか、を判断してくれる。EM アルゴリズムは、対象データがクラスタ内に存在する確率を計算する。そして K-means は、クラスタの平均値から対象データの距離を割り出す。ともに計算は一度きりではなく、作業を繰り返していくことで精度を上げていく。大きな違いは、K-Means は対象データがただ一つのクラスタに属すると仮定して計算するのに対し、EM は確率分布でクラスタを求めていくためクラスタ間に厳密な境界が存在しない点にある。これらのアルゴリズムは、前述のようなマーケティング分析の他に、テキストマイニングや画像解析などにも使われる。

では、Data Mining Add-in に付属のサンプルデータで試してみよう。Windows スタートメニューの [すべてのプログラム] - [Microsoft SQL Server 2012 データマイニング アドイン] - [Excel サンプル データ] を開き、「Table Analysis Tools Sample」 シートを選択する。このシートは 「主要な影響元の分析」 の回でも使ったものだが、いわゆる顧客情報テーブルで、既婚/未婚、性別、収入などの個人プロファイルと、その個人が Purchased Bike (自転車を買ったか買っていないか) を示すフラグが入力されている。表をクリック、「テーブル ツール」 の 「分析」 リボンにある 「例外の強調表示」 ボタンをクリックすると、同名のダイアログ ボックス (図2) が表示される。

Tbl_exception01 図2) 例外の強調表示ダイアログで分類対象列を選択

「例外を分析する列の選択」 リストではその名のとおり、強調表示をさせる列を選択する。ここではデフォルトで、「ID」 列以外のすべてが選択されている状態のまま、「実行」 ボタンを押す。すると、新しいシートに、「例外の強調表示レポート」 が作成、表示される (図3)。このシートには、例外のしきい値を変更できるボタンがついており、この値を大きくすると条件が厳しくなるため例外数が減少、逆にすると例外数が増えることになる。そして、どの列にどれぐらい例外が発生しているかは、その下の表に表示される。

Tbl_exception02 図3) インタラクティブな例外レポート

デフォルトのしきい値は75だが、その状態では例外が 34 個発見されている。ここでしきい値を上げて、もう少し例外を絞り込んでみよう。しきい値の横にあるボタンを使って、値を 90 まで上げてみる。すると、34 個あった例外が 7 個に減る (図4)。

Tbl_exception03 (図4) しきい値の変更で例外度合いを調整

ここで 「Table Analysis Tools Sample」 シートに戻ってみよう。例外の値を持つ行は黄色でハイライトされる。たとえば 597 行目が黄色に変わっているのがわかる。さらにその行でひときわ明るい黄色になっているセルが、例外の値を持つ列である (図5)。「Cars」 すなわち自動車保有台数が "0" であることが例外的であるようだ。

Tbl_exception04 図5) 例外が強調表示された元データ

アルゴリズムを使い、ID 以外のすべての列を属性としてグループ化、そのパターンから外れる行を例外として強調表示するのがこの機能であるが、行列の数が多いので、どんなクラスタが作られたかをこのシートだけで把握するのは困難である (だからこそデータマイニングしているわけだが)。直接マイニング モデルを覗いてみるというハイレベルな手もあるが、ここではシートを別な方法で分析して推測してみよう。

分析の結果は、この行の各列の値を持っている人が自動車保有台数 0 なのはおかしいだろう、といっているわけだから、逆に 「このようなタイプの人」 は Cars が "0" になっていない、はずである。ではこのようなタイプの人とはどんな人だろうか。

「Cars」 以外のすべての列が同一の値をとるようにフィルターをかけてしまうと、さすがにサンプル数がかなり減ってしまうはずだから、「Cars」 の値に最も影響を与えそうな列だけに絞り込んでフィルターをかけ、似通った行をよりわけてみよう。さて、こんなとき便利な機能があったはずだ。そう、初回に紹介した、「主要な影響元の分析」 機能 (図6) である。

Tbl_exception05 図6) 主要な影響元の分析の結果と比較してみる

「Table Analysis Tools Sample」 で主要な影響元の分析機能を起動、「主要因を分析する列の選択」 で "Cars" を選び、分析を実行してみよう。表示されるレポートでさらに、「相対的影響」 の上位 5 つ程度でフィルターして、「列」 を昇順に並び替えてみると、「Cars」 列は全般に 「Education」、「Commute Distance」、「Income」、「Children」、「Occupation」 あたりからの影響度が強そうなことがわかる (図7)。

Tbl_exception06 図7) Cars に強く影響を与える列を特定

先ほどの 597 行目、「Education」 は "Partial College"、「Commute Distance」 は "5-10 Miles"、「Income」 は "70000"、「Children」 は "2"、「Occupation」 は "Professional" である。まず 「Cars」 を "0" でフィルターしたうえで、これらの値を使って順にフィルターをかけていくと、2 番目の Commute Distance をフィルターした時点で 2 件に絞り込まれ (図8)、Income を絞り込むともうこの行以外には Cars が "0" をとる行はなくなる。つまり、これらの属性をもつ人のグループの中で、自動車保有台数が 0 であることは、本当に例外的なのであることがわかるのである。

Tbl_exception07 図8) 本来の影響パターンと異なる行が他にないことがわかる

このように 「例外の強調表示」 機能では、膨大なデータの中から例外的な値を簡単に見つけ出すことができる。もちろん例外は例外でしかなく、このデータを見ただけでは、新発見なのかエラーなのかはわからない。しかし、先の例のように他の分析手法と組み合わせることで、この例外が新たな傾向の始まり、すなわちビジネスチャンスを示すものなのかどうかを見極めることができる可能性も出てくる。一般的なグラフ解析を含むデータ分析手法の多くは、「このデータはこういうことを示しているのではないだろうか?」 という仮説をもとに法則性を見つけるものだが、この仮説を立てる作業はある程度の経験や熟練が求められる。この 「例外の強調表示」 機能をはじめとするデータマイニング機能は、膨大なデータの中からその仮説を機械的に見つけ出すことで、分析の観点を与えてくれるのだ。今回のサンプルは、このようなデータマイニング機能が、Excel から直接、専門知識を必要とせずに簡単に使える、ということがどれほど画期的なことなのか、お分かりいただけるいい例だと思う。この Data Mining Add-in for Office は、データ分析市場の裾野を革新的に拡大する能力を持ったツールなのである。

@hirokome on Twitter

Comment(0)