階層的クラスタリングとは?仕組み・linkage・k平均法との違いを解説

階層的クラスタリングとは、データ同士の距離や類似度をもとに、クラスタを段階的にまとめて階層構造を作る教師なし学習の手法です。結果をデンドログラム(樹形図)で表すと、どのデータがどの順番で結合されたかを確認できます。

クラスタ数を最初から一つに決めず、樹形図を異なる高さで切って複数の粒度を検討できる点が特徴です。一方で、距離の定義、結合方法、外れ値、データ数によって結果と計算量が変わります。本記事では、凝集型と分割型の違い、linkageの選び方、k平均法との比較、実務での活用と注意点を解説します。

階層的クラスタリングは結合の過程を木構造で表します

凝集型(agglomerative)では、最初は各データを別々のクラスタとし、近いクラスタ同士を順に結合します。最終的には全データが一つのクラスタになります。分割型では、全体から始めて遠いグループを分けますが、実務では凝集型がよく利用されます。

デンドログラムの高さが結合距離を表します

デンドログラムの枝が結合した高さは、その結合に必要だった距離やコストを表します。低い位置で結合されたデータは近く、高い位置で結合された枝を切ると大きなグループへ分かれます。樹形図の形を見ながら、業務で扱いやすい粒度を選べることが利点です。

linkageがクラスタ間の距離の定義を決めます

scikit-learnのAgglomerativeClusteringでは、Ward、complete、average、singleなどの結合基準を指定できます。Wardは結合後の分散を小さくする方向、completeはクラスタ間の最大距離、averageは平均距離、singleは最小距離を使います。データ形状と距離の意味に合う方法を選びます。

距離と前処理を決めてから階層を作ります

ユークリッド距離、マンハッタン距離、コサイン距離など、どの距離を使うかで近いデータの意味が変わります。売上や回数の大きさを比較するならスケール調整、文章ベクトルなら方向を重視するコサイン距離など、特徴量の性質から候補を決めます。

標準化せずに値の大きい特徴量を混ぜると、他の特徴が距離に反映されにくくなります。欠損、外れ値、カテゴリ変数、重複データを確認し、前処理と距離を固定して比較します。Ward linkageを使う場合は、scikit-learnの仕様上、ユークリッド系の距離が前提になる点にも注意します。

クラスタ数は樹形図と業務の粒度で決めます

デンドログラムで大きな距離の段差がある位置を切ると、自然なクラスタ数の候補を得られます。distance_thresholdを使い、結合距離が一定値を超えたところで止める方法もあります。n_clustersを固定する場合は、複数候補を比較し、クラスタ内のばらつき、クラスタ間の分離、代表データを確認します。

顧客施策であれば営業が運用できる分類数、文書棚卸しなら担当部署が確認できる単位など、実務の制約を明確にします。細かい階層を残しておけば、上位の大分類と下位の詳細分類を用途ごとに使い分けられます。

k平均法とはクラスタ数と形の扱いが異なります

k平均法はk個の中心を更新し、指定した数のクラスタを直接作ります。大規模データで高速に使いやすい一方、クラスタが球状に近いことや、平均と距離が意味を持つことが前提です。階層的クラスタリングは結合履歴を残し、クラスタ数を後から選びやすい代わりに、全体の距離計算やメモリの負荷が大きくなる場合があります。

データが大きい場合はサンプリングや特徴量削減で樹形図の候補を探索し、最終的な割り当ては別の手法で実行する設計もあります。速度、再計算頻度、説明しやすさ、階層を保持する必要性を比較して選択します。

階層的クラスタリングの活用例

  • 顧客の大分類・小分類:全体の顧客層から、施策別にさらに細かいグループを作る。
  • 文書・FAQの整理:類似文書をまとめ、カテゴリや検索導線の候補を作る。
  • 商品・部品の体系化:特徴が近い商品を階層化し、管理や品揃えを見直す。
  • センサー・設備の状態探索:似た時系列特徴をまとめ、点検対象や異常候補を確認する。

分析後は各クラスタの代表データ、中央値、分散、業務属性、期間別の件数を確認します。樹形図上で近くても、現場の運用や契約条件が違えば同じ施策を適用できないことがあります。クラスタはデータ上の仮説として扱い、担当者のレビューと施策結果で意味を確かめます。

階層を保存すると、経営層には大分類、現場には詳細分類というように、利用者ごとに異なる粒度で結果を提示できます。ただし、下位クラスタを細かくしすぎると件数が少なくなり、施策や統計の信頼性が落ちます。各階層で最低限必要な件数と、統合・廃止の判断基準を決めます。

時系列データを扱う場合は、期間の違いが距離へ強く反映されないか確認します。過去と現在を同じグループとして比較したいのか、変化した状態を別グループとして発見したいのかで、集計期間と特徴量の作り方が変わります。

サンプルや期間を変えて階層の安定性を確認します

階層的クラスタリングは、入力データが少し変わるだけで結合順や樹形図が変わることがあります。期間、サンプル、特徴量の候補を変えて、上位の大分類が再現するか確認します。再現しない場合は、特定の外れ値や一時的なイベントが構造を作っていないかを調べます。

階層の変更を業務システムへ安全に反映します

商品分類や顧客施策へ利用する場合、クラスタの統合・分割によって既存のルールが変わります。新しい階層を並行表示し、担当者の承認後に配信や在庫ルールへ反映する段階を設けます。旧モデルでの所属と新モデルでの所属を保存しておくと、変更後の結果を比較しやすくなります。

クラスタの階層を共有するときは、各ノードに作成日時、対象期間、距離、linkage、代表データを紐づけます。これにより、担当者が「なぜこのグループになったのか」を確認でき、モデル更新で分類が変わった場合も影響範囲を説明できます。

しきい値で階層を切り出す場合も、選択した距離とクラスタ数を保存します。同じデータを再計算したときに、どの設定で同じ分類が得られたかを追跡できるためです。

階層的クラスタリングで起きやすい失敗と対策

linkageを変えずに結果だけを解釈する

singleは鎖状のクラスタを作りやすく、completeは外れ値の影響を受けることがあります。Ward、average、completeなど複数の基準を比較し、データの形と業務上の解釈が一致するか確認します。

距離のスケールや欠損を放置する

スケールが異なる特徴量や欠損をそのまま扱うと、距離と結合順が変わります。前処理、距離、欠損補完のルールを実験記録に残し、別期間で同じ結果が得られるかを確認します。

データ数が多いのに全件で樹形図を作る

階層的クラスタリングはデータ数が増えると距離計算とメモリの負荷が増えます。代表サンプル、特徴量削減、接続制約、MiniBatch系の手法などを検討し、処理時間と精度のトレードオフを測定します。

階層的クラスタリングのチェックリスト

  • データ間の距離を何で定義するか決めたか。
  • 標準化、欠損、外れ値、カテゴリ表現を確認したか。
  • linkageの候補を比較し、デンドログラムを保存したか。
  • クラスタ数または距離しきい値の理由を記録したか。
  • 代表データと業務属性をレビューしたか。
  • 処理時間、再計算頻度、階層の更新方法を運用に落としたか。

階層的クラスタリングは粒度を選べる探索手法です

階層的クラスタリングは、近いデータを順に結合し、その過程をデンドログラムとして残します。クラスタ数を後から変えられ、大分類と小分類を同じ結果から検討できる点が利点です。距離、linkage、前処理、外れ値、データ規模が結果と計算量を左右します。

樹形図の見た目だけでクラスタを確定せず、代表データ、再現性、業務での利用単位を確認します。大規模データでは、サンプルで階層を探索し、実運用へは処理負荷に合う手法を組み合わせる設計が現実的です。

よくある質問(FAQ)

ここでは、階層的クラスタリングを使うときによくある疑問に、結論から回答します。

Q. 階層的クラスタリングとは何ですか?

データ間の距離をもとにクラスタを段階的に結合または分割し、樹形図で階層構造を作る教師なし学習です。

Q. Ward、complete、average、singleはどう使い分けますか?

結合するクラスタ間の距離の定義が違います。Wardは分散、completeは最大距離、averageは平均距離、singleは最小距離を基準にするため、データの形と外れ値への感度を比較します。

Q. クラスタ数はどう決めますか?

デンドログラムの段差、距離しきい値、クラスタ内外の分離、代表データ、業務で扱える粒度を組み合わせて決めます。数値だけでなく利用者の解釈も確認します。

Q. k平均法との違いは何ですか?

k平均法はk個のクラスタを直接作るのに対し、階層的クラスタリングは結合過程を残し、複数の粒度を後から選べます。大規模データではk平均法の方が計算しやすい場合があります。

Q. 大量データにも使えますか?

使えますが、距離計算とメモリの負荷が増えます。サンプリング、特徴量削減、接続制約、別のクラスタリング手法を比較し、処理時間と結果の妥当性を確認します。

参考資料

会社紹介

株式会社riplaでは、お客様の事業・ユーザー・業務に最適化したオーダーメイド型システムを、構想策定・要件定義から開発・改善まで一気通貫で支援。事業会社でIT・DXを経験したプロフェッショナルによる高い要件定義力・システム設計力を活かし、事業成果の最大化に伴走します。

また、当社独自の開発テンプレート「Boxシリーズ」による標準機能の高速開発と、AI駆動開発の独自フレームワーク「GoDD」による独自機能のAI実装を組み合わせることで、低コスト・短期間で開発を実現いたします。

もし、システム開発やプロダクト開発に関するご要望がございましたら、お気軽にお問い合わせください。

・サービス概要資料のURLはこちら >>>
・お問合せページのURLはこちら >>>
・お役立ち資料のURLはこちら >>>

執筆者プロフィール
張田谷凌央
張田谷凌央

株式会社ripla 代表取締役CEOとして、システムパッケージ活用、システム開発、データ分析、生成AI活用、SaaS開発、アプリ開発、EC構築など、幅広い領域で企業のDX推進と事業成長を支援している。事業会社でIT・DXを経験したプロフェッショナルが集う株式会社riplaにおいて、お客様の事業・ユーザー・業務に最適化したオーダーメイド型システムを構想策定・要件定義から開発・改善まで一気通貫で支援し、単なるシステム納品にとどまらず、クライアントと同じ目線で事業成果の最大化に向けた伴走支援を行う。早稲田大学卒業後、ラクスル株式会社、LINEヤフー株式会社にて事業開発やDX推進などに従事した後、株式会社riplaを創業。