Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

データサイエンス概論第一=2-2 クラスタリング

861 views

Published on

九州大学大学院システム情報科学研究院「データサイエンス実践特別講座」が贈る,数理・情報系『でない』学生さんのための「データサイエンス講義

Published in: Data & Analytics
  • Be the first to comment

データサイエンス概論第一=2-2 クラスタリング

  1. 1. 1 九州大学大学院システム情報科学研究院 データサイエンス実践特別講座 データサイエンス概論第一 第2回 2データ間の距離とクラスタリング: 2-2 クラスタリング システム情報科学研究院情報知能工学部門 内田誠一
  2. 2. 2 データサイエンス概論第一の内容  データとは  データのベクトル表現と集合  平均と分散  データ間の距離  データ間の類似度  データのクラスタリング (グルーピング)  線形代数に基づくデータ解析の基礎  主成分分析と因子分析  回帰分析  相関・頻度・ヒストグラム  確率と確率分布  信頼区間と統計的検定  時系列データの解析  異常検出
  3. 3. 3 データのクラスタリング データ分類の基本
  4. 4. 4 データのクラスタリング① クラスタリングの基本的考え方 クラスタリング=“clustering”
  5. 5. 55 データ集合をグルーピングする  我々は「距離」や「類似度」を手に入れた  その結果,「与えられたデータ集合」を「それぞれ似たデータからなる 幾つかのグループに分ける」ことが可能に!
  6. 6. 66 グルーピング(クラスタリング)すると 何がわかるか!? いくつのクラスタに分かれたか? • グループの分布の把握 各クラスタのメンバ数はどうなっているか? • 各グループのメンバの多寡 • 微小クラスタ(マイノリティ)や,巨大クラスタ(マジョリティ) 各クラスタの代表パターンは? • 主要例を理解 • 膨大なデータを高々数個で概観 各クラスタの広がりは? • 各グループの変動傾向理解
  7. 7. 77 クラスタ(cluster)とは?  「房(ふさ)」,「集団」,「群」 http://www.ims.cs.uec.ac.jp/~naoki PCクラスタ プラズマクラスタ(Sharp社) クラスタ水 www.nariwa.jp 星団(star cluster)
  8. 8. 88 クラスタリング(clustering)= データの集合をいくつかの部分集合に分割する(グルーピング)  各部分集合=「クラスタ」と呼ばれる
  9. 9. 9 各クラスタから代表的なデータを選ぶと... 9 これらの代表データを見 るだけで,データ集合 全体の概略が見える
  10. 10. 1010 どういう分割がよいのか?  𝑁個のデータを𝐾個に分割する方法はおよそ𝐾 𝑁通り  100個のデータを10分割→およそ10100 通り  近くにあるデータが,なるべく同じ部分集合になるように
  11. 11. 11 データのクラスタリング② k-means法 Mean = 平均
  12. 12. 12 いきなりですがk-meansの挙動(1/5) 初期代表データを与える 12 例えばランダム に与える
  13. 13. 13 いきなりですがk-meansの挙動(2/5) 各データを最も近い代表データに割当て=データ分割 13 代表データの ファンクラブ (支持者集合) 割り当ての結果 できる境界
  14. 14. 14 いきなりですがk-meansの挙動(3/5) 代表データ更新 14 この中のデータの 平均に移動
  15. 15. 15 いきなりですがk-meansの挙動(4/5) 各データを最も近い代表データに割当て=データ分割 15
  16. 16. 16 いきなりですがk-meansの挙動(5/5) 代表データ更新 16 以後,代表データが 動かなくなるまで反復
  17. 17. 17 K-means法実例:学習データセット 17
  18. 18. 18 K-means法実例:結果(K=3) 18 初期代表 パターン
  19. 19. 19 K-means法実例:結果(K=5) 19 そのまま残ってしまった!
  20. 20. 2020 初期値の決め方  学習パターンからランダムに選ぶ  存在範囲に均等に置く 普通こんなところには 置かない 同じ𝐾であっても 初期値により結果は 変わります
  21. 21. 2121 いずれにせよ初期値が違うと結果がちがうので  「マルチスタート戦略」をやってみてもよい  異なる初期値で𝑃回k-meansを実施  𝑃個の結果のなかで,最もよかった結果を選ぶ  「最もよかった」とする基準  誤差総和が一番小さい  メンバが極端に少ないクラスタが少ない  「最も平均から遠いデータ」(=最悪)までの距離が小さい (最悪が,そう最悪でもない)
  22. 22. 2222 𝐾をどうやって決めるか?① 徐々に𝐾を増やすアルゴリズム  LBG法とか,ISODATA法と呼ばれます
  23. 23. 2323 𝐾をどうやって決めるか?② とにかく𝐾を変えながら,誤差を評価  あまり減らなくなったところで決める 𝐾 誤差 これぐらい?
  24. 24. 2424 K-meansの目指すところ: 誤差総和が最小になるように  「近くにあるデータが,なるべく同じ部分集合になるように」  =みんなの近くに代表データが来るように 2 4 各部分集合の代表 代表データとの距離 全部の→の長さの総和が一番 小さくなるように,分割境界を 設定 データ 𝒙𝑖
  25. 25. 25 𝐸 = 𝑘=1 𝐾 𝐸 𝑘を 分割𝑆 𝑘 (𝑘 = 1, … , 𝐾) に関して最小化. ただし 𝐸 𝑘 = 𝑥 𝑖∈𝑆 𝑘 𝑑 𝒎 𝑘 − 𝒙𝑖 参考:誤差総和基準をキチッと式で書くと... 25 矢印の長さの総和= 𝐸 𝑘 矢印の長さ 𝒎 𝑘 𝒙𝑖 𝑆 𝑘
  26. 26. 26 参考:K-means法のアルゴリズム 26 0t  000 1 ,,,,: Kk mmm 代表データ初期値   を決定を用いて分割 t K t k tt k SSSm ,,,,1     ?1  t k t k mm   1 ,     t k Sx ik mmxmdE t ki を最小化する 代表データ更新: 終了 yes no tt 1 現時点の分割で 誤差総和が最小になるように 現時点の代表データで 誤差総和が最小になるように
  27. 27. 2727 参考:誤差総和基準はベストか?  必ずしも,そうとは言えず  例: the problem of splitting large cluster 誤差小 誤差大
  28. 28. 28 データのクラスタリング③ その他のクラスタリング法 まだ色々あります
  29. 29. 2929 K-means,もう一つの問題(?)  代表データは「平均」なので,原データの一つではない  原データにあるものを「代表」としたい場合には...!?
  30. 30. 3030 K-medoid法  Medoid = 「クラスタ内のデータの中で他のデータとの距離を最も小 さくできるもの」  「平均」ではない. 𝒙𝑖 𝑆 𝑘 𝒎 𝑘 𝒙𝑖 𝑆 𝑘 ならば
  31. 31. 31 K-medoid法とk-meansの違いは 一か所だけ! 31 この中のデータの medoidに移動
  32. 32. 3232 K-means vs k-medoids  Wikipediaに載っていた例  上段がk-means, 中下段がk-medoids  まぁ「たまたま」ぐらいで,もちろん,k-meansのほうがよいケースもあり得ます
  33. 33. 33 もう一つの代表的クラスタリング法: 階層的クラスタリング wikipedia の図を一部引用
  34. 34. 3434 超参考:もっと凝ったクラスタリング: スペクトラル・クラスタリング  グラフ表現されたパターン集合のクラスタリング  近いパターン間をつないでグラフ構築  その近接性を極力保存したまま低次元空間に写像  低次元空間でk-means http://d.hatena.ne.jp/mr_r_i_c_e/20121214/1355499195 「近さ」には 任意性あり
  35. 35. 35 スペクトラル・クラスタリングK-means 超参考:もっと凝ったクラスタリング: スペクトラル・クラスタリング 35 http://ogrisel.github.io/scikit-learn.org/sklearn-tutorial/modules/clustering.html

×