• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる R言語によるクラスター分析 - 似ているものをグループ化する-
 

[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる R言語によるクラスター分析 - 似ているものをグループ化する-

on

  • 16,771 views

データマイニング+WEB勉強会 第2回(2010/03/20)での講義資料です。「はじめてでもわかる R言語によるクラスター分析入門 - ...

データマイニング+WEB勉強会 第2回(2010/03/20)での講義資料です。「はじめてでもわかる R言語によるクラスター分析入門 - 似ているものをグループ化する-」 hamadakoichi 濱田晃一。 途中、質問・議論をはさむ双方向形式で進行し、2時間の講義を行いました。

[内容まとめ]
http://d.hatena.ne.jp/hamadakoichi/20100320/p1
[Rソースコード]
http://d.hatena.ne.jp/hamadakoichi/20100324/p1

Statistics

Views

Total Views
16,771
Views on SlideShare
15,571
Embed Views
1,200

Actions

Likes
21
Downloads
1
Comments
0

11 Embeds 1,200

http://infoshako.sk.tsukuba.ac.jp 1085
http://www.slideshare.net 62
http://s.deeeki.com 23
http://webcache.googleusercontent.com 9
http://paper.li 8
http://nanan.tumblr.com 4
http://a0.twimg.com 3
http://cc.bingj.com 2
http://flavors.me 2
http://localhost 1
http://d.hatena.ne.jp 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    [データマイニング+WEB勉強会][R勉強会] はじめてでもわかる R言語によるクラスター分析 - 似ているものをグループ化する- [データマイニング+WEB勉強会][R勉強会] はじめてでもわかる R言語によるクラスター分析 - 似ているものをグループ化する- Presentation Transcript

    • R 言語によるクラスター分析 2010/03/20 濱田 晃一 データマイニング +WEB 勉強会 @ 東京 第2回 hamadakoichi はじめてでもわかる - 似ているものをグループ化する -
    • 自己紹介 ・ ID: hamadakoichi (Hatena/Twitter/YouTube/Skype)  濱田晃一 ・専門:理論物理学(量子統計場の理論) . 博士( 2004.3 )   Ph.D.Thesis : http://hosi.phys.s.u-tokyo.ac.jp/~koichi/PhD-thesis.pdf ・業務:業務に関する数理モデル化・解析、実行制御など ・趣味: Hip Hop Dance/ House Dance を 13 年   Youtube: http://www.youtube.com/hamadakoichi ・ Blog: http:// d.hatena.ne.jp/hamadakoichi ・ Twitter: http:// twitter.com/hamadakoichi
    • AGENDA
    • AGENDA
    • データマイニングの方法論を用い 蓄積されたデータを有効活用していく方法を学ぶ 目的: データマイニング +WEB 勉強会@東京
    • データマイニングの方法論を用い 蓄積されたデータを有効活用していく方法を学ぶ 目的: データマイニング +WEB 勉強会@東京 Web API 統計解析 データマイニング 最適解探索 アルゴリズム
    • データマイニングの方法論を用い 蓄積されたデータを有効活用していく方法を学ぶ 目的: データマイニング +WEB 勉強会@東京 Web API 統計解析 データマイニング 最適解探索 アルゴリズム クラスター分析 判別分析 時系列分析 因子分析 対応分析 主成分分析 ニューラルネットワーク カーネル法 サポートベクターマシン … 樹木モデル 回帰分析
    • データマイニングの方法論を用い 蓄積されたデータを有効活用していく方法を学ぶ 目的: データマイニング +WEB 勉強会@東京 Web API 統計解析 データマイニング クラスター分析 判別分析 時系列分析 因子分析 対応分析 主成分分析 ニューラルネットワーク カーネル法 サポートベクターマシン … Google Data API (Calendar/Maps/BookSearch/ FinancePortfolioData,…) はてな Web Service (Bookmark/Graph/Keyword,…) Amazon Web Service Yahoo! Web Service 楽天 Web Service Recruit Web Service … 樹木モデル 回帰分析 Twitter API 最適解探索 アルゴリズム
    • データマイニングの方法論を用い 蓄積されたデータを有効活用していく方法を学ぶ 目的: データマイニング +WEB 勉強会@東京 Web API 統計解析 データマイニング クラスター分析 判別分析 時系列分析 因子分析 対応分析 主成分分析 ニューラルネットワーク カーネル法 サポートベクターマシン … グラフ シミュレーテドアニーリング 力学モデルによる最適化 Ant Colony 遺伝的 Particle Swam Memetic 免疫型最適化 熱力学的 … Google Data API (Calendar/Maps/BookSearch/ FinancePortfolioData,…) はてな Web Service (Bookmark/Graph/Keyword,…) … 樹木モデル 回帰分析 タブーサーチ Amazon Web Service Yahoo! Web Service 楽天 Web Service Recruit Web Service Twitter API 最適解探索 アルゴリズム
    • データマイニングの方法論を用い 蓄積されたデータを有効活用していく方法を学ぶ 目的: データマイニング +WEB 勉強会@東京 Web API 統計解析 データマイニング 最適解探索 アルゴリズム クラスター分析 判別分析 時系列分析 因子分析 主成分分析 ニューラルネットワーク カーネル法 サポートベクターマシン … グラフ シミュレーテドアニーリング 力学モデルによる最適化 Ant Colony 遺伝的 Particle Swam Memetic 免疫型最適化 熱力学的 … Google Data API (Calendar/Maps/BookSearch/ FinancePortfolioData,…) はてな Web Service (Bookmark/Graph/Keyword,…) … 樹木モデル タブーサーチ 対応分析 回帰分析 Amazon Web Service Yahoo! Web Service 楽天 Web Service Recruit Web Service Twitter API
    • クラスター分析 今回のテーマ Web API 統計解析 データマイニング 最適解探索 アルゴリズム クラスター分析 判別分析 時系列分析 因子分析 対応分析 主成分分析 ニューラルネットワーク カーネル法 サポートベクターマシン … グラフ シミュレーテドアニーリング 力学モデルによる最適化 Ant Colony 遺伝的 Particle Swam Memetic 免疫型最適化 熱力学的 … Google Data API (Calendar/Maps/BookSearch/ FinancePortfolioData,…) はてな Web Service (Bookmark/Graph/Keyword,…) … 樹木モデル 回帰分析 タブーサーチ Amazon Web Service Yahoo! Web Service 楽天 Web Service Recruit Web Service Twitter API
    • AGENDA
    • クラスタリングとは データを類似度に従い グループに分けること
    • クラスタリングとは データを類似度に従い グループに分けること クラスタリング A
    • クラスタリングとは データを類似度に従い グループに分けること クラスタリング A クラスタリング B
    • クラスタリングとは データを類似度に従い グループに分けること クラスタリング A クラスタリング B
    • クラスタリング手法の種類 手法と帰属度の分類軸がある ① 各データそれぞれを一つのクラスタとする ② 状態を初期状態とするクラスタの距離、類似度で2つのクラスタを逐次的に併合していく ③ 目的のクラスタ数まで併合が行われたときに処理を終了する 階層的手法 各データは一つのクラスタのみに所属する ハードクラスタリング 各データが複数のクラスタリングに所属することを許す (※最も帰属度が高いクラスタを抽出すると、ハードクラスタリングとなる) ① データの良さを表す評価関数を設定する ② 評価関数に対する最適解(最適分割)を探索する 内容 帰属度 手法 分類 非階層的手法 (分割最適化) ソフトクラスタリング 種類
    • クラスタリング手法の種類 手法と帰属度の分類軸がある ① 各データそれぞれを一つのクラスタとする ② 状態を初期状態とするクラスタの距離、類似度で2つのクラスタを逐次的に併合していく ③ 目的のクラスタ数まで併合が行われたときに処理を終了する 階層的手法 各データは一つのクラスタのみに所属する ハードクラスタリング 各データが複数のクラスタリングに所属することを許す (※最も帰属度が高いクラスタを抽出すると、ハードクラスタリングとなる) ① データの良さを表す評価関数を設定する ② 評価関数に対する最適解(最適分割)を探索する 内容 帰属度 手法 分類 非階層的手法 (分割最適化) ソフトクラスタリング 種類
    • クラスタリング手法の種類 手法と帰属度の分類軸がある ① 各データそれぞれを一つのクラスタとする ② 状態を初期状態とするクラスタの距離、類似度で2つのクラスタを逐次的に併合していく ③ 目的のクラスタ数まで併合が行われたときに処理を終了する 階層的手法 各データは一つのクラスタのみに所属する ハードクラスタリング 各データが複数のクラスタリングに所属することを許す (※最も帰属度が高いクラスタを抽出すると、ハードクラスタリングとなる) ① データの良さを表す評価関数を設定する ② 評価関数に対する最適解(最適分割)を探索する 内容 帰属度 手法 分類 非階層的手法 (分割最適化) ソフトクラスタリング 種類
    • クラスタリング手法の種類 手法と帰属度の分類軸がある ① 各データそれぞれを一つのクラスタとする ② 状態を初期状態とするクラスタの距離、類似度で2つのクラスタを逐次的に併合していく ③ 目的のクラスタ数まで併合が行われたときに処理を終了する 階層的手法 各データは一つのクラスタのみに所属する ハードクラスタリング 各データが複数のクラスタリングに所属することを許す (※最も帰属度が高いクラスタを抽出すると、ハードクラスタリングとなる) ① データの良さを表す評価関数を設定する ② 評価関数に対する最適解(最適分割)を探索する 内容 帰属度 手法 分類 非階層的手法 (分割最適化) ソフトクラスタリング 種類
    • クラスタリング手法の種類 各クラスタリング手法 非階層的 階層的 ハード 種類 ソフト
    • クラスタリング手法の種類 各クラスタリング手法 ・メディアン法 ・重心法 ・ウォード法 ・ 完全連結法 ・単連結法 非階層的 ・群平均法 階層的 ハード 種類 ソフト
    • クラスタリング手法の種類 各クラスタリング手法 ・スペクトラルクラスタリング ・メディアン法 ・重心法 ・ウォード法 ・ 完全連結法 ・単連結法 ・ k-means 非階層的 ・群平均法 階層的 ハード 種類 ソフト
    • クラスタリング手法の種類 各クラスタリング手法 ・スペクトラルクラスタリング ・メディアン法 ・重心法 ・ウォード法 ・ 完全連結法 ・単連結法 ・ k-means 非階層的 ・群平均法 階層的 ハード ・混合分布モデル ・ pLSI ・ NMF ・ Fuzzy c-means 種類 ソフト
    • クラスタリング手法の種類 各クラスタリング手法 ・スペクトラルクラスタリング ・メディアン法 ・重心法 ・ウォード法 ・ 完全連結法 ・単連結法 ・ k-means 非階層的 ・群平均法 階層的 ハード ・混合分布モデル ・ pLSI ・ NMF ・ Fuzzy c-means 種類 ソフト
    • クラスタリングの評価 クラスタの条件により様々な評価法がある ・正解集合が用意されているか ・クラスタの数が与えられているか 条件 … ⇒ 長所と短所があり   標準的な方法は確立されていない
    • クラスタリングの評価 ・正解集合が用意されているか ・クラスタの数が与えられているか 条件 ⇒ 存在 ⇒ 既知 の場合
    • クラスタリングの評価 評価指標例 ( 正解が存在し、クラスタ数が既知の場合 )
    • クラスタリングの評価 評価指標例 ( 正解が存在し、クラスタ数が既知の場合 ) 最も標準的に用いられる評価尺度。結果クラスタと解答クラスタの重なり具合を表す。値が小さいほどクラスタリング結果が良好。 エントロピー (Entropy) 情報検索における標準的な評価法を応用。再現率と精度の重み付き平均。 F 尺度 (F-measure) 正答率。最も厳密な評価尺度。 標準的な評価尺度。結果クラスタと解答クラスタの重なり具合を表す。 値が大きいほどクラスタリング結果が良好。 内容 純度 (Purity) 精度 (Accuracy) 指標
    • クロス表 クラスタリング結果と 正解クラスタに共通するデータ個数の表 成分 結果クラスタ 解答クラスタ
    • エントロピー (Entropy) 最も標準的に用いられる評価尺度 重なり具合を表す。値が小さいほど結果が良好。 全体 クラスタ C i R プログラム例 確率
    • 純度 (Purity) 標準的な評価尺度 正解クラスタをどの程度含むか。値が大きいほど結果が良好 R プログラム例 全体 クラスタ C i
    • F 尺度 (F-measure) 情報検索における標準的な評価法を応用 再現率と精度の重み付き平均 全体 A h と C k に対する F 尺度 再現率 精度
    • AGENDA
    • データのベクトル化 データを n 次元のベクトルで表現する 各次元はデータを見る 観点や特徴に対応 a b c
    • 例:文書クラスタリング 文書の集合を 主題からいくつかのグループに分割する 図 文書 主題 ニュース記事など 政治、ビジネス、スポーツなど
    • ベクトル空間モデル 文書集合中に現れる 単語 w i を第 i 次元に設定 第 i 次元の値は、文書中に単語 w i が現れた頻度 文書例 ベクトル表現 私 / は / 茨城 / 県 / に / ある / 茨城 / 大学 / の / 学生 / です / 。 私 / は / 茨城 / 県 / の / 日立 / 市 / に / 住ん / で / い / ます / 。 日立 / 市 / には / 日立 / の / 工場 / が / たくさん / あり / ます / 。 [ 文書 1] [ 文書 2] [ 文書 3] 単語 (1) 私 , (2) 茨城 , (3) 県 , (4) 大学 , (5) 学生 , (6) 日立 , (7) 市 , (8) 工場 (1,2,1,1,1,0,0,0) (1,1,1,0,0,1,1,0) (0,0,0,0,0,2,1,1) [ 文書 1] [ 文書 2] [ 文書 3]
    • ベクトル空間モデル 単語の重みを考慮してベクトルを作成する 重み 一般的な用語 文書の分野を推定できる単語 ⇒ 軽くする ⇒ 重くする TF*IDF 法
    • 重み付け: TF*IDF 法 文章中の特徴的な単語を抽出するためのアルゴリズム T F と IDF の2つの指標で計算 TFIDF =TF * IDF IDF (Inverse Document Frequency) 単語の出現頻度 文書の逆出現頻度 TF (Term Frequency) 文書総数 単語 i を含む文書数 一般語フィルタとして働く。 多くの文書に出現する語は重要度が下がる
    • 重み付け よく行われる処理 ■ 正規化 ■ log( (N+1)/nj) に補正する サイズの大きな文書が大きなベクトルとなることを回避。 特徴を表現するベクトルとする。 IDF が 0 になることの回避
    • データの類似度 ■ 単純な計算 ■ 類似度を測る手法 ユークリッド距離から求める ・余弦尺度 (cos) ベクトル空間での方向の類似度を表す 長さが1に正規化されている場合、ユークリッド距離と等価 ・ Jaccard 係数 カテゴリカルなデータに対しても適用できる θ
    • AGENDA
    • 行列の演算 solve(a) solve 逆行列 eigen(a)$values eigen$values 固有値 eigen(a)$vectors eigen$vectors 固有ベクトル diag(v) diag 対角行列 a %*% b %*% 行列積 det(a) det 行列式 dim(a) t(a) 例 次元 転置 演算 dim t 演算子
    • 行列 X の行ごと・列ごとに 同じ操作を行う 関数 apply apply(X, Margin, Function, ...) X: データ Margin: 行ごとの場合1、列ごとの場合2 Function: 統計関数や算出式
    • 他 はじめてでもわかる 統計解析・データマイニング R 言語入門 http://d.hatena.ne.jp/hamadakoichi/20100220/p1
    • iris( アヤメ ) データ よい性質を持ち よく使用される データ Iris Sanguinea 花葉 花びら 種
    • AGENDA
    • 古典的で直感的にも自然な手法 最終的に一つのクラスタにまとまる 階層的手法:特徴
    • 階層的手法:アルゴリズム ① 各データが自身をクラスターと考え   データ数のクラスターを作る ② クラスタ間の距離を測り  クラスタ間の距離行列を作成する ③ 最も距離の近いクラスタを併合する ④ クラスタ間の距離行列を作成する ⑤ 最も短い距離のクラスタを併合する ※ ひとつのクラスタになるまで繰り返し
    • 階層的手法:アルゴリズム ① 各データが自身をクラスターと考え   データ数のクラスターを作る ② クラスタ間の距離を測り   クラスタ間の距離 行列を作成する ③ 最も距離の近いクラスタを併合する ④ クラスタ間の距離 行列を作成する ⑤ 最も短い距離のクラスタを併合する ※ ひとつのクラスタになるまで繰り返し
    • 階層的手法:手法とクラスタ間距離 重心法と同じ。クラスタ併合時に、新たな重心を元の重心の中点にとる。 クラスタの重心間の距離の自乗 クラスタ内の平方和の増加分 クラスタの最大距離を与えるデータ対の距離 クラスタ間の最小距離を与えるデータ対の距離 メディアン法 (Median Method) 重心法 (Centroid Method) ウォード法 (Ward Method) 完全連結法 (Complete Linkage Method ) 単連結法 (Single Linkage Method ) クラスタ間の全てのデータ組合せの距離の平均値 群平均法 (Group Average method ) クラスタリング手法 クラスタ間距離
    • クラスタ構造を表す 横棒の縦軸の目盛りがクラスタ間距離 階層的手法:テンドログラム クラスタ間距離
    • 階層的クラスタリングの関数 Hierarchical Clustering 階層的手法: R による解析 hclust(d, method=“complete”, member =NULL, ...) d: 距離行列 method: 階層的クラスタリング手法を指定 members: 通常は指定しない。 ※ テンドログラムの途中から  クラスタリングを行いたい場合に用いる
    • 階層的手法:手法とクラスタ間距離 重心法と同じ。クラスタ併合時に、新たな重心を元の重心の中点にとる。 クラスタの重心間の距離の自乗 クラスタ内の平方和の増加分 クラスタの最大距離を与えるデータ対の距離 クラスタ間の最小距離を与えるデータ対の距離 クラスタ間の全てのデータ組合せの距離の平均値 クラスタ間距離 メディアン法 (Median Method) 重心法 (Centroid Method) ウォード法 (Ward Method) 完全連結法 (Complete Linkage Method ) 単連結法 (Single Linkage Method ) 群平均法 (Group Average method ) クラスタリング手法 “ median” “ centroid” “ ward” “ complete” ( Default ) “ single” “ average“ method
    • 階層的手法: R プログラム例 ■ R 言語プログラミング:クラスター分析 - 階層的クラスタリング   http://d.hatena.ne.jp/hamadakoichi/20100324/p1 以下に挙げる R ソースコード・実行結果は 次のエントリに記載してあります
    • 階層的手法: R プログラム例 ソースコード
    • 階層的手法: R プログラム例 ソースコード
    • 階層的手法: R プログラム例 実行結果
    • 階層的手法: R プログラム例 (クラスター比較) ソースコード
    • 階層的手法: R プログラム例 (クラスター比較) 実行結果
    • 階層的手法: R プログラム例 (エントロピー・純度 比較) ソースコード
    • 階層的手法: R プログラム例 (エントロピー・純度 比較) ソースコード
    • 階層的手法: R プログラム例 (手法比較) 実行結果
    • AGENDA
    • 分割最適化手法 詳細は次回以降 概要 特異値分解 を用いる。高次元ベクトル間の位置関係をできるだけ保存した形で、低次元ベクトルに変換 グラフ分割問題によるクラスタリング 確率モデルによるクラスタリング。 データ発生のメカニズムが確率モデルでモデル化できるときの強力な手法 使われることが多い、実用的な手法。 クラスタの重心を代表点に設定し、評価関数を最小化するようなデータ形でデータをクラスタに割り当てる クラスタ間距離 次元縮約 ・ LSI (Latent Sematic Indexing) ・ pLSI (Probabilistic LSI) ・ NMF (Non-Nagatice Matrix Factorization) スペクトラルクラスタリング 混合分布モデル k-means クラスタリング手法
    • 推薦文献
    • 推薦文献リンク R で学ぶクラスタ解析 クラスター分析入門 ― ファジィクラスタリングの理論と応用 R によるデータサイエンス ~データ解析の基礎から最新手法まで ~
    • Fin.
    • 講義後の 参加者の声 感想・今後の期待
    • 感想・今後の期待 (1/2) ■ 講義を受け、自分が抱える行動テーゲティングの課題  に対するアプローチが見えてきました。  (行動ターゲティング広告エンジニア Y さん) ■理論を基礎から知ることができ分かりやすかった。   随時、質問と返答、議論を踏まえ進めていく、進行スピードも適切。  (検索エンジニア F さん) ■皆で議論しながら進める形式がよかった。  次回は時間枠をさらに長時間で設定するとよい (マーケティングリサーチャー B さん) ■理論ベースから復習する機会がよかった  (医療データ解析コンサルタント I さん) ■理論よりの話を基礎から聞け、よかった。 応用例をもっと聞けるとさらによいと思う  (ウェブエンジニア O さん) 次回開催予定: 2010/04/17( 土 )
    • 感想・今後の期待 (2/2) ■ 面白かった。手法をどう使うか実例を知りたい。(3 D エンジニア M さん) ■分かりやすかった。実用での話題も聞きたい(コンサルタント I さん) ■応用例があるとよりイメージがつかみやすい(コンサルタント W さん) ■課題と解決方法の実事例が知りたい。 理解すべき数式と、すべきでない数式が分かるとよりよい。 実コードを何パターンか動作させて違いを知りたい。平日夜2時間がよい。 (レコメンデーションエンジンエンジニア D さん) ■体系的に聞けたのがよかった。応用例があるとさらによい  (3次元エンジニア O さん) ■データ、分析、効果の実施例があるとよりよい。 使うケースをより知れるとよい。  グループ化が必要な実務場面を詳しく知りたい。  (コンサルタント N さん ) 次回開催予定: 2010/04/17( 土 )
    • 勉強会情報
    • 勉強会情報 ■ 「第2回データマイニング +WEB 勉強会@東京 を開催しました    - はじめてでもわかる R 言語によるクラスター分析 - 」    本勉強会のまとめエントリです。    http://d.hatena.ne.jp/hamadakoichi/20100320/p1 ■ 「 R 言語プログラミング: クラスター分析 - 階層的クラスタリング」   本資料で紹介している 「 R でのクラスター分析」に関する   ソースコードや実行結果を記載してあります。    http://d.hatena.ne.jp/hamadakoichi/20100324/p1 勉強会内容まとめ Google Group ■ データマイニング +WEB 勉強会@東京 (Tokyo.Webmining)   http://groups.google.com/group/webmining-tokyo
    • データマイニングの方法論を用い 蓄積されたデータを有効活用していく方法を学ぶ 目的: データマイニング +WEB 勉強会@東京 Web API 統計解析 データマイニング 最適解探索 アルゴリズム クラスター分析 判別分析 時系列分析 因子分析 主成分分析 ニューラルネットワーク カーネル法 サポートベクターマシン … グラフ シミュレーテドアニーリング 力学モデルによる最適化 Ant Colony 遺伝的 Particle Swam Memetic 免疫型最適化 熱力学的 … Google Data API (Calendar/Maps/BookSearch/ FinancePortfolioData,…) はてな Web Service (Bookmark/Graph/Keyword,…) … 樹木モデル タブーサーチ 対応分析 回帰分析 Amazon Web Service Yahoo! Web Service 楽天 Web Service Recruit Web Service Twitter API