鍵盤ハーモニカ奏者ピアノニマス公式ブログ~日本最大級の鍵盤ハーモニカ情報サイト~

鍵盤ハーモニカ奏者ピアノニマス公式ブログ~日本最大級の鍵盤ハーモニカ情報サイト~

SPSSのAprioriノードを使用したアソシエーション分析

※本記事では、話をわかりやすくするためにダミーデータを使用しています。実在の企業や商品とは一切関係ありません。

 

 

アソシエーション分析というのをはじめてやってみた。アソシエーション分析とは、「『日本酒』『ワイン』『ビール』の3種類全てを購入しているお客さんを対象に、購入しているお酒のアソシエーションルールを算出してみよう!」いった内容の分析である。

 

アソシエーションルールとはX(前提)が発生した時にY(帰結)が起こる割合が高いというルール(相関法則)のことである。

 

 

具体的には、日本酒で『辛口』というキーワードの含まれる酒を購入したユーザは、ワインでも『辛口』というキーワードの含まれるビールを選ぶ傾向にある」といった価値のある法則を指している。

 

 

今回アソシエーションルールを算出するにあたり、Aprioriアプリオリという代表的なアルゴリズムを使用した。Aprioriでは「確信度」と「サポート度」を元に、相関を定義する。

 

 

これらの「確信度」と「サポート度」はいずれも高い方が相関性があると言える。

しかし!例えば「生ビール」を選ぶ人のほぼ全員が「アルコール度数5%以上」というキーワードを選択していた場合に、全ユーザの99%が「生ビール」を選んでいたとすれば、これはルールであるとはいえない。

 

そのため、Xを空とした場合の信頼度との比率でルールどうかを見極める必要がある。このXを空とした場合の信頼度との比率を求めたものを「リフト値」といい、こちらも高い方がより関連性があると言える。もしリフト値だけが低い場合、他の商品との関連性ではなく、その商品が単独で売れている可能性の方が高い。

 

 

 

では実際にアソシエーション分析を行ってみた。

 

 

作業手順

 

 

■1:まずは下図のような感じで、お酒の商品情報(キーワード)を抽出する。(※しつこいですが、これらのデータは全て説明のためのダミーです。商品名とかノリノリで考えました)

 

 

 

■2:これらのデータをすべてトランザクション形式に整形する。

 

 

※このとき、酒種類が違うがキーワードが同じ(例「辛口」などワインにも日本酒にもあるキーワード)であるなど、重複したキーワードがあるとどの酒種類か分からなくなるため、酒種類とキーワードをconcatenateさせるのがポイントである

 

 

■3:さらにこれらのトランザクションとは別に、ユーザの購入履歴から、全酒種類を購入しているユーザを抽出する。

 

 

■4:これらの購入履歴データと先ほどのトランザクション形式に整形した商品情報と内部結合させる。

 

 

■5:作成したトランザクションデータにデータ型変換ノードを挟み、Aprioriノードと接続させる。フィールドにはそれぞれ「ユーザ名」と「キーワード」を指定。このときなるべく多くのルールを算出したい場合は、最小前提条件サポートを小さめ、最小ルール確信度も小さめに設定する。

 

 

 

 

 

 

■6:Aprioriノードを実行するとモデルが生成される

 

 

▼出力イメージ(ダミー)

 

 

 

参考文献:

http://www.itmedia.co.jp/im/articles/0504/18/news084.html