プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

階層的クラスタリングの主要な要素とは?特徴と課題を徹底解説

階層的クラスタリングは、データオブジェクトを順次併合しながらクラスタの木構造(デンドログラム)を構築していく手法です。アルゴリズムには、個々のデータから出発して大きなクラスタへと統合していくボトムアップ型(凝集型)と、全体を一つのクラスタと見なし段階的に細分化していくトップダウン型(分割型)の2種類があります。

階層的クラスタリングの精度に関する重要な特性は、マージ(併合)や分割の決定が完了すると、それを後から調整し直せないという点にあります。本記事では、階層的クラスタリングを理解する上で押さえておきたい主要な要素を詳しく解説します。

1. 大域的な目的関数を持たない

凝集型階層的クラスタリングでは、各ステップにおいて「どのクラスタ同士を併合すべきか」(分割型の場合は「どのクラスタを分割すべきか」)を、複数の要素に基づいて局所的に判断します。

このアプローチにより、複雑な組み合わせ最適化問題を直接解く必要がなくなり、大域的な最適化の難しさを回避した実用的なクラスタリングアルゴリズムが実現されています。

2. さまざまなクラスタサイズへの対応能力

凝集型階層的クラスタリングのもう一つの重要な要素は、併合対象となるクラスタ群の相対的なサイズをどのように考慮するかという点です。この考慮は、セントロイド法、ウォード法、グループ平均法など、距離の定義に「和」を含むクラスタ近接度スキームにのみ適用されます。

扱い方には次の2通りがあります。

  • 重み付けあり(weighted):すべてのクラスタをサイズに関係なく平等に扱う方法
  • 重み付けなし(unweighted):各クラスタに含まれるデータポイント数を考慮する方法

ここでいう「重み付き/無重み」の区別は、クラスタそのものではなくデータポイントに対するものです。言い換えれば、サイズの異なるクラスタを平等に扱うことは、クラスタごとにポイントの重みが不均等になることを意味します。逆に、クラスタサイズを考慮すれば、異なるクラスタに属するポイントにも同等の重みが与えられます。

3. 併合の決定は取り消せない

凝集型階層的クラスタリングのアルゴリズムは、すべてのポイント間のペアワイズ類似度情報を活用できるため、2つのクラスタを併合する際には比較的良好な局所的な判断を下せる傾向があります。しかし、一度下された併合の決定は、後の段階で取り消すことができません。

このため、局所的に最適な判断の積み重ねが、結果として大域的な最適化基準を満たさないという問題が生じます。

例えば、ウォード法ではK-meansと同じ「二乗誤差(SSE)の最小化」という基準を併合先の決定に使用しますが、各レベルで得られるクラスタ構成が全体のSSEの局所最小値を保証するわけではありません。実際、あるクラスタに属するポイントが、自クラスタの重心よりも別のクラスタの重心の方に近いという事態も起こり得ます。

併合の不可逆性を克服するための手法

「併合が最終決定である」という制限を克服しようとする手法もいくつか提案されています。

枝の再配置による修正:クラスタの木構造の枝を入れ替えることで、大域的な目的関数の値を改善しようとする方法です。

分割型クラスタリングとの併用:K-meansなどの分割型クラスタリング手法でまず小さなクラスタを多数作成し、それらを出発点として階層的クラスタリングを実行する方法です。これにより、初期段階で誤った併合を行うリスクを低減できます。

  1. DES(データ暗号化標準)を構成する主な要素とは?

    ```html DES(Data Encryption Standard)には、以下のようなさまざまな重要な要素が存在します。 Sボックス(S-Box)の利用 DESにおいて置換処理に使用されるテーブル、すなわちSボックスは、IBMによってその設計内容が非公開とされています。IBMによれば、Sボックスの内部設計を完成させるまでに17人年以上もの歳月を要したとされています。この設計の秘匿性こそが、DESの安全性を支える要素の一つとなっています。 鍵長 暗号システムには、暗号アルゴリズムと鍵という2つの重要な要素があります。DESアルゴリズムの内部動作は完全に公開されているため、DESの強度は、秘

  2. C言語でキューに要素を挿入する方法を徹底解説!基本概念からサンプルコードまで

    データ構造とは、データを体系的かつ効率的に整理・格納するための仕組みです。データ構造は、その構成方法によって大きく以下の2種類に分類できます。線形データ構造 − データが一直線上に順序立てて配置される構造です。例として、配列、構造体、スタック、キュー、連結リストなどが挙げられます。非線形データ構造 − データが階層的・網目的に配置される構造です。例として、木(ツリー)、グラフ、集合、テーブルなどが挙げられます。キュー(Queue)とはキューは線形データ構造の一つで、後端(リア/rear)から要素を挿入し、前端(フロント/front)から要素を削除するという特徴を持っています。キューにおけるデー