frequency pattern mining

26
Frequency Pattern Mining Karubi Namuru Nov. 14, 2010

Upload: katsuhiro-takata

Post on 18-Dec-2014

11.355 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Frequency Pattern Mining

Frequency Pattern Mining

Karubi NamuruNov. 14, 2010

Page 2: Frequency Pattern Mining

自己紹介

● Karubi Namuru, Ph.D. ● Kauli 株式会社● Twitter: @karubi● Facebook: http://facebook.com/karubi● 出身:広島 , 居住:東京 , Seongnam

Page 3: Frequency Pattern Mining

Frequency Pattern Mining

● 頻出パターンマイニング● データの集合から,出現頻度の高い特徴的なパターンを発見する● → 頻出パターンの抽出

Page 4: Frequency Pattern Mining

代表的な頻出パターンマイニング

● 相関ルール抽出● たとえば,データベースに蓄積した大量のデータから,頻繁に,かつ,同時に,発生する事象を見つけること.

● 同時に発生する事象を,相関の強い関係としてルートとして抽出

● バスケット分析– POS データや EC などで取得できるトランザクションから購買履歴を分析

Page 5: Frequency Pattern Mining

バスケット分析

● 購買履歴から「一緒に買われる商品」という特徴的なパターンを発見する● 併売商品の発見

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

● 商品陳列レイアウト– おむつを買う顧客は同時にビールも買うなら両

方の商材を近くに陳列しておく

Page 6: Frequency Pattern Mining

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

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

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

{ X }⇒{ Y }

Page 7: Frequency Pattern Mining

基本の手順

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

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

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

Page 8: Frequency Pattern Mining

実際の計算方法

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

● たとえば 10 種類の場合,ルールの総数: 57000 弱

● 価値のあるルールの数:わずかな数

∑k=2

m

ab 2m−2

Page 9: Frequency Pattern Mining

アプリオリアルゴリズム

● 確信度,サポートという 2 つの指標を導入する

● それぞれ,最小確信度と,最小サポートのふたつを与える

● 確信度,サポートとも最小より大きいルールを発見する方法

Page 10: Frequency Pattern Mining

FPGrowth アルゴリズム

● アプリオリアルゴリズムの効率を改善するアルゴリズム

● アプリオリアルゴリズムは頻出アイテムセットを抽出する必要があったが, FPGrowth は FP-Tree という木構造にトランザクションを圧縮して, FP-Tree から頻出アイテムセットを抽出する.

● FP-Growth は候補パターンを生成しないため,データセットのスキャン回数を抑えることができる.つまり,アプリオリより高速に頻出アイテムセットを抽出することができる.

Page 11: Frequency Pattern Mining

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 12: Frequency Pattern Mining

FPGrowth アルゴリズム

● Conditional Pattern Base に分割

● 3 を含む集合● 1 を含んで3を含まない集合● 4を含んで,1と3を含まない集合

4

2

1

3

5

6

root

4

1

3

2

5 6

Page 13: Frequency Pattern Mining

Mahout 0.4

● FPGrowth に関しては,ほぼ変更なし● ソースは綺麗になってた

Page 14: Frequency Pattern Mining

FPGrowthを動かす

● Mahout を動く環境をつくる● Linux の場合

– Virtual Macine をつくる,たとえば CentOS– Java のインストール,たとえば OpenJDK– 環境変数を設定– Mahout をダウンロードして,適当なディレクトリに置く

– 環境変数を設定

Page 15: Frequency Pattern Mining

データセット

● ネット上の無料の資源を利用する● 学術で使うもの

– だいたいデータの中身がよくわからない– どういう事象を記録したかのみ説明– 個々の値については,抽象化されてわからない...

● 見てわかりやすいデータ– MovieLens

Page 16: Frequency Pattern Mining

ネット上の情報源

● 公開されている明示的な情報源(一部)● The Netflix prize datasets

– Netflix :アメリカのオンライン DVD レンタルサービス– 1 億レコード以上– 480,189 人が 17,770 タイトルについて評価

● Grouplens Research– ミネソタ大の研究チーム, MovieLens プロジェクト– 10 万, 100 万, 1000 万レコードの 3 つのデータ– 71,567 人が 10,681 タイトルについて評価( 1000 万)

Page 17: Frequency Pattern Mining

大まかな流れ

● Ratings.dat から,各ユーザが高い評価を与えているデータのみを抜き出す

● 各ユーザの高い評価を与えた組み合わせから,頻出するパターンを抽出する

Page 18: Frequency Pattern Mining

Page 19: Frequency Pattern Mining

処理済みデータの内容

● データ形式● 1行目● 122,185,231,292,316,329,355,356,362,364,370,377

,420,466,480,520,539,586,588,589,594,616

● → 1 行目のユーザ:ユニーク ID 「1」番の人● → 122,185,231,.... :高い評価を与えた映画

Page 20: Frequency Pattern Mining

例のユーザ

● 122: Boomerang (1992), Comedy|Romance● 185: Net, The (1995), Action|Crime|Thriller● 231: Dumb & Dumber (1994), Comedy● 292: Outbreak (1995), Action|Drama|Sci-Fi|

Thriller● 316: Stargate (1994), Action|Adventure|Sci-Fi● 329: Star Trek: Generations (1994), Action|

Adventure|Drama|Sci-Fi

Page 21: Frequency Pattern Mining

Mahout FPGrowth

● コマンドラインで動かせる1.Mahout をダウンロードしたディレクトリに移動2.Bin ディレクトリの中に mahout バイナリがある3.コマンドを打つ

– ./mahout fpg -i /home/you/dir/data.dat -o patterns -k 50 -method mapreduce↓ だいたいの意味./mahout (FPGrowth を動かす ) -i ( 解析対象ファイルの場所 ) -o ( 出力を記録する場所) -k ( TopK ) -method ( Hadoop MapReduce で動かす)

Page 22: Frequency Pattern Mining

計算中の画面

Page 23: Frequency Pattern Mining

結果を見る方法

● ダンパーを利用する./mahout seqdumper –seqFile patterns/fpgrowth/part-r-00000

Page 24: Frequency Pattern Mining

処理速度

● Junjie Hou, Chunping Li, "A Pattern Growth Method Based on Memory Indexing for Frequent Patterns Mining," cimca, vol. 1, pp.663-668, International Conference on Computational Intelligence for Modelling, Control and Automation and International Conference on Intelligent Agents, Web Technologies and Internet Commerce Vol-1 (CIMCA-IAWTIC'05), 2005

0

10

20

30

40

50

60

70

80

90

100

0 0.5 1 1.5 2 2.5 3Support threshold(%)

Run time(sec.)

D1 FP-grow th runtime

D1 Apriori runtime

sec

Page 25: Frequency Pattern Mining

FPGrowthの応用分野

● チェスの,勝つゲームもしくは負けるゲームにおいて頻出する打ち方の分析

● ウェブページの閲覧内容の分析● よくクリックされるニュースの分析● ポータルサイトで併用されているコンテンツ

● クリックされたオンライン広告の分析● コンテンツ属性とオーディエンス属性

● 交通事故の発生する状況の分析

Page 26: Frequency Pattern Mining

● Thank you