1 / 47

データマイニング

データマイニング. 問題の動機付け 決定木 サポートベクターマシン アソシエーションルール クラスタリング 協調フィルタリング. データマイニングとは. • (巨大な)データセットから、ある種の規則性とか特徴的な部分を(大量に)取り出すこと • 統計的に顕著(優位)な部分を(複数)取り出す 例: • 百貨店の売り上げデータから、   年齢層と購買物品の相関が高いものを見つける • 新聞記事データベースから、共通の単語を多く使用している記事群を見つける. 最適化モデルとの違い. 最適化:  データセットから、ある種の特徴を最適化する部分を見つけよう

Télécharger la présentation

データマイニング

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. データマイニング • 問題の動機付け • 決定木 • サポートベクターマシン • アソシエーションルール • クラスタリング • 協調フィルタリング

  2. データマイニングとは • (巨大な)データセットから、ある種の規則性とか特徴的な部分を(大量に)取り出すこと •統計的に顕著(優位)な部分を(複数)取り出す 例: •百貨店の売り上げデータから、   年齢層と購買物品の相関が高いものを見つける •新聞記事データベースから、共通の単語を多く使用している記事群を見つける

  3. 最適化モデルとの違い 最適化:  データセットから、ある種の特徴を最適化する部分を見つけよう データマイニング:  データセットから、ある種の特徴を持つ部分を大量に見つけよう  ある種のルールや知識を掘り出そう

  4. 自動分類 例) いくつかの属性を持つデータセットがあり、それらが2つに分類(正例と負例)されているとき、属性で分類を行うルールを作りたい さらに例) •年齢・収入・食費・住居費のデータセットから、   車を持っているかどうかを分類する (年齢がXX歳以上で(2×収入+食費)≧1000万なら、持ってる •新聞記事データベース(単語の集合)から、生活に関する記事とその他を分けたい •誕生日と血液型と今日の運勢から、運のいい人と悪い人を分類したい (みずがめ座でA型かおうし座でO型ならば運がいい)

  5. 自動分類決定木とサポートベクターマシン

  6. 自動分類を使った予測 •年齢・収入・食費・住居費のデータセットから、   車を持っているかどうかを自動的に推測したい •年齢・収入・食費・住居費・(車所持?)のデータセットを使って、どのような属性を持つと車を持っているのか、という分類ルールを得る •新しく年齢・収入・食費・住居費のデータが来たときに、ルールに当てはまるかどうかをチェックして、車を持っていそうかどうかを推測する

  7. データ分類の例 •このデータベースを使って、 毒キノコ(強)とそうでないキノコを わけるルールを見つけたい 例えば、   「●&□ か 低 & ●でない」 「高 & □ 」は、毒キノコにもそうで ないキノコにも見られるので、 使えない •毒キノコに関するデータベースがあるとする

  8. 決定木 •分類の仕方のひとつ 例) •収入が700万以上か、収入が400万以上かつ食費が80万以下か、住居費が200万以上なら、車を持っている •家事という言葉を含むか、生活費と教育を含めば、生活に関する記事である •分類の仕方を絵で書くと、木になる

  9. ● ● ×  □ でない □ 低 高 毒 × 毒 低 高 × 毒 毒キノコの決定木 •「●&□ か 低 & ●でない」

  10. 良い決定木 •決定木は、全ての可能なデータを、論理式か不等式で再帰的に分割し、できた切片を分類している •切片に間違ったものが入っていなければいないほど、よく分類されている 最適な決定木を求める、という最適化問題を解きたい •しかし、分割を繰り返せば、必ず正確に分類できるけど、 -ルールが複雑すぎて困る -データの偏り、異常データに思いっきり引っ張られ、予測精度が悪くなる(オーバーフィッティング:絵参照) 単純なルールで、という条件を入れる

  11. 単純にするための制約 •単純なルールにするため、決定木に制約をつける •例えば、 -分割は n 回まで -1つの論理式に、項は2つまで -1つの不等式に、変数は3つまで •これらの条件を満たす決定木の中で、最も良い分類をしているものを見つけなさい、という最適化問題になる (分類の精度以外の尺度を入れることもある) •このほうが、実行可能解も少なくなるので、最適化もしやすくなる

  12. 決定木最適化 •最適な決定木を求める NP-complete(難しい) •ヒューリスティックで解く •例えば貪欲法 -各切片を分割する全ての分割の仕方の中で、その分割を追加することで最も分類が良くなるものを追加する -切片がある程度 (n個) まで増えたら終了

  13. 決定木最適化(2) •例えば近傍探索 -ある分割をやめる、変更する、分割を追加する、という作業をして得られる決定木を、もとの決定木の近傍とする -近傍探索をする •どちらにしてもヒューリスティックなので、 うまくいったりいかなかったりのようです

  14. 決定木の評価 •計算で得られた決定木の有効性をどのように評価するか 実際に運用してみれば良いのだが、それでは直接的過ぎるし、コストもかかるしリスクもある •手持ちのデータを使って、評価する •手持ちのデータをいくつかの小さいデータに分割し、 そのひとつを使って、性能を残りで評価する •これを、各小さいデータに対して行うことで、 平均的な挙動を見る •時系列のデータなどで、全体がゆるやかに変化していくような場合、不利

  15. 成功事例 •文書の分類は、うまくいくようです。

  16. サポートベクターマシン •自動分類の手法その2 •属性を数値だと思うと、データの各項目は ベクトルに対応する (データが m次元空間に散らばっている) •これを、平面や曲面ですぱっと、各分類に切り分ける、上手な切り方を見つけよう(このような切り方を見つける手法をサポートベクターマシンと呼ぶ) •あまりくにゃくにゃの曲面で切ると、オーバーフィッティングになる

  17. 超平面サポートベクターマシン •シンプルなルールにするため、平面で切る、と制約をつける 線形計画として定式化できる •各データの属性値は、  正例 i: ai1,…,aim  負例 j : bj1,…,bjm •m 次元の平面は c1 x1 +,…,+ cm xm = 1で表される  •c1,…,cmを変化させるといろいろな平面が得られる 変数は c1,…,cm

  18. 超平面サポートベクターマシン(2) •平面が、データを切り分けているためには、 正例 iに対しては c1 ai1 +,…,+ cm aim ≦ 1 負例 j に対しては c1 bj1 +,…,+ cm bjm≧ 1 となればよい  これが制約 •さらに欲を張って、超平面からなるべく各データが離れてい るようにするためには、 正例 iに対しては c1 ai1 +,…,+ cm aim ≦ 1 -ε 負例 j に対しては c1 bj1 +,…,+ cm bjm≧ 1 +ε として、 εを最大化する

  19. 実行不能な場合 •当然、平面で切り分けられないと、実行不能になる。 なるべく、分類違いが少ない切り方がほしい •個数を最小化するのは大変なので、分類間違いデータの、平面からの距離和を最小化する •最大を最小化する方法を使う    正例に対しては c1 ai1 +,…,+ cm aim - ti≦ 1 -ε    負例に対しては c1 bj1 +,…,+ cm bjm+ tj≧ 1 +ε それと ti≧ 0 という制約 として、各 ti の総和を最小化する

  20. 2次曲面で切り分けたい場合 •2次曲面は2次元で言えば、放物線・双曲線・楕円         3次元で言えば、放物曲面・双曲面・楕円体 •方程式は、係数行列と係数ベクトルを C,dとすると xTCx +dTx = 1 •分類間違いデータの、曲面からの距離和を最小化する    正例に対しては aiTCai +dTai - ti≦ 1 -ε    負例に対しては bjTCbj +dTbj + tj≧ 1 +ε それと ti≧ 0 という制約 として、各 ti の総和を最小化する • 変数は C と dなので、不思議なことに線形計画問題

  21. サポートベクターマシンの応用例 □ 最初の事例: 乳がんの検査 検査項目が6個くらいあり、各患者に対して、その検査結果の数値がデータとしてある。その数値データで、乳がん患者とそうでない患者を分類 •97% くらいの精度で分割できて、しかも予測的中率もそれくらいの性能が出たそうだ □ 企業の倒産予測: 多数の企業の過去の財務データで、半年後に倒産した会社とそうでない会社を分類 •70-80 % くらいの精度で分類でき、予測的中率もそれくらい。2次曲面を用いると、精度が5-10% くらい向上するそうだ

  22. 頻出パターン

  23. 現れるパターンからの分析 データベース •データベース構築と検索は、もうできるようになった  (絞込みや、あいまい検索はまだ改良の余地があるけど) •より詳しくデータを解析するために、データの特徴を捉えたい 各種統計量(データベースの大きさ、密度、項目に現れる属性値の総計、分布)よりも、深い解析がしたい  組合せ(パターン)的な構造に注目 (どういう組合せ(パターン)が どれくらい入っているか) •組合せ・パターンの個数は指数なの で、全てを尽くすのは効率的でない  多く現れるものだけに注目 ATGCGCCGTA TAGCGGGTGG TTCGCGTTAG GGATATAAAT GCGCCAAATA ATAATGTATTA TTGAAGGGCG ACAGTCTCTCA ATAAGCGGCT 実験結果 ゲノム情報

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

  25. 多く現れる  頻出する 多く現れるものを見つけるために、多く現れるとは何か、を決める •データベースが項目の集まりだとする •パターンに対して、そのパターンを含む項目を出現という •出現の数(頻出度)が閾値より大きければ、良く現れるとする (含む、の定義は、集合で行ったり、文字列の 包含、グラフの埋め込みなどで定義する) パターン XYZ {A,C,D} 項目 AXccYddZf {A,B,C,D,E}

  26. 集合の出現と頻出度  {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 集合Kに対して: Kの出現:Kを含むTのトランザクション Kの出現集合 I(K):  Kを含むTのトランザクション全ての集合 Kの頻出度 frq(K):  Kの出現集合の大きさ T=  {2,7,9}の出現集合 ={ {1,2,5,6,7,9},     {1,2,7,8,9}, {2,7,9} }

  27. 頻出集合 1,2,5,6,7,9 2,3,4,5 1,2,7,8,9 1,7,9 2,7,9 2 3つ以上に含まれるもの {1} {2} {7} {9} {1,7} {1,9} {2,7} {2,9} {7,9} {1,7,9} {2,7,9} •頻出集合:Tの定数θ個以上のトランザクションに含まれる集合  (頻出度がθ以上の集合)( θを最小サポートとよぶ) 例) データベースT の3つ以上のトランザクションに含まれる集合 T= 与えられたデータベースT と定数θに対して、T の 頻出集合を列挙する問題を頻出集合列挙問題と言う (頻出パターン列挙問題も同じ)

  28. トランザクションデータベース 1,2,5,6,7 2,3,4,5 1,2,7,8,9 1,7,9 2,7,9 2 T= パターンとして、集合を考える トランザクションデータベース: 各トランザクション Tがアイテム集合 Eの部分集合 になっているようなデータベース  つまり、 T,∀T∈T,T⊆ E •POSデータ(各項目が、客1人の購入品目) • アンケートのデータ(1人がチェックした項目) •web log (1人が1回のwebサーフィンで見たページ) • オプション装備 (車購入時に1人が選んだオプション) 実際のデータは、大きくて疎なものが多い パワー則、スモールワールドが成り立つ

  29. 応用:バスケット分析 ● 牛乳、弁当 ● お茶、弁当 ● おにぎり、雑誌 ● はさみ、のり ● ラーメン、はし ● こっぷ、皿 ● 弁当、おにぎり    ... • スーパーなどの小売店舗で、同時に購入される事の多い品物の組を知りたい • 客が購入した品目 トランザクション •品目の組で、多くの客が購入したもの 多くのトランザクションに含まれるアイテム集合 (あるθに対する)頻出集合 「おむつとビールの組合せが良く売れる」 という発見が有名

  30. データ ベース データ ベース 応用:データベースの比較 頻出集合を列挙することで、 組合せ的な特徴を比較できる • 2つのデータベースが、意味的にどの程度似ているか知りたい  大きさの違い、ノイズは無視したい • 各アイテム、属性などの総数だけでは、組合せがわからない •組合せを細かく見ると、ノイズに振り回される •いろいろな言語の辞書データ •異なる種のゲノムデータ •文書集合の単語データ(新聞のデータ、雑誌のデータなど) •顧客のデータ

  31. 応用:分類ルール、特性の発見 • データの特徴を現す規則、あるいは正例・負例を分類するような規則が知りたい (A,B,C が含まれている、A,B が含まれれば、C が含まれる、など) • 多く現れる組合せを用いないと、仮定部分を満たすものが少なく、ルールとして意味がない •組合せを細かく見ると、ノイズに振り回される 頻出集合を仮定に用いることで、 信頼度の高いルールを 効率良く見つけられる データ ベース データ ベース 正例 •実験データ •利用者履歴データ、マーケティング 負例

  32. アソシエーションルール •アイテム集合 Eの部分集合が集まったデータセット Tを考える 例: •単語集合の部分集合である、ドキュメント •商品集合の部分集合である、各顧客の購買品目 •キーワード集合の部分集合である、論文のアブストラクト S ⊆E に対して、 P(S) = | {H | S⊆H, H∈F} | /|T| とする •このデータセットから、P({u})×P(S)に比べて P({u}∪S) が顕著に大きいような u, Sのペアを見つけたい (  関係が深い)

  33. 111…1 頻出 000…0 1,2,3,4 1,2,3 1,2,4 1,3,4 2,3,4 1,3 1,4 2,3 2,4 3,4 1,2 1 3 4 2 φ 頻出パターンの単調性 • 頻出パターンの部分パターンは頻出 単調性が成り立つ バックトラック法を適用できる 頻出集合であるかどうかのチェック はO(||T||)時間、最高 n方向に登る 1つあたり O(||T||n)時間 多項式時間ではあるが、 ||T|| も nも大きすぎる

  34. a:1,2,5,6,7,9 b: 2,3,4,5 c: 1,2,7,8,9 d: 1,7,9 e: 2,7,9 f: 2 T= 列挙例 {2,7,9}: a,c,e {1,7,9}: a,c,d • このデータベースで    頻出集合を列挙してみる {1,7}: a,c,d {1,9}: a,c,d {2,7}: a,c,e {2,9}: a,c,e {7,9}:a,c,d,e {7}:a,c,d,e {9}: a,c,d,e {2}: a,b,c,e,f {1}:a,c,d φ : a,b,c,d,e,f

  35. 末広がり性の利用 • パターン Xの出現集合を Tとする X+e の出現は Xを含む(= Xの出現) Tの中で e を含むもの X+e の出現集合 •出現集合を更新すれば、    データ全体を見なくて良い •反復が深くなると、見るべき出現集合は小さくなる 反復が深くなるにつれ、計算時間は短くなる

  36. ・・・ 末広がり性 計算時間長 • バックトラックは、各反復で複数の再帰呼び出しをする 計算木は、下に行くほど大きくなる 計算時間を支配するのは一番下の数レベル 計算時間短 ほぼ全ての反復が短時間で終了 (1秒間におよそ100万個) 多くの列挙アルゴリズムが似たような再帰構造を持つので、 下のレベルの仕事を上のレベルがやれば、同様の改良ができる

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

  38. a:1,2,5,6,7,9 b: 2,3,4,5 c: 1,2,7,8,9 d: 1,7,9 e: 2,7,9 f: 2 T= データの縮小 {2,7,9}: a,c,e {1,7,9}: a,c,d a:1,2,5,6,7,9 b: 2,3,4,5 c: 1,2,7,8,9 e: 2,7,9 f: 2 a:7,9 b: c: 7,9 e: 7,9 f: a:2,5,6,7,9 c: 2,7,8,9 d: 7,9 a:7,9 c: 7,9 d: 7,9 • このデータベースでの頻出集合時における データベースの縮小を見る {1,7}: a,c,d {1,9}: a,c,d {2,7}: a,c,e {2,9}: a,c,e {7,9}:a,c,d,e {7}:a,c,d,e {9}: a,c,d,e {2}: a,b,c,e,f {1}:a,c,d φ : a,b,c,d,e,f

  39. 111…1 000…0 頻出集合の問題点 • 面白い頻出集合を見つけようとすると、θを小さくする必要がある 大量の頻出集合が出てくる • 情報を失わずに、頻出集合的な、数の少ないものを    見つけるようにモデルを変えたい 1. 極大頻出集合: 他の頻出集合に含まれない頻出集合 2. 飽和集合: 出現集合が等しいものの中で極大なもの

  40. 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 T= •頻出集合を出現集合で分類 頻出飽和集合 極大頻出集合

  41. 極大頻出集合 極大頻出集合と飽和集合 飽和集合 •逆探索という探索手法で多項式時間列挙可能 •離散アルゴリズムと末広がり性を用いて、高速列挙可能 •出現の意味で情報の損失がない •ノイズが多いと出現集合が等しいものが少なくなり、    解の減少効率が悪くなる •多項式時間で列挙できるかどうか、未解決 •クリークと同じように枝刈りをすると、高速に列挙できる •数が少ないがθによる解のぶれが大きい 両者とも、1つあたりほぼ定数時間、1秒間に1~10万個

  42. 飽和集合の列挙手法 •頻出集合列挙ベース - 頻出集合列挙アルゴリズムをベースに、多少無駄な計算を省く - 飽和集合のよさが出ない。計算時間の改善も少ない •保存 + 枝狩り   - 見つけた解を保存し、それを用いて無駄な分枝を刈る - 計算速度はまあまあ - 解保存のためにメモリを使用し、それがひとつのネック •逆探索 + データベース縮約 - 計算効率が良い - 解保存用のメモリが不要

  43. 飽和集合の隣接関係 •飽和集合から、添え字の大きい順に要素を抜いていく •どこかで出現集合が大きくなる •その出現集合の飽和集合を求める •こうして求めた飽和集合を、親とする (一意的に定まる) •親の頻出度は必ず真に大きいので、親子関係は非巡回的   親子関係は有向根付き木を導出する

  44. 逆探索 親子関係は有向根付き木を導出する この木を深さ優先探索すれば全ての解を見つけられる • 探索には、子供を見つけるアルゴリズムがあれば十分 • 子供が1つあたり多項式時間で見つかれば、全体も多項式時間 (親に要素を1つ加えて極大をとった飽和集合が子供になる) 非巡回的な親子関係と、子供を見つける多項式時間アルゴリズムがあれば、なんでも多項式時間列挙ができる

  45. φ 2 7,9 1,7,9 2,5 2,7,9 1,2,7,9 2,3,4,5 1,2,7,8,9 1,2,5,6,7,9 親子関係の例 1,2,5,6,7,9 2,3,4,5 1,2,7,8,9 1,7,9 2,7,9 2 T= • データベースの全ての 飽和集合とその親子関係 出現集合が隣接 親子関係

  46. Pen. M 1GHz 256MB メモリ 実験結果 •実データからとった、著名なベンチマーク問題でテスト •項目数は 1万 ~ 100万 •属性数は 1000 ~ 1万 単純なスキャンは1秒で100パターン程度

  47. まとめ •データマイニングの定義と動機付け     (データから情報を自動的に吸い出す) •自動学習 (データから機械的に知識を獲得) •決定木  (メタヒューリスティックで解く) •サポートベクターマシン  (線形計画で解く) •頻出パターン (列挙で解く)   アソシエーションルール   データベースの比較 

More Related