IBMニュースレター
The DX Leaders
AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。
ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。
階層的クラスタリングは、ネストされたクラスターのツリーにデータをグループ化する教師なし機械学習アルゴリズムです。主なタイプには、凝集型と分裂型があります。階層クラスター分析は、データセット内のパターンとつながりを見つけるのに役立ちます。結果は、クラスター間の距離関係を示す樹形図に表示されます。
クラスタリングは、データ分析において類似したオブジェクトを検知してグループ化するために使用される教師なし機械学習手法です。階層クラスター分析(HCA)または階層クラスタリングでは、オブジェクトをクラスター階層にグループ化しますが、その中で線形の順序を強制することはありません。生物学、画像分析、社会科学などの多くの分野では、階層的クラスタリング手法を使用して、データセット内のパターンを探索および認識しています。ユースケースには、臨床研究における集団の分類、顧客セグメンテーション、ネットワーク・モデルにおけるノードのコミュニティの検出などがあります。
階層的クラスタリングには2つのタイプがあります。
- 凝集型またはボトムアップアプローチ1:単一のクラスターが出現するまでクラスターをより大きなものに繰り返しマージします。
- 分割またはトップダウンのアプローチ2:単一クラスター内のすべてのデータから始まり、すべてのクラスターが単集合になるまで、連続するクラスターを分割し続けます。
階層的クラスター分析には高い計算コストがかかります。ヒープを使用すると計算時間は短縮されますが、メモリ要件は増加します。分割タイプと凝集タイプのクラスタリングはどちらも「貪欲」です。つまり、アルゴリズムは、プロセスの各段階で局所的な最適な選択を行うことで、どのクラスターがマージまたは分割されるかを決定します。また、アルゴリズムが所定のクラスター数に到達したときにクラスターの集約または分割を停止する停止基準を適用することもできます。
クラスターの階層を視覚化するために、樹形図3と呼ばれる木のような図がよく使用されます。クラスターがマージまたは分割された順序が表示され、データ・ポイント間の類似性や距離が表示されます。樹形図は、属性を持つリスト4が入れ子になったものとして理解することもできます。
階層的クラスタリング・アルゴリズムは、非類似度行列の概念を使用して、マージまたは分割するクラスターを決定します。非類似度は、選択した連結方法で測定された2つのデータ点間の距離です。非類似度行列の値は、次の式を表します。
- 距離5:一例がユークリッド距離であり、これは1つのセット内の単独点の間の距離です。
- 連結クラスタリング基準:セット間のペアワイズ距離の関数として非類似度を指定します。
最も一般的なユークリッド距離連結法について見ていきましょう。他に使用できる距離メトリクスの例には、ミンコフスキー距離、ハミング距離、マハラノビス距離、ハウスドルフ距離、マンハッタン距離などがあります。各連結方式は、同じデータセットから異なるクラスターを生成することに注意してください。適切な連結クラスタリング手法の選択は、クラスタリングされるデータの種類、データ密度、クラスターの形状、データセットに外れ値やノイズがあるかどうかなどの要素によって異なります。
単連結法では、2つのクラスター内のアイテム間のペアごとの距離を分析し、クラスター間の最小距離を使用します。Min メソッドは非楕円クラスター形状を適切に処理しますが、ノイズや外れ値の影響を受けます。これには鎖効果6として知られる限界があります。クラスター間のブリッジを作成するいくつかのポイントにより、2つのクラスターが1つにマージされる場合があります。最小連結の基準は、次のように表すことができます。
mina∈A,b∈Bd(a,b)
ここで、AとBは2つの観測値のセットで、dは距離関数です。
クラスター距離は、互いに最も離れた点に基づいて計算することもできます。最長距離法は、最短距離法よりもノイズや外れ値に対する影響を受けにくくなりますが、球体クラスターまたは大規模なクラスターがある場合、結果に歪みが生じることがあります。最縁隣法(Max-linkage)は多くの場合、最近隣法(min-linkage)よりも多くの球形クラスターを生成します。最遠隣法は次の式で表すことができます。
maxa∈A,b∈Bd(a,b)
ここで、AとBは2つの観測値のセットで、dは距離です。
SokalおよびMichener7が紹介したこれらの手法では、クラスター間の距離を、クラスター内のすべての点のペアにわたるペア間の平均距離として定義します。アルゴリズムは、算術平均を使用した無重み付けペアグループ方法(UPGMA)または算術平均を使用した加重ペアグループ方法(WPGMA)のいずれかです。ここで「重み付けされていない」とは、すべての距離が各平均に等しく寄与するということを意味します。
UPGMAは、次の式で表されます。
1∣A∣·∣B∣∑a∈A∑b∈Bd(a,b)
ここで、*A*と*B*は2組の観測値、*d*は距離です。
WPGMAは、次の式で表されます。
d(i∪j,k)=d(i,k)+d(j,k)2
ここで、iとjは、各ステップで結合される最も近いクラスターであり、iとjの連合の新しいクラスターを形成します。次に、別のクラスターへの距離kを計算できます。これは、kとi、およびkとjのデータ・ポイント間の平均距離の算術平均です。
ここでは、クラスターの中心または重心間の距離を使用します。重心間の距離は、距離関数を使用して計算されます。
∥μA-μB∥2
ここで、μAはAの重心、μBはBの重心です。
Joe H. Wardは1960年代に最小二乗和増加法(MISSQ)8を発表しました。すべてのデータポイントは、独自のクラスターから始まります。このアプローチは、データ・ポイント間の二乗和が最初はゼロであり、クラスターをマージするにつれて増加することを意味します。Wardの手法では、マージされるときに、クラスター中心からのポイントの二乗距離の合計が最小化されます。Wardの手法は定量的な変数9 に適しており、ノイズや外れ値の影響が少なくなります。これは次のように表すことができます。
∣A∣·∣B∣A∪B∥μA-μB∥2=∑x∈A∪B∥x-μA∪B∥2-∑x∈A∥x-μA∥2-∑x∈B∥x-μB∥2
ここで、Aの平均とBの平均はそれぞれAとBの重心であり、xはAとBの和集合に属するデータ点です。
Wardの最小分散法は、 Lance-Williamsアルゴリズムを使用して改良できます。これらのアルゴリズムは、再帰式を使用してクラスター距離を更新し、マージする最適なクラスター・ペアを見つけます。
集約型階層クラスタリング(AGNES)とも呼ばれる集約型階層クラスタリングでは、各データ・ポイントはクラスターとして開始されます。このアルゴリズムは、異種行列に基づいて選択されたリンケージー・クラスタリング基準を使用して、どのクラスターのペアを結合するかを決定します。アルゴリズムは階層の上方に動き、すべてがリンクされるまでクラスターのペアリングを維持し、ネストされたクラスターの階層的な一連を作成します。大まかに言うと、クラスターのステップ10は次のとおりです。
1. 特定の距離メトリクスを使用して非類似度行列を計算します。
2. 各データ点をクラスターに割り当てます。
3. クラスター間の類似性の連鎖基準に基づいてクラスターをマージします。
4. 距離行列を更新します。
5. クラスターが1つになるか、停止基準に達するまでステップ3と4を繰り返します。
分割階層クラスターの背後にある原理は、1964年にMacnaughton-Smithら11によって開発され、1990年にKaufmanとRousseuwが、DIANA(分割分析クラスター)アルゴリズム12でさらに探求したものです。分割クラスタリングは、集約的クラスタリングとは逆のアプローチを使用します。すべてのデータ・ポイントは単一のクラスターから始まり、その後さらに多くのクラスターに繰り返し分割されます。分割は、残りのクラスターが単集合になるか、事前に定義されたクラスター数などの停止基準に達するまでに行われます。分割法は大規模なクラスター13を特定するのに優れており、アルゴリズムがプロセスの開始時からデータ・セット分布全体を考慮するため、集約的方法よりも正確です。
効率を向上させるために、分割法では、k平均などのフラット・クラスタリング・アルゴリズムを使用して、データセットをクラスターに分割します。クラスターの数は事前に指定する必要があります。k平均法アルゴリズムは、クラスター内の重心点間の二乗和を最小化することによってクラスターを分割します。これは慣性(イナーシャ)基準14として知られています。クラスター分割のステップ15は次のとおりです。
1. 1つのクラスターのデータセット・サイズN(d1、d2、d3 ...dN)のすべてのデータ点から開始します。
2。K平均法アルゴリズムなどのフラット・クラスタリング手法を使用して、クラスターを2つの異なるクラスターまたは異種クラスターに分割します。
3. ステップ2を繰り返し、分割する最適なクラスターを選択し、各反復の後に最も一貫性の低いクラスターから外れ値を除去します。
4. 各例が独自の単一クラスター内にある場合は終了し、それ以外の場合はステップ3を繰り返します。
IBMニュースレター
AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。
ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。
クラスターの結果は通常、インフラストラクチャー(2分ツリー構造)で表示されます。インフラストラクチャーのx軸はデータ・ポイントを表し、 y軸 (線の高さ)は、マージされたときにクラスターがどれだけ離れていたかを示します。
樹形図を使用して、最終的なクラスタリング・モデルのクラスター16の数を決定できます。戦略の1つは、枝が減少して長くなる木の自然な切断点を特定することです。あるいは、クラスター数は、水平線が樹形図を切断したときに交差する垂直線の数で与えられます。
ここに示した画像例では、水平線H1が2本の垂直線を横断しています。これは、プロセスのこの時点に2つのクラスターがあることを示しています。1つはポイント5、8、2を持つクラスターで、もう1つは残りのポイントを含むクラスターです。樹形図内の他の水平線を切断することなく、水平線が上または下に動きできるほど、この数のクラスターの選択がクラスタリング・モデルにとって適切になります。以下の例では、水平線H24つのクラスターを選択しています。H2 は、他の水平線を横断する前にH1まで動くことはできません。このシナリオでは、2クラスターの選択肢( H1 )の方がクラスタリングモデルに適していると考えられます。
堅牢なクラスタリングモデル17は、高いクラス内の類似性と低いクラス間の類似性を持つクラスターを作成します。しかし、クラスターの品質を定義することは困難な場合があり、リンク基準とクラスター数の選択は成果に大きな影響を与える可能性があります。したがって、クラスター化モデルを構築する際には、さまざまなオプションを試し、将来の検討のためにデータセット内のパターンをはこちらおよび明らかにするのに最も役立つオプションを選択してください。考慮すべき要素18には以下が含まれます。
- データセットにとって実用的または論理的なクラスターの数(特定のデータセットのサイズ、クラスターの形状、ノイズなど)
- 統計値:各クラスターの平均値、最大値、最小値など
- 適用する最適な非類似性メトリクスまたは連結基準
- 外れ値または結果変数の影響
- 特定のドメインまたはデータセットに関する知識
クラスター19の最適な数を決定するのに役立つ他の方法には、次のものがあります。
- エルボー法:クラスター数に対してクラスター内平方和をプロットし、「エルボー」 (プロットが水平になる点)を決定します。
- ギャップ統計量:実際のクラスター内平方和を、ヌル参照分布に対して予期されるクラスター内平方和と比較し、最大のギャップを特定します。
階層的クラスタリングは、データサイエンティストにデータセット内の構造と関係についての知見を提供し、さまざまなユースケースに適用できます。
階層的クラスタリングは、傾向を分析し、顧客データをセグメント化するのに役立ちます。例えば、製品の選択、人口統計、購買行動、リスクプロファイル、ソーシャル・メディアとのインタラクションによってグループ化することができます。
臨床試験に参加する患者数は、数千人に上ることがあります。階層的クラスターは、診断基準、生理学的な反応、DNA 変異などを使用することにより、異種混交的な集団をより均質なグループに分類するのに役立ちます20。また、進化的発展を理解するために、生物学的主要な機能によって種のグループをグループ化することもできます。
階層的クラスタリングは、画像ベースのテキスト認識アプリケーションで、手書きの文字を形状によってグループ化するために使用されます。また、特定の基準を用いて情報を保管および取得したり、検索成果を分類したりするためにも使用されます。
PythonとRプログラミング言語はどちらもデータサイエンスで広く使用されています。Pythonは柔軟性があり、幅広いタスクを処理できます。あるいは、Rは統計コンピューティング専用に設計されており、階層クラスタリング分析を視覚化するための豊富なオプションを提供します。
Python は AgglomerativeCluster 関数21(sklearn の集約クラスタリングの例22 も参照)、SciPy はデベログラム23をプロットする関数を提供します。dendextend24のようなパッケージは、Rの樹形図機能を強化し、感度分析を改善し、異なる樹形図を比較・操作できるようにします。実践的なエクスペリエンスについては、ステップバイステップのチュートリアルをご覧ください。Python で階層的クラスタリングを実装する方法については、こちら、R で階層的クラスタリングを実装する方法については、こちらをご覧ください。
AI開発者向けの次世代エンタープライズ・スタジオであるIBM watsonx.aiを使用して、生成AI、基盤モデル、機械学習機能をトレーニング、検証、チューニング、導入しましょう。わずかなデータとわずかな時間でAIアプリケーションを構築できます。
業界をリードするIBMのAI専門知識とソリューション製品群を使用すれば、ビジネスにAIを活用できます。
AIの導入で重要なワークフローと業務を再構築し、エクスペリエンス、リアルタイムの意思決定とビジネス価値を最大化します。
1 Murtagh, F., Legendre, P., “Ward’s Hierarchical Agglomerative Clustering Method: Which Algorithms Implement Ward’s Criterion?,” 2014, J Classif 31, 274–295, https://link.springer.com/article/10.1007/s00357-014-9161-z
2 Kaufman, L.; Rousseeuw, P. J., Finding Groups in Data: An Introduction to Cluster Analysis. Wiley. Chp 6. Divisive Analysis (Program DIANA) pp. 253–279, https://onlinelibrary.wiley.com/doi/book/10.1002/9780470316801
3 Galili, T., “Introduction to dendextend,” The Comprehensive R Archive Network, 2023, https://cran.r-project.org/web/packages/dendextend/index.html
4 Lecture Notes from Penn State Eberly College of Science, “Hierarchical Clustering”, https://online.stat.psu.edu/stat555/node/85/
5, 17 Maimon, O., Rokach, L., Data Mining and Knowledge Discovery Handbook, 2010 2nd ed, Springer, https://link.springer.com/book/10.1007/978-0-387-09823-4
6 Sokal, R, Michener, C., “A statistical method for evaluating systematic relationships,” 1958, University of Kansas Science Bulletin, 38: 1409–1438, https://archive.org/details/cbarchive_33927_astatisticalmethodforevaluatin1902/page/n1/mode/2up
7 Ward, J. H., “Hierarchical Grouping to Optimize an Objective Function,” 1963, Journal of the American Statistical Association, 58 (301): 236–244, https://www.tandfonline.com/doi/abs/10.1080/01621459.1963.10500845.
8 Lecture Notes from Penn State Eberly College of Science, “Applied Multivariate Statistical Analysis”, https://online.stat.psu.edu/stat505/lesson/14/14.7
9, 15 Shetty P. and Singh S., “Hierarchical Clustering: A Survey,” International Journal of Applied Research, Vol 7 Issue 4, Part C, 2021, https://www.allresearchjournal.com/archives/?year=2021&vol=7&issue=4&part=C&ArticleId=8484
10 Macnaugton-Smith, P., Williams, W., Dale, M., et al., “Dissimilarity Analysis: a new Technique of Hierarchical Sub-division,” Nature 202, 1034–1035 (1964), https://www.nature.com/articles/2021034a0
12 Boehmke, B., Greenwell, B., Hands-On Machine Learning with R, Taylor and Francis, 2020, https://bradleyboehmke.github.io/HOML/
13 Cavalli-Sforza, L. L., and Edwards A. W. F., “Phylogenetic analysis: models and estimation procedures,” 1967, Evolution 21: 550–570 and Am. J.ハム。遺伝子。19:233–257、https://pmc.ncbi.nlm.nih.gov/articles/PMC1706274/
14 Sci-kit learn 1.3.2, 2.3 Clustering, https://scikit-learn.org/stable/modules/clustering.html
16 Lecture notes from MIT OpenCourseWare, 2017, https://ocw.mit.edu/courses/15-071-the-analytics-edge-spring-2017/pages/clustering/recommendations-worth-a-million-an-introduction-to-clustering/video-5-hierarchical-clustering/
18 Lecture notes from the University of Washington, 2001, https://courses.cs.washington.edu/courses/csep546/04au/pdf-slides/10.pdf
19 Boehmke, B., University of Cincinnati Business Analytics R Programming Guide, https://uc-r.github.io/hc_clustering#algorithms
20 QCBS R Workshop Series, https://r.qcbs.ca/workshop09/book-en/clustering.html
21 Zhongheng Zhang et al., “Hierarchical cluster analysis in clinical research with heterogeneous study population: highlighting its visualization with R,” Annals of Translational Medicine. 2017年2月; 5(4): 75, https://atm.amegroups.org/article/view/13789/14063
22, 23 Scit-kit learn 1.3.2 documentation, https://scikit-learn.org/stable/modules/generated/sklearn.cluster.AgglomerativeClustering.html
24 SciPy Manual v1.11.4, https://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.hierarchy.dendrogram.html