階層型クラスタリングは、データ間の類似度をもとに木構造の階層を作り、データをグループ化する教師なし学習の手法です。事前のクラスター数を指定する必要がなく、デンドログラムによって視覚的に関係性を確認できる点が特徴ですが、大規模データでは計算量が増大する課題があります。
階層型クラスタリングとは
一言でいうと、データ間の距離や類似度に基づいてグループ同士を段階的に結合または分割し、木構造のツリーを形成することでデータの階層的な関係性を明らかにする機械学習のアルゴリズムです。
詳しく解説
階層型クラスタリングには、大きく分けて「凝集型(ボトムアップ型)」と「分裂型(トップダウン型)」の2つのアプローチが存在します。一般的には、すべてのデータを個別のクラスターとして出発し、最も近いもの同士を順次統合していく凝集型が広く用いられます。プロセスが進むにつれて階層構造が構築され、結果はデンドログラム(樹状図)と呼ばれる図として視覚化されます。これにより、アナリストはどの段階で統合を止めるべきか、データの構造がどうなっているかを直感的に把握できます。教師なし学習の一つとして、事前のクラスター数を決定する必要がないのが大きな利点です。
具体例・使われ方
顧客の購買履歴や行動パターンを分析して細かいセグメントに分類し、さらにそれらを統合して大まかな顧客層を把握するマーケティングの分野でよく利用されます。また、生物学における遺伝子発現データの解析や、文書の自動分類といったテキストマイニングの領域でも活用されています。
似た用語との違い
代表的な非階層型クラスタリングであるK-means法と比較されることが多くあります。K-means法は最初にクラスター数を指定する必要があり高速に動作する一方、階層型クラスタリングは事前にクラスター数を決める必要がありませんが、データ量が増えると計算コストが非常に高くなる違いがあります。
注意点
データ数が数万件を超えるような大規模なデータセットでは、計算量が急激に増加するためメモリや処理時間の面で実行が困難になるという限界があります。また、一度統合または分割したグループは後からやり直せないため、外れ値の影響を受けやすい点にも注意が必要です。