疑似頻出アイテム集合の 多項式遅延列挙アルゴリズム

Slides:



Advertisements
Similar presentations
組合せ最適化輪講 2.3 連結性 川原 純. 2.3 連結性 内容 – グラフ上の節点をすべてたどるアルゴリズム 計算機上でのグラフの表現 – 強連結成分を求めるアルゴリズム トポロジカル順序を求める方法も – k- 連結、 k- 辺連結について – 2- 連結グラフの耳分解について.
Advertisements

A Simple Constant Time Enumeration Algorithm for Free Trees 中野 眞一 宇野 毅明 群馬大学 情報学研究所 2003 年 9 月 19 日 アルゴリズム研究会.
J: Magical Switches JAG 模擬地区予選 2013 原案:保坂 解答:保坂・楠本 解説:保坂.
到着時刻と燃料消費量を同時に最適化する船速・航路計画
3次元nクイーン問題の 解に関する研究 論理工学研究室 伊藤精一
LZ符号化 森田 岳史.
テキストデータベースからの 構文構造のマイニング
いいプログラムは コーディング技術だけではない
極小集合被覆を列挙する 実用的高速アルゴリズム
近似アルゴリズム 第10章 終了時刻最小化スケジューリング
Finger patternのブロック化による 陰的wavelet近似逆行列前処理の 高速化
On the Enumeration of Colored Trees
サブグラフ列挙と頻出パターンマイニング - データサイエンスで活躍する列挙アルゴリズム
頻出集合列挙アルゴリズムに対する 実用的高速化技術について
整数計画法を用いた スリザーリンクの解法 杉村 由花 (東京大学)
An Algorithm for Enumerating Maximal Matchings of a Graph
時空間データからのオブジェクトベース知識発見
列挙問題 列挙問題の定義 アルゴリズムの速度 バックトラッキング 分割法 逆探索.
遺伝アルゴリズムによる NQueen解法 ~遺伝補修飾を用いた解探索の性能評価~
リンク構造を考慮したベクトル空間法によるWebグラフ分割手法に関する研究
データ構造と アルゴリズム 第二回 知能情報学部 新田直也.
 Combinations(2)        古川 勇輔.
宇野 毅明 (国立情報学研究所 &総合研究大学院大学)
宇野 毅明 (国立情報学研究所 &総合研究大学院大学)
宇野 毅明 国立情報学研究所 2002年3月 東北大大学院 情報科学研究科ワークショップ
クリークマイニングとその応用 ~ 大規模データの活用 ~
最短路問題のための LMS(Levelwise Mesh Sparsification)
頻出パターン発見アルゴリズム入門 - アイテム集合からグラフまで - Part 1
二分探索木によるサーチ.
7-3.高度な木 (平衡木) AVL木 平衡2分木。回転操作に基づくバランス回復機構により平衡を保つ。 B木
k 個のミスマッチを許した点集合マッチング・アルゴリズム
第25章 単一始点最短路 3節 Bellman-Fordのアルゴリズム
決定木とランダムフォレスト 和田 俊和.
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
近年の列挙技術の進展 ー 計画立案と解法 ー 宇野 毅明 (情報学研究所) 有村 博紀 (北海道大学) 中野 眞一 (群馬大学)
利用関係に基づく類似度を用いたJavaコンポーネント分類ツールの作成
独立成分分析 5 アルゴリズムの安定性と効率 2007/10/24   名雪 勲.
頻出集合発見問題に対する アルゴリズム技術
A Simple Algorithm for Generating Unordered Rooted Trees
数独の解生成と 解に対する番号付け 理学部 情報科学科 渡辺研究室 戸神星也.
GPGPUによる 飽和高価値 アイテム集合マイニング
プログラミング 4 整列アルゴリズム.
不確実データベースからの 負の相関ルールの抽出
頻出・飽和・極大頻出集合の効率的な列挙アルゴリズムとその実装
計算の理論 I 正則表現とFAとの等価性 月曜3校時 大月 美佳 平成15年6月16日 佐賀大学知能情報システム学科.
新しい高速相同検索アルゴリズムを用いたゲノム解析ツールの開発
プログラミング 4 木構造とヒープ.
コードクローン分類の詳細化に基づく 集約パターンの提案と評価
コーディングパターンの あいまい検索の提案と実装
「データ学習アルゴリズム」 第3章 複雑な学習モデル 報告者 佐々木 稔 2003年6月25日 3.1 関数近似モデル
ナップサック問題 クマさん人形をめぐる熱いドラマの結末.
列挙問題 列挙問題の定義 アルゴリズムの速度 バックトラッキング 分割法 逆探索.
宇野 毅明 (国立情報学研究所 &総合研究大学院大学)
Data Clustering: A Review
第Ⅱ部 協力ゲームの理論 第7章 提携形ゲームと配分 2008/07/01(火) ゲーム理論合宿 M1 藤井敬士.
重み付き投票ゲームにおける 投票力指数の計算の高速化
短い部分文字列の ミスマッチトレランスを 高速計算するアルゴリズム
直並列グラフの連続多重彩色 西関研究室 吉田進太郎.
大規模ネットワークに対する 実用的クラスタ発見アルゴリズムの開発
構造的類似性を持つ半構造化文書における頻度分析
人工知能特論II 第8回 二宮 崇.
大規模データ処理に対する 列挙アルゴリズムの活用
擬似クリークを列挙する 多項式時間遅延アルゴリズム
大規模データ処理に対する アルゴリズム理論からのアプローチ
分枝カット法に基づいた線形符号の復号法に関する一考察
コストのついたグラフの探索 分枝限定法 A*アルゴリズム.
参考:大きい要素の処理.
Q q 情報セキュリティ 第7回:2005年5月27日(金) q q.
グラフの帯域幅連続多重彩色 を求めるアルゴリズム (Bandwidth Consective Multicolorings of Graphs) 西関研究室 西川和秀.
1 ひとりにしてくれ数 東北大学 大学院情報科学研究科 ◎鈴木 顕 内澤 啓 国立情報学研究所 情報学プリンシプル研究系 宇野 毅明.
Presentation transcript:

疑似頻出アイテム集合の 多項式遅延列挙アルゴリズム 宇野 毅明 (情報学研究所) 有村 博紀 (北海道大学) 2007年7月26日 人工知能学会DMSM研究会

頻出パターン列挙 ・ データベースの中に多く現れるパターンを全て見つける問題を 頻出パターン列挙(あるいは発見、マイニング)問題という  データベース: トランザクション、ツリー、グラフ、多次元ベクトル  パターン: 部分集合、木、パス・サイクル、グラフ、図形 データベース 頻出する パターンを抽出 ・ 実験1● ,実験3 ▲ ・ 実験2● ,実験4● ・ 実験2●, 実験3 ▲, 実験4● ・ 実験2▲ ,実験3 ▲     . 実験1 実験2 実験3 実験4  ●  ▲ ATGCGCCGTA TAGCGGGTGG TTCGCGTTAG GGATATAAAT GCGCCAAATA ATAATGTATTA TTGAAGGGCG ACAGTCTCTCA ATAAGCGGCT ・ ATGCAT ・ CCCGGGTAA ・ GGCGTTA ・ ATAAGGG     . 実験結果 ゲノム情報

アイテム集合に対して、あいまいな包含関係を考え、 本研究では ・ いわゆる頻出集合列挙をターゲットにする 入力: トランザクションデータベース: 各トランザクション T がアイテム集合 E の部分集合 になっているようなデータベースD  つまり、D, ∀T ∈D, T ⊆ E ・ 解が多い (大きくて面白いものは少ない) ・ 包含関係が厳密   「多くの項目になんとなく含まれている」ものを見つけたい アイテム集合に対して、あいまいな包含関係を考え、 頻出集合の列挙アルゴリズムを提案する

アルゴリズム的な観点からモデルと解法を見つめたい 既存研究 ・ fault-tolerant pattern、degenerate pattern、soft occurrence などとよばれて、研究されている - 包含関係を一般化する場合、アイテムの含有率が閾値異常のとき、含まれると定義 - あるいは、アイテム集合・トランザクションの組で、アイテムが項目に含まれない回数が小さいようなもの - 文字列などでは、もっと一般的に「類似」を包含関係に使う - 完全性を保証した列挙型の解法は少ない アルゴリズム的な観点からモデルと解法を見つめたい

まずは通常の頻出集合 集合K に対して: K の出現: K を含む D のトランザクション K の出現集合 Occ(K): K の出現の集合 K の頻出度 frq(K):  K の出現集合の大きさ  {1,2}の出現集合 = { {1,2,5,6,7,9}, {1,2,7,8,9} } 1,2,5,6,7,9 2,3,4,5 1,2,7,8,9 1,7,9 2,7,9 2 D =  {2,7,9}の出現集合 = { {1,2,5,6,7,9},     {1,2,7,8,9}, {2,7,9} }

与えられたトランザクションデータベースと最小サポートσに対して、頻出集合を全て見つける問題が頻出集合列挙 ・ 頻出集合: D の閾値σ個以上のトランザクションに含まれる集合  (頻出度がσ以上の集合)( σを最小サポートとよぶ) 例) データベース D の3つ以上のトランザクションに含まれる集合 3つ以上に含まれるもの {1} {2} {7} {9} {1,7} {1,9} {2,7} {2,9} {7,9} {1,7,9} {2,7,9} 1,2,5,6,7,9 2,3,4,5 1,2,7,8,9 1,7,9 2,7,9 2 D = 与えられたトランザクションデータベースと最小サポートσに対して、頻出集合を全て見つける問題が頻出集合列挙

擬似包含関係 ・ アイテム集合 P がトランザクション T 含まれる、の定義 ・ 良く使われる方法: 閾値θ<1 に対して |P∩T| / |P| ≧ θ   頻出集合の単調性がなくなる   「空集合以外の部分集合は全て頻出でない」頻出集合もある   難しい ・ 代わりに「含まないでいいアイテムの数」を使う 閾値θ≧1 に対して |P\T| ≦θ (k 擬似包含関係とよぶ)   単調性は保持   多くの項目が P のうち3個のアイテムを含む、といったルールが見つかる

・ k 頻出集合: D のσ個以上のトランザクションに k 擬似包含の意味で含まれるアイテム集合 σ=3での1擬似頻出集合 {1,2,3} {1,2,4} {1,2,5} {1,2,7} {1,2,9} {1,3,7} {1,3,9} {1,4,7} {1,4,9} {1,5,7} {1,5,9} {1,6,7} {1,6,9} {1,7,8} {1,7,9} {1,8,9} {2,3,7} {2,3,9} {2,4,7} {2,4,9} {2,5,7} {2,5,8} {2,5,9} {2,6,7} {2,6,9} {2,7,8} {2,7,9} {2,8,9} {3,7,9} {4,7,9} {5,7,9} {6,7,9} {7,8,9} {1,2,7,9} {1,3,7,9} {1,4,7,9}{1,5,7,9} {1,6,7,9} {1,7,8,9} {2,3,7,9} {2,4,7,9} {2,5,7,9} {2,6,7,9} {2,7,8,9} 1,2,5,6,7,9 2,3,4,5 1,2,7,8,9 1,7,9 2,7,9 2 D = 自明なパターンがたくさんある 効率良い列挙アルゴリズムを考える

擬似頻出パターンの単調性 ・ 擬似頻出集合は単調なのでバックトラック法で多項式時間列挙できる 111…1 ・ 各末尾拡張のk 擬似頻出度を振り分けで計算することで、1反復の計算時間は O(||D||) 時間になる ・ データの構造・計算の内容が 頻出集合と同じなので、 同じテクニックがそのまま使える -ビットマップ -ダウンプロジェクト -データベース縮約、FP-tree 頻出 111…1 000…0 φ 1,3 1,2 1,2,3 1,2,4 1,3,4 2,3,4 1 2 3 4 3,4 2,4 1,4 2,3 1,2,3,4

k 擬似出現集合の計算 ・ Occ=k(P) = {T∈D| |P\T|=k } とする - Occ≦k(P) = ∪Occ=i(P) ・ Occ=h(P∪i) = Occ=h(P)∩Occ(i) ∪ Occ=h-1(P∪i)\Occ(i)  通常の出現と性質が同じ  更新に同じ技術が使える (ダウンプロジェクト、振り分け…) ・ データベースの圧縮も可能 ・ 再帰が深くなり、頻出度が 小さくなると、計算が速くなる A B C D E F G A B C D E F G A B E F G B A C D F A B C D F A B C D A B C D A B C F A B C D B C F C D 8 9 10 11 12

・ バックトラックは、各反復で複数の再帰呼び出しをする  計算木は、下に行くほど大きくなる  計算時間を支配するのは一番下の数レベル 末広がり性 ・ バックトラックは、各反復で複数の再帰呼び出しをする   計算木は、下に行くほど大きくなる  計算時間を支配するのは一番下の数レベル ・・・ 計算時間長 計算時間短 計算時間の短縮が期待される

最小サポートが大きい場合も ・ θが大きいと、下のレベルでも多くの出現を見ることになる  末広がり性による高速化はいまひとつ  末広がり性による高速化はいまひとつ ・ データベースの縮約により、下のレベルの高速化をはかる (1) 前回追加したアイテムより小さいアイテムは消す (2) 現在の出現集合からできるデータベースの中で、頻出になっていないアイテムは消去する  (再帰呼び出しの中で加えられることが無いから) (3) まったく同一のトランザクションは、1つにまとめる ・ 実データだと、下のほうのレベルでは だいたい大きさが定数になる 1 3 4 5 2 6 7 σ小さいときと速度の大きな差はない

小さくて自明なパターン ・ k 擬似包含関係では、大きさ k 以下のアイテム集合は全てのトランザクションに含まれる   多くの小さくて自明な頻出集合が存在する ・ 実用上は、これらを無視したい   ある程度 (l とする)の大きさを持つ頻出集合を直接的に見つける方法を考える

部分頻出度条件 ・ 大きさ l の集合を工夫なく調べると、指数的な時間がかかる  ある程度絞込みをしたい   ある程度絞込みをしたい   特徴を持つ部分構造を基にしよう ・ 大きさ l の k 擬似頻出集合 P を考える ・ 一般性を失うことなく、 P={1,…,l} かつ |Occ=k(P)\Occ({i})| の大きい順に並んでいるとする ・ アイテム集合 {1,…,y} の頻出度を考える ・ Occ=k(P)\Occ({i}), i>y のトランザクションは   {1,…,y} を k-1 擬似包含関係の意味で含む i=2 {1,2,3,4,5} ⊆2 {1,3,5,6,7,10,15}

k-1擬似頻出度に関する条件を満たすアイテム集合の列がある 部分頻出度条件 ・ Occ=k(P)\Occ({i}), i>y のトランザクションは   {1,…,y} を k-1 擬似包含関係の意味で含む  |Occk-1({1,…,y})| ≧ |∪j=y+1,...,|P| (Occk(P)\Occ({i}))| ・ |Occk(P)\Occ({i})| の平均は (k / |P|) |Occ=k (P)| 以上 ・ 1,…,y は|Occk(P)\Occ({i})| の昇順で並んでいる  |Occk-1({1,…,y})| ≧ |Occk(P)|×(|P|-y)/|P| P までたどり着く k-1擬似頻出度に関する条件を満たすアイテム集合の列がある

部分頻出度条件による探索経路 ・ 大きさ l の k 擬似頻出集合は |Occk-1(P)|>σ(l-|P|) /l を満たすP のみを経由して見つけられる  この条件を満たすk 擬似頻出集合を全部見つけよう ・ 末尾拡張は使えない(条件を満たさないものが拡張元になる) ・ 逆探索を使う  条件を満たすパターン P は、P\{i} の中で |Occk-1(P\{i})| を最大にするものから見つける ・ |Occk-1(P\{i})| の計算は、振り分けで効率良くできる 1反復 O(|P|×||D||) 時間になる

部分頻出度を満たす擬似頻出集合 ・ k=1 で最小サポート =3 の場合 1,2,5,6,7,9 部分頻出度条件を満たす頻出集合 2,3,4,5 1,2,7,8,9 1,7,9 2,7,9 2 部分頻出度条件を満たす頻出集合 {1} {2} {5} {7} {9} {1,2} {1,5} {1,6} {1,7} {1,8} {1,9} {2,3} {2,4} {2,5} {2,6} {2,7} {2,8} {2,9} {3,4} {3,5} {4,5} {5,6} {5,7} {5,9} {6,7} {6,9} {7,8} {7,9} {8,9} D = 数が減るので、効率良い探索が期待できる

まとめ ・ 「高々 k 個のアイテムが含まれない」という条件を利用したあいまいな包含関係 ・ その包含関係での頻出集合列挙 ・ 逆探索による固定サイズの頻出集合を直接的に見つける   アルゴリズム 今後の課題 ・実装と計算実験 ・ 他のパターンへの列挙技術の活用 ・ 「r % は含まれる」とした包含関係への取り組み