25
バスケット分析 相関マイニング - 技術編 - Karubi Namuru Sep 26th, 2010

相関マイニング(バスケット分析)

Embed Size (px)

Citation preview

Page 1: 相関マイニング(バスケット分析)

バスケット分析相関マイニング - 技術編 -

Karubi NamuruSep 26th, 2010

Page 2: 相関マイニング(バスケット分析)

自己紹介

● Karubi Namuru● 博士(理学)● Twitter: @karubi● Facebook:

http://facebook.com/karubi● 出身:広島 , 居住:東京 , Seongnam

Page 3: 相関マイニング(バスケット分析)

今日の内容

● バスケット分析とはなにか● どのようなときに有効か● どのように分析しているのか● 基本的な手順

● アプリオリアルゴリズム● FPGrowth

Page 4: 相関マイニング(バスケット分析)

バスケット分析とはなにか

● 顧客が購入するものについて,「一緒に買われる商品」の組み合わせを発見するための分析● 顧客はさまざまな時間に,さまざまな量の,さまざまな商

品を組み合わせて購入する● アソシエーションルール

● データの傾向● 大量に蓄積している POS データや EC サイトのトランザ

クションデータを使う

Page 5: 相関マイニング(バスケット分析)

どのようなときに有効か

● たとえば,おむつを買う顧客は同時にビールも買う● 併売商品の選定● 商品陳列レイアウト

– 両方の商材を近くに陳列しておくほうが顧客ニーズを満たす

– 両方の商材をあえて離して陳列して,店舗内の回遊をうながす

● などなど

Page 6: 相関マイニング(バスケット分析)

どのように分析しているのか

● データの3つのレベル● 顧客● アイテムセット● 品目

Page 7: 相関マイニング(バスケット分析)

どのように分析しているのか

デジタルカメラと液晶を保護するためのシートを購入する顧客は,メモリカードも一緒に買う傾向がある

{デジタルカメラ,液晶保護シート}⇒{メモリカード}

{ X }⇒{ Y }

Page 8: 相関マイニング(バスケット分析)

基本的な手順

● 全アイテムから全てのルールを洗い出す● 全アイテムからk個を選ぶ● この全通りについて,意味のあるルールを見つける

● このアイテムの各々が前提にくるか,結論にくるかで分け方が変わる

● 全アイテムが前提に集まる場合と,全アイテムが結論に集まる場合はルールにならないので排除する

Page 9: 相関マイニング(バスケット分析)

価値のあるルール

● a 種類のアイテムにおいて存在するルールの数

● a 個のなかから b 個を選ぶ方法● b 個について,各々が前提になるか,または結論になるかのわけ

方● 全部が前提に集まるか,または結論に集まる場合についてはルー

ルにならないので排除する

∑b=2

a

ab 2b−2

ab

2b

2b−2

Page 10: 相関マイニング(バスケット分析)

価値のあるルール 続

● 価値のあるルールの数:わずかな数● 価値のないルールの数:多数(取るにたらない,説明不能)

→  効率よく探す必要がある

Page 11: 相関マイニング(バスケット分析)

ある食料品店の例

● 以下のような POS トランザクションがある

顧客 アイテム1 オレンジジュース,炭酸飲料2 牛乳,オレンジジュース,ガラスクリーナー3 オレンジジュース,洗剤4 オレンジジュース,洗剤,炭酸飲料5 ガラスクリーナー,炭酸飲料

Page 12: 相関マイニング(バスケット分析)

ある食料品店の例

● 商品が同時に購入された数をかぞえてみる

オレンジジュース

ガラスクリーナ

牛乳 炭酸飲料 洗剤

オレンジジュース

4

ガラスクリーナ

1 2

牛乳 1 1 1炭酸飲料 2 1 0 3洗剤 1 0 0 1 2

Page 13: 相関マイニング(バスケット分析)

ある食料品店の例

● オレンジジュースと炭酸飲料は,他の 2 アイテムよりも一緒に買われやすい

● 洗剤はガラスクリーナや牛乳とは一緒に買われない● 牛乳は炭酸飲料や洗剤とは一緒に買われない

Page 14: 相関マイニング(バスケット分析)

ある食料品店の例

● 意味のあるルールかどうか● 5つのトランザクションのうち,2つで炭酸飲料とオレン

ジジュースが一緒に出てくる

→ この2つのトランザクションがルールを支援しているsupport = 2/5 (40%)

● 炭酸飲料を含む3つのトランザクションのうち,2つがオレンジジュースをふくんでいる

→ 炭酸飲料を買えば,オレンジジュースも買うconfidence = 2/3(66.6%)

Page 15: 相関マイニング(バスケット分析)

ある食料品店の例

● 意味のあるルールかどうか

→   confidence と support が大きいルール

Page 16: 相関マイニング(バスケット分析)

ある食料品店の例

● 炭酸飲料の購買を前提とした場合としない場合の,オレンジジュースが出現する倍率● 炭酸飲料とオレンジジュースを同時に購入するトランザク

ションは2つ● オレンジジュースを含むトランザクションは4つ

– リフト値  2/4 ( 0.5 )– リフト値が1より大きい場合は,結果を前提としてほう

が割合が出現割合が大きくなる

Page 17: 相関マイニング(バスケット分析)

アプリオリアルゴリズム

● それぞれ,最小 confidence と,最小 support のふたつを与えて,各々のアイテムセットについて,与えられた最小conficende と,最小 support より,それぞれの値が大きいアソシエーションルールを発見する方法

support X ∪Y αsupport X ∪Y / support X β

Page 18: 相関マイニング(バスケット分析)

アプリオリアルゴリズム

1.  support ( X ∪ Y ) > α を満たすアイテムセットをすべて探し出し,それぞれのサポートを計算する

2.  support ( X ∪ Y ) / support ( X ) > β を満たすルールをさがす

Page 19: 相関マイニング(バスケット分析)

アプリオリアルゴリズム

● 全アイテムのサポートを求める● 各アイテムセットのサポートを求める

{1, 2}, {1, 3}, {1, 4}, {1, 5}, {2, 3}, {2, 4}, {2, 5}, {3, 4}{3, 5}, {4, 5}

● {2, 4} は 0.66

 

{1,3,4}

{2,4,5}

{2,4,6}

Page 20: 相関マイニング(バスケット分析)

FPGrowth アルゴリズム

● アプリオリアルゴリズムの効率を改善するアルゴリズム● アプリオリアルゴリズムは全通りについて計算をする必要が

あったが, FPGrowth は FP-Tree という木構造に圧縮して, FP-Tree からルールを抽出する.

● FP-Growth は途中経過に候補となるアイテムセットを生成しないため,アイテムセット全体を対象に計算することを抑えることができる.

→ つまり,アプリオリより高速にアソシエーションルールを抽出することができる.

Page 21: 相関マイニング(バスケット分析)

FPGrowth アルゴリズム

● データ全体から全てのアイテムセットの support を計算● 頻出ではないアイテムセットを削除● F をサポートの降順にソートする● データベースをスキャンして, FP-Tree を作る

● ルートのラベルは null● 各ノードは(アイテム名, Count ,次のリンク)● ヘッダテーブルは(アイテム名,ノードとのリンク)

Page 22: 相関マイニング(バスケット分析)

FPGrowth アルゴリズム

サポート降順に  {4,2,1,3,5,6}

{1,3,4}

{2,4,5}

{2,4,6}

4

2

1

3

5

6

root

4

1

3

2

5 6

Page 23: 相関マイニング(バスケット分析)

FPGrowth アルゴリズム

● Conditional Pattern Base に分割● 3 を含む集合● 1 を含んで3を含まない集合● 4を含んで,1と3を含まない集合

4

2

1

3

5

6

root

4

1

3

2

5 6

Page 24: 相関マイニング(バスケット分析)

Mahout

PFPGrowth Parallel FP Growth Driver Class.

ParallelFPGrowthCombiner takes each group of dependent transactions and compacts it in a TransactionTree structure

ParallelFPGrowthMapper maps each transaction to all unique items groups in the transaction.

ParallelFPGrowthReducer takes each group of transactions and runs Vanilla FPGrowth on it and outputs the the Top K frequent Patterns for each group.

Page 25: 相関マイニング(バスケット分析)

まとめ

● バスケット分析の概要● アルゴリズム

● アプリオリ● FP-Growth

● ご質問は@karubi or [email protected] まで