階層的クラスタリング

データマイニング統計学において階層的クラスタリング[1]階層的クラスタ分析、 HCAとも呼ばれる)は、クラスターの階層構造を構築することを目的とするクラスタ分析手法である。階層的クラスタリングの戦略は、一般的に以下の2つのカテゴリーに分類される。

  • 凝集型:凝集型クラスタリングは、しばしば「ボトムアップ」アプローチとも呼ばれ、各データポイントを個別のクラスターとして開始します。各ステップにおいて、アルゴリズムは選択された距離指標(例:ユークリッド距離)と連結基準(例:単一連結、完全連結)に基づいて、最も類似した2つのクラスターを統合します。[2]このプロセスは、すべてのデータポイントが単一のクラスターに結合されるか、停止基準が満たされるまで継続されます。凝集型手法は、そのシンプルさと小規模から中規模のデータセットにおける計算効率の高さから、より一般的に使用されています。[3]
  • 分割法:「トップダウン」アプローチとして知られる分割法クラスタリングは、単一のクラスター内のすべてのデータポイントから開始し、クラスターを再帰的に小さなクラスターに分割します。各ステップで、アルゴリズムはクラスターを選択し、それを2つ以上のサブセットに分割します。分割の際には、多くの場合、結果として得られるクラスター間の距離を最大化するなどの基準が使用されます。分割法はあまり一般的ではありませんが、最初に大きく明確なクラスターを特定したい場合に役立ちます。

一般的に、マージと分割は貪欲法によって決定されます。階層的クラスタリング[1]の結果は通常、デンドログラムで表されます

階層的クラスタリングには、有効な距離尺度を任意に使用できるという明確な利点があります。実際、観測値自体は必要ではなく、距離行列のみが使用されます。一方、単一リンク距離という特殊なケースを除き、どのアルゴリズム(における網羅的探索を除く)も最適解を見つけることが保証されていません。[要出典]

複雑

階層的凝集型クラスタリング(HAC)の標準アルゴリズムは、計算時間がでメモリを必要とするため、中規模のデータセットでも実行速度が遅くなります。しかし、特殊なケースでは、計算量が の最適かつ効率的な凝集法が知られています。単一リンククラスタリングの場合はSLINK [4] 、完全リンククラスタリングの場合はCLINK [5]です。ヒープ を使用すると、一般的なケースの実行時間は ではなくまで短縮できますが、メモリ要件がさらに必要になります。多くの場合、このアプローチのメモリオーバーヘッドが大きすぎて実用的ではありません。メモリ使用量と総実行時間を比較できる四分木を使用する方法も存在します。[6]

徹底的な探索による分割クラスタリングは ですが、分割を選択するためにk平均法などのより高速なヒューリスティックを使用するのが一般的です

クラスターリンケージ

どのクラスターを結合するか (凝集型の場合)、またはクラスターをどこで分割するか (分裂型の場合) を決定するには、観測セット間の非類似度の尺度が必要です。ほとんどの階層的クラスタリング手法では、データ セットの個々の観測間の適切な距離 d (ユークリッド距離など) と、セットの非類似度をセット内の観測のペアワイズ距離の関数として指定するリンク基準を使用することでこれを実現します。メトリックとリンクの選択はクラスタリングの結果に大きな影響を与える可能性があり、低レベルのメトリックはどのオブジェクトが最も類似しているかを決定しますが、リンク基準はクラスターの形状に影響します。たとえば、完全リンクでは、単一リンクよりも球状のクラスターが生成される傾向があります。

リンク基準は、観測間のペアワイズ距離の関数として観測セット間の距離を決定します。

観測値ABの2つの集合と距離dの間の一般的なリンク基準は以下のとおりである: [7] [8]

名前
最大または完全連鎖クラスタリング
最小または単一リンククラスタリング
加重平均連鎖クラスタリング(またはUPGMA
加重平均リンククラスタリング(またはWPGMA
重心リンククラスタリング(UPGMC)ここで、 およびはそれぞれAとBの重心です
中央値連鎖クラスタリング(WPGMC)どこ
多目的連鎖クラスタリング[9]
ワードリンク[10]最小増加平方和(MISSQ)[11]
最小誤差二乗和(MNSSQ)[11]
最小分散増加(MIVAR)[11]
最小分散(MNVAR)[11]
ハウスドルフ連結[12]
最小和メドイドリンク[13]mは結果として得られるクラスターのmedoidである
最小合計増加メドイドリンク[13]
メドイド連鎖[14] [15]ここでは前のクラスターのメドイドである。
最小エネルギークラスタリング

これらのうちいくつかは再帰的にしか計算できません(WPGMA、WPGMC)。多くの場合、ランス・ウィリアムズ方程式を用いた再帰計算の方が効率的ですが、他のもの(ハウスドルフ、メドイド)については、より遅い完全な公式を用いて距離を計算する必要があります。その他のリンク基準には以下が含まれます。

  • 候補クラスターが同じ分布関数 (V リンク) から生成される確率。
  • k近傍グラフ上の入次数と出次数の積(グラフ次数リンク)。[16]
  • 2つのクラスターを統合した後のクラスター記述子(クラスターの質を測定するために定義された量)の増分。[17] [18] [19]

凝集型クラスタリングの例

生データ

たとえば、このデータがクラスター化され、ユークリッド距離が距離メトリックであるとします

階層的クラスタリング デンドログラムは次のようになります。

伝統的な表現

特定の高さで木を切ると、選択した精度で分割されたクラスタリングが得られます。この例では、樹形図の上から2行目以降を切ると、クラスター{a} {bc} {de} {f}が生成されます。3行目以降を切ると、クラスター{a} {bc} {def}が生成されます。これはより粗いクラスタリングで、クラスター数は少ないものの、クラスターのサイズは大きくなります。

この手法では、クラスターを段階的にマージすることで、個々の要素から階層を構築します。この例では、6つの要素{a}、{b}、{c}、{d}、{e}、{f}があります。最初のステップは、クラスター内のどの要素をマージするかを決定することです。通常は、選択した距離に基づいて、最も近い2つの要素を選択します。

オプションとして、この段階で距離行列を作成することもできます。ここで、 i行目j列目の数値は、 i番目とj番目の要素間の距離を表します。クラスタリングが進むにつれて、クラスターがマージされ、距離が更新されるにつれて、行と列がマージされます。これは、この種のクラスタリングを実装する一般的な方法であり、クラスター間の距離をキャッシュできるという利点があります。単純な凝集型クラスタリングアルゴリズムについては、単一リンククラスタリングのページで説明されています。このアルゴリズムは、さまざまなタイプのリンクに簡単に適応できます(以下を参照)。

最も近い2つの要素bcを統合すると、{ a }、{ bc }、{ d }、{ e }、{ f }というクラスターが作成されます。これらをさらに統合するとします。そのためには、{ a }と{ bc }間の距離を求め、2つのクラスター間の距離を定義する必要があります。通常、2つのクラスター間の距離は次のいずれかになります。

  • 各クラスターの要素間の平均距離(平均リンククラスタリングとも呼ばれ、UPGMAなどで使用されます)。
  • すべてのクラスター内分散の合計。
  • 統合されるクラスターの分散の増加(ウォード法[10]
  • 候補クラスターが同じ分布関数 (V リンク) から生成される確率。

最小距離が同点の場合、ペアはランダムに選択されるため、構造的に異なる複数の樹状図が生成される可能性があります。あるいは、同点のペアをすべて同時に結合することで、一意の樹状図を生成することもできます。[20]

クラスター数が十分に少ない場合(数基準)、クラスタリングを停止することができます。また、一部のリンクでは、クラスター間の距離が以前の凝集よりも大きくなった時点で凝集が起こることが保証される場合もあり、その場合はクラスターがマージできないほど離れている時点でクラスタリングを停止することができます(距離基準)。しかし、例えば重心リンクでは、いわゆる逆転[21](反転、超計量性からの逸脱)が発生する可能性があるため、これは当てはまりません。

分裂的クラスタリング

分割クラスタリングの基本原理は、DIANA(DIvisive ANAlysis clustering)アルゴリズムとして公開されました。[22]最初はすべてのデータが同じクラスターに属し、最大のクラスターを分割してすべてのオブジェクトが分離されるまで繰り返します。各クラスターを分割する方法は複数存在するため、ヒューリスティックスが必要となります。DIANAは平均非類似度が最大となるオブジェクトを選択し、残りのクラスターよりも新しいクラスターに類似するすべてのオブジェクトをこのクラスターに移動します。

簡単に言えば、DIANAは「分割」というよりもむしろ「空洞化」のプロセスです。各イテレーションにおいて、既存のクラスター(例えばデータセット全体の初期クラスター)が選択され、その中に新しいクラスターが形成されます。オブジェクトは徐々にこのネストされたクラスターに移動し、既存のクラスターを空洞化します。最終的に、クラスター内に残るのは、そこで成長したネストされたクラスターのみであり、クラスター自体には独立したオブジェクトは存在しません。

正式には、DIANA は次の手順で動作します。

  1. すべてのオブジェクトインデックスのセットと、これまでに形成されたすべてのクラスターのセットをとします。
  2. 以下を まで繰り返します
    1. 直径が最大である 2 つ以上のオブジェクトを含む現在のクラスターを検索します。
    2. このクラスター内で、クラスターの残りのオブジェクトとの類似度が最も高いオブジェクトを見つけます。
    3. 古いクラスターからポップして、新しい分裂グループに配置します。
    4. が空でない限り、 からオブジェクトを に移行し続けて に追加します。どのオブジェクトを移行するかを選択するには、 との非類似度だけでなく、分裂群との非類似度も調整します。を定義するとし、 のときに反復を停止するか、 に移行します
    5. 追加

直感的に言えば、上記の指標はオブジェクトが現在のクラスターから離脱したいという強い意志を測るものです。しかし、オブジェクトが分裂グループにも属さない場合、その影響は弱まります。このようなオブジェクトは、最終的には独自の分裂グループを形成する可能性が高いでしょう。

DIANAの樹状図は、各回ごとに、破片群を空洞化されたクラスターの子とすることで構築できます。これにより、根を木とし、一意の単一オブジェクトクラスターを葉とする木が構築されます。

ソフトウェア

オープンソース実装

Irisデータセット階層的クラスタリング・デンドログラムRを使用)。出典
Orange データ マイニング スイートにおける階層的クラスタリングとインタラクティブなデンドログラムの視覚化
  • ALGLIB は、O(n²) のメモリと O(n³) の実行時間で、C++ および C# でいくつかの階層的クラスタリング アルゴリズム (シングルリンク、完全リンク、Ward) を実装します。
  • ELKIには、複数の階層的クラスタリングアルゴリズム、さまざまなリンク戦略が含まれており、効率的なSLINK、[4] 、 CLINK [5]、Anderbergアルゴリズム、デンドログラムからの柔軟なクラスター抽出、およびその他のさまざまなクラスター分析アルゴリズムも含まれています。
  • JuliaにはClustering.jlパッケージ内に実装があります。[23]
  • MATLABのGNUアナログであるOctave は関数「linkage」で階層的クラスタリングを実装します。
  • データ マイニング ソフトウェア スイートのOrange には、インタラクティブな樹形図の視覚化を備えた階層的クラスタリング機能が含まれています。
  • Rには組み込み関数[24]と階層的クラスタリングのための関数を提供するパッケージがある。[25] [26] [27]
  • SciPy は、効率的な SLINK アルゴリズムを含む階層的クラスタリングを Python で実装します。
  • scikit-learn はPython で階層的クラスタリングも実装します。
  • Weka には階層的クラスター分析が含まれています。

商用実装

  • MATLABには階層的クラスター分析が含まれています。
  • SAS には PROC CLUSTER に階層的クラスター分析が含まれています。
  • Mathematica には階層的クラスタリング パッケージが含まれています。
  • NCSS には階層的クラスター分析が含まれています。
  • SPSS には階層的クラスター分析が含まれています。
  • Qlucore Omics Explorer には階層的クラスター分析が含まれています。
  • Stata には階層的クラスター分析が含まれています。
  • CrimeStat には、地理情報システム用のグラフィカル出力を備えた最近傍階層型クラスター アルゴリズムが含まれています。

参照

参考文献

  1. ^ ab Nielsen, Frank (2016). 「8. 階層的クラスタリング」. データサイエンスのためのMPIによるHPC入門. Springer. pp.  195– 211. ISBN 978-3-319-21903-5
  2. ^ Murtagh, Fionn; Contreras, Pedro (2012). 「階層的クラスタリングのためのアルゴリズム:概要」 . WIREsデータマイニングと知識発見. 2 (1): 86– 97. doi :10.1002/widm.53. ISSN  1942-4795.
  3. ^ Mojena, R. (1977-04-01). 「階層的グループ化手法と停止規則:評価」.コンピュータジャーナル. 20 (4): 359– 363. doi :10.1093/comjnl/20.4.359. ISSN  0010-4620.
  4. ^ Eppstein, David (2001-12-31). 「高速階層クラスタリングと動的最近傍ペアのその他の応用」. ACM Journal of Experimental Algorithmics . 5 : 1–es. arXiv : cs/9912014 . doi :10.1145/351827.351829. ISSN  1084-6654.
  5. ^ 「CLUSTERプロシージャ:クラスタリング手法」SAS/STAT 9.2ユーザーズガイド.SAS Institute . 2009年4月26日閲覧
  6. ^ Székely, GJ; Rizzo, ML (2005). 「Joint Between-Within Distances による階層的クラスタリング:Wardの最小分散法の拡張」. Journal of Classification . 22 (2): 151– 183. doi :10.1007/s00357-005-0012-9. S2CID  206960007.
  7. ^ Fernández, Alberto; Gómez, Sergio (2020). 「多用途リンケージ:凝集型階層的クラスタリングのための空間節約戦略群」. Journal of Classification . 37 (3): 584– 597. arXiv : 1906.09222 . doi :10.1007/s00357-019-09339-z. S2CID  195317052.
  8. ^ ab Ward, Joe H. (1963). 「階層的グループ化による目的関数の最適化」.アメリカ統計学会誌. 58 (301): 236– 244. doi :10.2307/2282967. JSTOR  2282967. MR  0148188.
  9. ^ abcd Podani, János (1989), Mucina, L.; Dale, MB (eds.), "New combinatorial clustering methods" , Numerical syntaxonomy , Dordrecht: Springer Netherlands, pp.  61– 77, doi :10.1007/978-94-009-2432-1_5, ISBN 978-94-009-2432-12022年11月4日取得
  10. ^ ニコラス・バサルト;ベロッティ、ロベルト。デ・カルロ、フランチェスコ。ファッキ、パオロ。パンタレオ、エステル。パスカツィオ、サヴェリオ (2007-06-15)。 「金融時系列のハウスドルフクラスタリング」。物理学 A: 統計力学とその応用379 (2): 635–644 . arXiv :物理学/0504014Bibcode :2007PhyA..379..635B。土井:10.1016/j.physa.2007.01.011。ISSN  0378-4371。S2CID  27093582。
  11. ^ ab シューベルト、エーリッヒ (2021). HACAM: Medoids を中心とした階層的凝集クラスタリング – とその制限(PDF)。 LWDA'21: ラーネン、ヴィッセン、ダテン、アナリセン、2021 年 9 月 1 ~ 3 日、ドイツ、ミュンヘン。ページ 191–204 – CEUR-WS 経由。
  12. ^ 宮本 貞明; 海津 洋介; 遠藤 康則 (2016).非対称類似度尺度を用いた階層的および非階層的メドイドクラスタリング. 2016 Joint 8th International Conference on Soft Computing and Intelligent Systems (SCIS) and 17th International Symposium on Advanced Intelligent Systems (ISIS). pp.  400– 403. doi :10.1109/SCIS-ISIS.2016.0091.
  13. ^ Herr, Dominik; Han, Qi; Lohmann, Steffen; Ertl, Thomas (2016). 階層ベース投影による高次元ラベル付きデータの視覚的クラッター低減(PDF) . Graphics Interface. Graphics Interface . doi :10.20380/gi2016.14 . 2022年11月4日閲覧
  14. ^ Zhang, Wei; Wang, Xiaogang; Zhao, Deli; Tang, Xiaoou (2012). 「グラフ次数リンク:有向グラフ上の凝集型クラスタリング」. Fitzgibbon, Andrew; Lazebnik, Svetlana ; Perona, Pietro; Sato, Yoichi; Schmid, Cordelia (編). Computer Vision – ECCV 2012 . Lecture Notes in Computer Science. Vol. 7572. Springer Berlin Heidelberg. pp.  428– 441. arXiv : 1208.5092 . Bibcode :2012arXiv1208.5092Z. doi :10.1007/978-3-642-33718-5_31. ISBN 9783642337185. S2CID  14751。参照: https://github.com/waynezhanghk/gacluster
  15. ^ Zhang, W.; Zhao, D.; Wang, X. (2013). 「最大増分経路積分による凝集型クラスタリング」.パターン認識. 46 (11): 3056–65 . Bibcode :2013PatRe..46.3056Z. CiteSeerX 10.1.1.719.5355 . doi :10.1016/j.patcog.2013.04.013. 
  16. ^ Zhao, D.; Tang, X. (2008). 「グラフのゼータ関数によるクラスターの循環化」. NIPS'08: 第21回国際神経情報処理システム会議議事録. Curran. pp.  1953– 60. CiteSeerX 10.1.1.945.1649 . ISBN  9781605609492
  17. ^ Ma, Y.; Derksen, H.; Hong, W.; Wright, J. (2007). 「非可逆データ符号化と圧縮による多変量混合データのセグメンテーション」. IEEE Transactions on Pattern Analysis and Machine Intelligence . 29 (9): 1546–62 . Bibcode :2007ITPAM..29.1546M. doi :10.1109/TPAMI.2007.1085. hdl : 2142/99597 . PMID  17627043. S2CID  4591894.
  18. ^ Fernández, Alberto; Gómez, Sergio (2008). 「マルチデンドログラムを用いた凝集型階層クラスタリングにおける非一意性の解決」. Journal of Classification . 25 (1): 43– 65. arXiv : cs/0608049 . doi :10.1007/s00357-008-9004-x. S2CID  434036.
  19. ^ ルジャンドル, P.; ルジャンドル, LFJ (2012). 「クラスター分析 §8.6 反転」.数値生態学. 環境モデリングの発展. 第24巻(第3版). エルゼビア. pp.  376–7 . ISBN 978-0-444-53868-0
  20. ^ Kaufman, L.; Rousseeuw, PJ (2009) [1990]. 「6. 分割分析(プログラムDIANA)」. 『データ内のグループの検出:クラスター分析入門』 . Wiley. pp.  253– 279. ISBN 978-0-470-31748-8
  21. ^ “階層的クラスタリング · Clustering.jl”. juliastats.org . 2022年2月28日閲覧
  22. ^ "hclust関数 - RDocumentation". www.rdocumentation.org . 2022年6月7日閲覧。
  23. ^ Galili, Tal; Benjamini, Yoav; Simpson, Gavin; Jefferis, Gregory (2021-10-28), dendextend: Extending 'dendrogram' Functionality in R , 2022-06-07取得
  24. ^ パラディス、エマニュエル、他「類人猿:系統学と進化の分析」 。 2022年12月28日閲覧
  25. ^ Fernández, Alberto; Gómez, Sergio (2021-09-12). 「mdendro: Extended Agglomerative Hierarchical Clustering」. 2022年12月28日閲覧。

さらに読む

  • Kaufman, L.; Rousseeuw, PJ (1990). 『データからグループを見つける:クラスター分析入門』(第1版), ニューヨーク: John Wiley. ISBN 0-471-87876-6
  • ハスティー, トレバー;ティブシラニ, ロバート; フリードマン, ジェローム (2009). 「14.3.12 階層的クラスタリング」. 『統計学習の要素』 (第2版). ニューヨーク: シュプリンガー. pp.  520–8 . ISBN 978-0-387-84857-0. 2009年11月10日にオリジナル(PDF)からアーカイブ2009年10月20日閲覧。
Retrieved from "https://en.wikipedia.org/w/index.php?title=Hierarchical_clustering&oldid=1313657999"