datamining 9th association_rule.key

16
データマイニング 相関ルール 瀬々 潤 [email protected]

Upload: sesejun

Post on 11-Jun-2015

964 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Datamining 9th association_rule.key

データマイニング相関ルール

瀬々 潤[email protected]

Page 2: Datamining 9th association_rule.key

相関ルール (Association Rule)• パソコンを買った人は,ウイルス駆除ソフトを買う

• どのPCにもウイルス駆除ソフトは入れないとね• ゲーム機を買った人は,HDDプレーヤーを買う

• 機械に対する興味が高い人,でしょうか• 30代で年収500万以上の人は,大型テレビを買う

• 生活に多少余裕がある?• 条件部が「30代」と「年収500万以上」の2つが複合していることに注意

• 遺伝子ALDHに変異のある人は,お酒に弱い

• 相関ルール:A ならば B の形で表されるルール.Aは何かの複合条件(A=C∧Dなど)で表される場合もある.

2

Page 3: Datamining 9th association_rule.key

マーケットバスケット分析• Market Basket Analysis 

• Frequent Pattern Mining とも呼ばれる• 何を同時に買うか?

牛乳 パンコーンフレーク

客1

牛乳 パン

砂糖客2

牛乳パン

客3

バター砂糖 卵

客43

Page 4: Datamining 9th association_rule.key

サポートと確信度• 相関ルールの表し方例

• パソコン⇒ウイルス駆除ソフト [サポート=2%, 確信度=60%]

• A⇒B

• A: 前提部(antecedent), B: 結論部(consequent)

• サポート(support)• 全トランザクション中で,AもBも満たすトランザクションの割合

• 全購入者中「パソコン」と「ウイルス駆除ソフト」を同時に購入している人の割合

• 確信度(confidence)• Aを満たすトランザクションの内,Bを満たすトランザクションの割合

• 「パソコン」を購入している人の内「ウイルス駆除ソフト」を買う人の割合

4

Page 5: Datamining 9th association_rule.key

定義(1/2)• アイテム(商品)の集合:

• データベースDはトランザクションTの集合.

• 各トランザクションTはアイテムの集合:

• トランザクションTがAを含むとは,   が成立すること.逆も真.

• アイテムの集合はitemsetと呼ばれる.

• あるitemsetがk個のアイテムを含む時,k-itemsetと呼ばれる

I = {I1, I2, ..., Im}

T ⊆ I

A ⊆ T

TID itemのリストT100 I1, I2, I5T200 I2, I4T300 I2, I4T400 I1, I2, I4T500 I1, I3T600 I2, I3T700 I1, I3T800 I1, I2, I3, I5T900 I1, I2, I3

I = {I1, I2, I3, I4, I5}T100 : {I1, I2, I5}

5

Page 6: Datamining 9th association_rule.key

定義(2/2)• 相関ルール    は,次の条件を満たす:

•     のサポートと確信度は次のように表せる.support(A⇒ B) = P (A ∪B)

confidence(A⇒ B) = P (B | A)

confidence(A⇒ B) = P (B | A) =support(A ∪B)

support(A)=

support count(A ∪B)support count(A)

A⇒ BA ⊂ I, B ⊂ I, A ∩B = φ

A⇒ B

• 確信度は次のように,サポートで計算できる

A = {I1} B = {I2} A ∪B = {I1, I2}, ,

P (A ∪B) = 4/9 P (B | A) = 4/6

TID itemのリストT100 I1, I2, I5T200 I2, I4T300 I2, I4T400 I1, I2, I4T500 I1, I3T600 I2, I3T700 I1, I3T800 I1, I2, I3, I5T900 I1, I2, I3

6

Page 7: Datamining 9th association_rule.key

興味深い相関ルール• サポートと確信度が高いルール• サポートの高い A ∪ B が見つかれば,そのサポートからA⇒B,

B⇒Aの確信度はすぐに計算可能.そして,良い相関ルールかどうかを判断できる• つまり,確信度ではなく,サポートの計算だけを考える

• あるサポート(min_sup)以上を持つ相関ルールを全て見つけよう• min_sup回以上現れるitemsetを見つける

• 何通りのitemsetがある?1. itemの数が100個なら,単純に考えて2^100-1通り2. もし,9-itemset {a1, a2, .., a9}が min_sup 以上現れるなら,{a1}

や{a2}や{a1,a2}や{a1, a9}や{a1, a2, a3} ... もmin_sup 以上現れる• 膨大な数のitemsetが現れないだろうか?列挙が大変.

7

Page 8: Datamining 9th association_rule.key

データへのアクセスの時間• 必ずしも、計算量の議論では反映されない• データはディスクから取り出してメモリの上に配置して計算を始める

• 大きなデータ、あるいは広い探索空間を扱うと、扱うデータや計算結果がメモリの上に乗らなくなる

• メインメモリアクセスのスピード>>ハードディスクアクセスのスピード

• メインメモリの容量<<ハードディスクの容量• メモリも安くなっているが、ハードディスクは劇的に安くなっている

• メインメモリは高速にランダムアクセスが可能• ハードディスクはランダムアクセスが苦手

• 円盤の上にデータが書かれている• シークエンシャル(連続した)アクセスは得意

• できるだけ、ディスクにアクセスすることなく、メモリ上のデータで計算をしたい 8

Page 9: Datamining 9th association_rule.key

Apriori: Overview-1• 効率良くmin_sup 以上のitemsetを探索する方法

• Agrawal & Srikant 1994 • データはデータベースに入り,数億トランザクションある状況を考える(メモリにはトランザクションが乗らない状況)

• 例として min_sup = 2の場合を考える.TID itemのリストT100 I1, I2, I5T200 I2, I4T300 I2, I4T400 I1, I2, I4T500 I1, I3T600 I2, I3T700 I1, I3T800 I1, I2, I3, I5T900 I1, I2, I3

1. データベースD全体を一度スキャンし,1-itemset の数を数える

Itemset Sup. count{I1} 6{I2} 7{I3} 6{I4} 2{I5} 2

C1

9

Page 10: Datamining 9th association_rule.key

Apriori: Overview-22. min_supより小さいItemsetを削る3. 残ったk-itemsetから,(k+1)-itemsetを作成する

Itemset Sup. count

{I1} 6{I2} 7{I3} 6{I4} 2{I5} 2

L1

Itemset Sup. count

{I1} 6{I2} 7{I3} 6{I4} 2{I5} 2

Itemset

{I1,I2}{I1,I3}{I1, I4}{I1, I5}{I2, I3}{I2, I4}{I2, I5}{I3, I4}{I3, I5}{I4, I5}

C1C2

10

Page 11: Datamining 9th association_rule.key

Apriori: Overview-34. データベースをスキャンして,各Itemsetの現れる数を数える

• DBのスキャンでは、HDDにアクセスする必要あり• スキャンはシークエンシャルなアクセスで済むようにする

5. min_supより小さいものを削る.残りのitemsetが空集合なら終了

Itemset

{I1,I2}{I1,I3}{I1, I4}{I1, I5}{I2, I3}{I2, I4}{I2, I5}{I3, I4}{I3, I5}{I4, I5}

Itemset Sup. Count

{I1,I2} 4{I1,I3} 4{I1, I4} 1{I1, I5} 2{I2, I3} 4{I2, I4} 2{I2, I5} 2{I3, I4} 0{I3, I5} 1{I4, I5} 0

C2 L2

Itemset Sup. Count

{I1,I2} 4{I1,I3} 4{I1, I5} 2{I2, I3} 4{I2, I4} 2{I2, I5} 2

11

Page 12: Datamining 9th association_rule.key

Apriori: Overview-4• L1, L2, L3 が全て min_sup 以上のitemset

• L1からC2, L2からC3, L3からC4 は簡単に求まるのだろうか?

L2

Itemset Sup. Count

{I1,I2} 4{I1,I3} 4{I1, I5} 2{I2, I3} 4{I2, I4} 2{I2, I5} 2

Itemset

{I1,I2, I3}{I1,I2, I5}

Itemset Sup. Count

{I1,I2, I3} 2{I1,I2, I5} 2

C3 L3

C4

Itemset

12

Page 13: Datamining 9th association_rule.key

Apriori

• 赤の×は,DBをスキャンした後,min_supを越えていないので削除されたitemset

• 緑の×は,k-itemsetをスキャンして該当するitemset

が無いので削られたitemset

{I1} {I2} {I3} {I4} {I5}

{I1, I2} {I1,I3} {I1, I4} {I2, I3} {I2,I5}{I2, I4} {I3,I4}{I1, I5} {I3,I5}

6 7 6 2 2

4 4 1 2 4 2{I4,I5}

2 0 1 0

{I1, I2, I3} {I1, I2, I5} {I1, I3, I5} {I2, I3, I4} {I2, I3, I5}2 2

{I1, I2, I3, I5}

{}

13

Page 14: Datamining 9th association_rule.key

Apriori: Pruning Phase• k-itemsetから(k+1)-itemsetを作成する方法は複数通り存在するが,

itemsetの前側 k-1 itemが一致する2つから(k+1)-itemsetを作成する• {I1, I2}, {I1,I3}は I1が一致するので{I1, I2, I3}• {I1, I2, I3}, {I1, I2, I5}はI1,I2が一致するので {I1, I2, I3, I5}

• 作成した(k+1)-itemsetのサブセットとなる全てのk-itemset({I1, I2, I3}なら,{I1, I2}, {I1, I3}, {I2, I3})がk-itemsetの集合に存在するかを調べる.• 存在しないものがあれば,枝刈りができる• {I1, I3, I5}なら,{I3, I5}が刈られているので,{I1, I3, I5}もmin_sup以上になることはない

{I1, I2} {I1,I3} {I1, I4} {I2, I3} {I2,I5}{I2, I4} {I3,I4}{I1, I5} {I3,I5} {I4,I5}

{I1, I2, I3} {I1, I2, I5} {I1, I3, I5} {I2, I3, I4} {I2, I3, I5}

4 4 1 2 4 2 2 0 1 014

Page 15: Datamining 9th association_rule.key

DIC • 1-itemsetをスキャンしている途中でも,2-itemsetのスキャンを始める• 例えば{I2}と{I4}がmin_supを越えたら

{12,14}の探索も始める. {12,I4}もmin_supを越える候補のため

• 全体として,DBをスキャンする回数を減らす

TID itemのリストT100 I1, I2, I5T200 I2, I4T300 I2, I4T400 I1, I2, I4T500 I1, I3T600 I2, I3T700 I1, I3T800 I1, I2, I3, I5T900 I1, I2, I3

Apriori DIC

1-itemset

2-itemset

3-itemset

1-itemset

2-itemset

3-itemset

S. Brin, R. Motowani, J. Ullman, and S. Tsur. 1997

15

Page 16: Datamining 9th association_rule.key

その他の相関ルール• 高速に解く

• Hashを利用する• (k+1)-itemset作成時のk-itemsetのスキャンを早く行う

• 並列化する• 複数のPCに分割して解く

• Heapの様な構造を利用して,itemsetの候補作成を避ける• FP-tree (J.Han, J. Pei and Y. Yin. 2000) 

• サポート,確信度の指標で良いのか?• 指標が単純なので,相関の無い属性も取られることがある

• 統計的な指標の利用

• S.Brin, R. Motwani and C. Silverstein. 1997• S. Morishita and J. Sese. 2000

16