わかりやすい Association Rule

GMOアドマーケティングのT.Cです。

Association Ruleとは?

Association Ruleは相関性を持つデータを探す法則で、アメリカのwalmartの話が有名です。
walmartではAssociation Ruleを利用してビールがおむつと相関性を持っていることをみつけました。
詳しく調べてみると、家庭に赤ちゃんがいるサラリーマンは帰り道にスーパーでビールを買いながらおむつも一緒に買う人が多いということを把握し、ビールとおむつを並べて陣列することで売上を向上させることができたという話です。

もう少し具体的にみてみます。

これは、あるスーパーの一日の販売記録で、お客の買い物かごをあらわしています。
目でみてもすぐわかりますが、ビールを買う人はおむつも一緒に買うことがわかります。
ビールを買った4人のお客の中で3人がおむつを買ったので、ビールとおむつは相関性があると考えられます。上記のようなデータの中にある法則を代入し、ビールとおむつのようなデータを探し出すのがAssociation Ruleです。

Association Ruleの3つの法則

Association Ruleの3つの法則を説明する前に用語を1つだけ先に説明します。
Association Ruleでは1つの処理対象である購入者Aの買い物かごをTransactionと呼びます。

では、Association Ruleの法則について説明します。
Association Ruleの法則は代表的なものとして以下の3つのルールがあります。

・支持度(support): 支持されている商品なのか?
全体のデータの中の商品の出現回数(=支持度)をカウントして、出現回数(=支持度)が最低支持度より少ない商品は処理対象から除外する
計算式: Transaction数 * minSupport(= プログラマーが決める数値) = 最低支持度(=最低出現回数)

・信頼度(confidence): 商品Aを買ったら商品Bを買う確率は?
商品Aを買ったら商品Bを買う確率が最低信頼度(= プログラマーが決める数値)より低い商品らは除外する
計算式: 商品Aと商品Bを一緒に買った回数 / 商品Aの出現回数 = 信頼度

・向上度(lift): 商品Aと商品Bの相関関係は?
商品Aと商品Bの相関性が1以下なら除外する
計算式: 商品Aと商品Bを一緒に買った回数 / 商品Bの出現回数 / 商品Aの出現回数 * Transaction数 = lift

もっと理解をしやすくするために、実際の例をみながら説明します。

支持度

購入者10人の買い物かごを分析してみます。まず、支持度ルールを検査するために必要な最低支持度を4だと仮定してみていきます。買い物かごの中の商品ごとの出現回数をカウントし、最低支持度(4)でFilteringすると水・パン・牛乳が条件を満たします。(最低支持度の計算式: Transaction数(購入者数: 10) * minSupport(プログラマーが決める数値: 0.4) = 4)

以下の購入者の買い物かごは、最低支持度を満たした水・パン・牛乳のみを残した買い物かごになります。Association Ruleはデータ同士の相関関係をもつデータを探すものなので、計算量を減らすために最低支持度を満たさない商品を除外した購入者の買い物かごから商品の組み合わせを作り、出現回数をカウントし、最低支持度を満たす商品の組み合わせのみを探します。

信頼度

信頼度ルールを検査するために必要な最低信頼度を0.6だと仮定してみていきます。水とパンの信頼度は、水とパンを一緒に買った回数(4) / 水の支持度で計算できます。結果は0.5ですが、意味としては水を買うと50%の確率でパンを買うということで、最低信頼度を0.6にしているので、水とパンは除外します。水とパンと同じ方法で他の商品の組み合わせの信頼度を計算すると、パンと水・牛乳, 牛乳と水・パンになります。

向上度

向上度のチェックは商品同士に正の相関関係を持っているかをチェックします。牛乳と水の向上度は牛乳と水を一緒に買った回数(4) / 水の支持度(8) / 牛乳の支持度(6) * Transaction数(10)で計算できます。牛乳と水の向上度は0.83で、負の相関関係なので除外されます。牛乳と水と同じく他の商品の組み合わせの向上度を計算すると、パンと牛乳 / 牛乳とパンが残ります。

最後に、向上度ではどのような商品が除外されるかを説明します。
例として、支持度と信頼度の法則までは満たしても、向上度は満たしていないパンと水をみてみます。パンと水が正の相関関係になるには、水を買う人が多くなっていくとパンを買う人も増えなければいけません。しかし、以下の買い物かごをみるとパンを買ってない人でも水を買っている人が多くいます。つまり、水を買う人が増えてもパンを買う人が増えていくわけではないという意味で、向上度ではこのようなデータをチェックすることができます。

Assocation Ruleでみつけたデータはどう活用するか?

例えば、今回のパンと牛乳で説明すると、パンと牛乳を並べて陣列する、パンのコーナーでオススメやsaleしている牛乳を紹介する、などの売上を向上させられる販売戦略を立てることができると思います。

おわりに

なるべくわかりやすく説明するために、果敢にスキップできそうなところはスキップ(= FP-Growthとか、実際には商品の組み合わせに2以上の組み合わせもあるとか)しましたが、これを読むことでAssociation Ruleがどんなものかをより早く把握できると思います。