Upload
katsuhiro-takata
View
11.364
Download
0
Embed Size (px)
DESCRIPTION
Citation preview
Frequency Pattern Mining
Karubi NamuruNov. 14, 2010
自己紹介
● Karubi Namuru, Ph.D. ● Kauli 株式会社● Twitter: @karubi● Facebook: http://facebook.com/karubi● 出身:広島 , 居住:東京 , Seongnam
Frequency Pattern Mining
● 頻出パターンマイニング● データの集合から,出現頻度の高い特徴的なパターンを発見する● → 頻出パターンの抽出
代表的な頻出パターンマイニング
● 相関ルール抽出● たとえば,データベースに蓄積した大量のデータから,頻繁に,かつ,同時に,発生する事象を見つけること.
● 同時に発生する事象を,相関の強い関係としてルートとして抽出
● バスケット分析– POS データや EC などで取得できるトランザクションから購買履歴を分析
バスケット分析
● 購買履歴から「一緒に買われる商品」という特徴的なパターンを発見する● 併売商品の発見
– デジタルカメラと液晶を保護するためのシートを購入する顧客は,メモリカードも一緒に買う
● 商品陳列レイアウト– おむつを買う顧客は同時にビールも買うなら両
方の商材を近くに陳列しておく
どのように分析しているのか
デジタルカメラと液晶を保護するためのシートを購入する顧客は,メモリカードも一緒に買う傾向がある
{デジタルカメラ,液晶保護シート}⇒{メモリカード}
{ X }⇒{ Y }
基本の手順
● 全アイテムから全てのルールを洗い出す● 全アイテムからk個を選ぶ● この全通りについて,意味のあるルールを見つける
● このアイテムの各々が前提にくるか,結論にくるかで分け方が変わる
● 全アイテムが前提に集まる場合と,全アイテムが結論に集まる場合はルールにならないので排除する
実際の計算方法
● m 種類のアイテムにおいて存在するルールの数
● たとえば 10 種類の場合,ルールの総数: 57000 弱
● 価値のあるルールの数:わずかな数
∑k=2
m
ab 2m−2
アプリオリアルゴリズム
● 確信度,サポートという 2 つの指標を導入する
● それぞれ,最小確信度と,最小サポートのふたつを与える
● 確信度,サポートとも最小より大きいルールを発見する方法
FPGrowth アルゴリズム
● アプリオリアルゴリズムの効率を改善するアルゴリズム
● アプリオリアルゴリズムは頻出アイテムセットを抽出する必要があったが, FPGrowth は FP-Tree という木構造にトランザクションを圧縮して, FP-Tree から頻出アイテムセットを抽出する.
● FP-Growth は候補パターンを生成しないため,データセットのスキャン回数を抑えることができる.つまり,アプリオリより高速に頻出アイテムセットを抽出することができる.
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
FPGrowth アルゴリズム
● Conditional Pattern Base に分割
● 3 を含む集合● 1 を含んで3を含まない集合● 4を含んで,1と3を含まない集合
4
2
1
3
5
6
root
4
1
3
2
5 6
Mahout 0.4
● FPGrowth に関しては,ほぼ変更なし● ソースは綺麗になってた
FPGrowthを動かす
● Mahout を動く環境をつくる● Linux の場合
– Virtual Macine をつくる,たとえば CentOS– Java のインストール,たとえば OpenJDK– 環境変数を設定– Mahout をダウンロードして,適当なディレクトリに置く
– 環境変数を設定
データセット
● ネット上の無料の資源を利用する● 学術で使うもの
– だいたいデータの中身がよくわからない– どういう事象を記録したかのみ説明– 個々の値については,抽象化されてわからない...
● 見てわかりやすいデータ– MovieLens
ネット上の情報源
● 公開されている明示的な情報源(一部)● The Netflix prize datasets
– Netflix :アメリカのオンライン DVD レンタルサービス– 1 億レコード以上– 480,189 人が 17,770 タイトルについて評価
● Grouplens Research– ミネソタ大の研究チーム, MovieLens プロジェクト– 10 万, 100 万, 1000 万レコードの 3 つのデータ– 71,567 人が 10,681 タイトルについて評価( 1000 万)
大まかな流れ
● Ratings.dat から,各ユーザが高い評価を与えているデータのみを抜き出す
● 各ユーザの高い評価を与えた組み合わせから,頻出するパターンを抽出する
●
処理済みデータの内容
● データ形式● 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,.... :高い評価を与えた映画
例のユーザ
● 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
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 で動かす)
計算中の画面
●
結果を見る方法
● ダンパーを利用する./mahout seqdumper –seqFile patterns/fpgrowth/part-r-00000
処理速度
● 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
FPGrowthの応用分野
● チェスの,勝つゲームもしくは負けるゲームにおいて頻出する打ち方の分析
● ウェブページの閲覧内容の分析● よくクリックされるニュースの分析● ポータルサイトで併用されているコンテンツ
● クリックされたオンライン広告の分析● コンテンツ属性とオーディエンス属性
● 交通事故の発生する状況の分析
● Thank you