クラスタリングは、データを「似ているもの同士」にまとめ、データの中に潜む構造や傾向を見つけるための分析手法です。正解ラベルがない状態でも使えるため、顧客セグメンテーション、異常検知、文書の整理など、現場で扱う“雑多で大きなデータ”の理解に役立ちます。
ただし、クラスタリングは万能ではなく、距離の取り方や前処理、クラスタ数の決め方によって結果が大きく変わります。本記事では、基本概念から類似度の考え方、代表的アルゴリズム、評価指標、実務での進め方までをつなげて整理します。
クラスタリングとは、機械学習・データ分析における代表的な手法の一つで、データを自動的にグループ分けする作業を指します。データを特定の特性や類似性に基づいて、「クラスタ」と呼ばれるグループに分けることで、データの構造を把握しやすくします。
目的は、データの中から意味のある「まとまり」を見つけることです。たとえば、顧客の行動パターンの発見、似た製品のまとまりの抽出、異常値(他と明らかに違うデータ)の候補の検出などに使われます。特に、顧客データのマーケティングや、遺伝子データの解析など、大量データから知識を発見する手段として広く利用されています。
クラスタリングがよく使われる目的は、データセット内にある隠れたパターンや構造を見つけ出すことです。データを一度まとまりに分けると、個々のデータを1件ずつ見るよりも、全体像や傾向をつかみやすくなります。
利点として、データ量が多くても類似性の高いデータをまとめられるため、各クラスタに注目することでデータ全体の特徴を理解しやすくなります。たとえば顧客データなら「価格重視層」「高頻度購入層」「単発購入層」のようなセグメントを作り、施策立案の出発点にできます。
またクラスタリングは教師なし学習に分類されます。事前に正解ラベル(教師データ)がなくても、データそのものから特徴やグループを見つけ出せる点が強みです。一方で、正解がないからこそ「このクラスタが本当に意味を持つのか」を評価・解釈する難しさがあります。実務では、評価指標に加えて、クラスタごとの特徴量の差や業務上の解釈可能性をセットで確認することが重要です。
クラスタとは、類似したデータが集まったグループを指します。クラスタリングの狙いは、「クラスタ内は似ている(同質性が高い)」「クラスタ間は違う(異質性が高い)」状態になるようにデータを分けることです。
この「似ている/違う」を判断するために使う尺度が類似度または距離です。どの距離(類似度)を使うかで、同じデータでもクラスタの形が変わることがあるため、距離の選択はクラスタリングの根本を決める要素になります。
クラスタリングでは、データ間の類似度(距離)が結果を大きく左右します。類似度が高いデータ同士を同じグループにまとめ、遠いデータ同士は別のクラスタに分ける、という考え方が基本です。
ここでは代表的な距離・類似度として、ユークリッド距離、マンハッタン距離、コサイン類似度を紹介します。どれが正解というより、データの性質(数値か、スパースか、次元が多いか)と、目的(量の差を見たいのか、方向を見たいのか)に合わせて選ぶことが重要です。
ユークリッド距離は、2点間の直線距離を測る距離です。特徴量ごとの差を二乗して足し合わせ、その平方根をとるため、「量の差」を素直に反映します。
注意点として、ユークリッド距離はスケール(単位)の影響を強く受けます。たとえば「年齢(0〜100)」と「年収(0〜数千万円)」をそのまま使うと、年収の差が距離を支配してしまい、年齢の影響がほぼ消えることがあります。実務では、標準化(平均0・分散1)や正規化などのスケーリングを行い、距離計算が特定の特徴量に偏らないようにします。
また外れ値(極端に大きい値)があると距離が引っ張られやすいため、外れ値処理やロバストなスケーリングの検討も重要です。
マンハッタン距離は、格子状の道を縦横に移動する距離(差の絶対値の総和)として定義されます。ユークリッド距離に比べて、極端な値の影響が相対的に小さくなるケースがあり、外れ値に対してロバストと言われることがあります。
ただし、スケーリングが不要というわけではありません。マンハッタン距離も特徴量の単位の影響を受けるため、基本的には標準化・正規化を検討するのが安全です。実務での使い分けとしては、外れ値が混ざりやすいデータや、差の絶対量で距離を測りたい場合に候補になります。
コサイン類似度は、データ(ベクトル)同士の角度に注目する類似度です。大きさ(ノルム)ではなく方向が近いほど類似しているとみなすため、「量」より「パターン」が似ているかを見たいときに向きます。
たとえばテキストデータ(単語の出現頻度など)は高次元かつスパースになりやすく、文書の長さ(単語数)が異なるとユークリッド距離では長さの差が強く出ることがあります。コサイン類似度は方向を見て比較できるため、文書分類や文書クラスタリングでよく使われます。
クラスタリングはアルゴリズムの性質によって、得意なデータ形状や前提条件が異なります。ここでは大きく、階層的クラスタリング、非階層的クラスタリング、混合モデル法、密度ベースのクラスタリングを整理します。
実務では「データの形が球状に近いか」「ノイズや外れ値が多いか」「クラスタ数を事前に決められるか」「結果を説明できる必要があるか」といった観点で選ぶと判断しやすくなります。
階層的クラスタリングは、データを段階的にまとめたり(凝集型)、段階的に分割したり(分割型)して、クラスタの階層構造を作る手法です。
凝集型は「各データを1つのクラスタ」として開始し、似たクラスタ同士を順に結合していきます。分割型は「全データが1つのクラスタ」から開始し、差異に基づいて分割していきます。
結果はデンドログラム(樹形図)で表現され、どこで切るかによってクラスタ数を調整できます。クラスタ数を最初に決めなくても探索できる点と、階層構造が説明に使いやすい点が強みです。一方で、データが非常に大きいと計算コストが増えやすく、距離定義や結合法(リンク法)によって結果が変わりやすい点には注意が必要です。
非階層的クラスタリングは、クラスタ数を事前に決め、その数に基づいてデータをグループ分けする手法です。代表例がK-meansで、各クラスタの中心(重心)とデータ点の距離が小さくなるように、割り当てと中心の更新を繰り返します。
K-meansは大規模データでも比較的高速に動作しますが、前提として「クラスタが球状に近い」「距離が意味を持つ」「クラスタ数kを決められる」ことが望まれます。また初期値(初期中心)の置き方で結果が変わることがあるため、複数回実行して安定性を確認する運用が一般的です。
混合モデル法は、データが複数の確率分布の混合から生成されると仮定し、各データがどの分布(クラスタ)に属するかを推定する手法です。代表例に混合ガウスモデル(GMM)があります。
この手法の特徴は、各データ点がクラスタに所属する確率を持てることです。これにより「必ず1つのクラスタに属する」という硬い割り当てだけでなく、「Aに60%、Bに40%」のようなソフトな割り当ても扱えます。境界があいまいなデータや、重なりのあるクラスタを表現したい場合に有効です。
密度ベースのクラスタリングは、データ点が密集している領域をクラスタとみなす考え方です。代表例のDBSCANは、任意形状のクラスタを見つけやすく、ノイズ(密度の低い点)を外れ値として扱える点が強みです。
クラスタ数を事前に決める必要がない一方で、密度の閾値(パラメータ)設定が結果に強く影響します。密度が大きく異なるクラスタが混在するデータでは、1つのパラメータでうまく切り分けにくい場合もあります。外れ値やノイズが多いデータ、形が歪んだクラスタが想定されるデータで検討候補になります。
クラスタリングは「大量データの整理」と「意思決定の補助」に直結しやすく、ビジネスから研究まで幅広い場面で利用されています。ここでは代表例を、何が嬉しいのかまで含めて整理します。
顧客データをクラスタリングすることで、共通特性を持つ顧客をグループ化し、施策の切り口(セグメント)を作れます。購買頻度、平均購入額、カテゴリ嗜好、サイト行動などを特徴量にすると、「高頻度×高単価」「低頻度×高単価」「価格重視」「新規」など、施策設計の土台になるまとまりが得られます。
重要なのは、クラスタリング結果をそのまま施策にせず、クラスタごとに「何が違うのか」を説明できる状態にすることです。実務では、各クラスタの特徴量の平均や分布、代表的な顧客像(ペルソナ)に落とし込み、営業・マーケ側が意思決定に使える形に整えます。
大量のテキストを扱う場面では、似た主題の文書をまとめるためにクラスタリングが使われます。ニュース記事をトピック別に整理したり、問い合わせログを内容別に分類してFAQ整備や改善点抽出につなげたりする用途が典型です。
テキストは高次元になりやすく、類似度にはコサイン類似度が使われることが多い一方で、前処理(ベクトル化の方法)によって結果が大きく変わります。どの単位で「似ている」を定義するか(単語頻度、埋め込み表現など)を、目的に合わせて選ぶ必要があります。
画像処理では、ピクセルや特徴量をクラスタリングし、画像を領域分割(セグメンテーション)する用途が代表的です。色やテクスチャが近い領域をまとめることで、物体や領域の候補を抽出できます。
医療画像の解析では、異常領域候補の抽出や、組織の差異の可視化などに応用されます。ただし、医療用途のように誤検知が重大になり得る領域では、クラスタリングは単独で結論を出すのではなく、他手法との組み合わせや専門家の判断とセットで使うのが一般的です。
他にも、社会ネットワーク解析(コミュニティ抽出)、バイオインフォマティクス(遺伝子・タンパク質の特徴のまとまり抽出)、音楽の自動分類など、多様な領域で使われます。
共通しているのは、「ラベルがない/ラベル付けが難しい」データでも、まずは構造を把握し、次の分析や意思決定の足場を作れる点です。
クラスタリングは正解ラベルがないことが多いため、「どの結果が良いか」の判断が難しくなりがちです。そこで、クラスタのまとまり具合や分離具合を測る評価指標を使い、アルゴリズム選択、クラスタ数、前処理の調整に活かします。
ここでは、内部のまとまり(内部結合度)、外部の分離(外部分離性)、そして代表的な統合指標であるシルエット係数を整理します。
内部統一性(内部結合度)は、「同じクラスタ内のデータ同士がどれだけ近いか(似ているか)」を示す考え方です。クラスタ内の距離が小さいほど、同じクラスタに属するデータがまとまっていると解釈できます。
ただし、内部統一性だけを極端に追うと、クラスタを細かく分けすぎてしまい、実務で使えない結果になることがあります。評価は必ず「分離」とセットで見て、意味のある粒度になっているかを確認します。
外部分離性(外部結合度)は、「異なるクラスタ同士がどれだけ離れているか(違っているか)」を示す考え方です。クラスタ間が十分に離れていれば、各クラスタが異なる特徴を持つ集団として分かれていると解釈できます。
外部分離性が高いほど望ましい傾向にありますが、データによってはクラスタ同士が重なり合うのが自然な場合もあります。現実のデータは境界が曖昧なことが多いため、過度な分離を期待しすぎないことも重要です。
シルエット係数は、内部統一性と外部分離性を統合して評価する指標です。各データ点について「自分のクラスタ内での近さ」と「最も近い別クラスタへの近さ」を比較し、-1〜1の範囲でスコア化します。
一般に、1に近いほど良好、0付近は境界が曖昧、負の値は割り当てが不適切な可能性がある、と解釈されます。クラスタ数の候補を比較するときの目安として使われますが、指標が高いことと「業務上使えるクラスタ」であることは一致しない場合もあるため、解釈可能性の確認が不可欠です。
指標の使い方としては、次のように段階的に確認すると実務で扱いやすくなります。
このように、数値評価だけで終えず、「意味のある差が出ているか」「意思決定に使えるか」までを含めて評価することが、クラスタリングの成功につながります。
クラスタリングは、アルゴリズムを回すだけで終わる分析ではありません。前処理、パラメータ選定、評価、解釈、可視化を繰り返し、目的に合う形に近づけていく取り組みです。ここでは実務での進め方をステップとして整理します。
最初のステップはデータ準備です。欠損値の扱い(除外・補完)、外れ値の扱い(除外・変換・ロバスト化)、カテゴリ変数のエンコード、スケーリング(標準化・正規化)などを行います。この段階の品質が、結果に直結します。
次に、選択したアルゴリズムを適用します。K-meansのようにクラスタ数が必要な手法では、候補のクラスタ数を複数試し、評価指標や解釈可能性を踏まえて絞り込みます。DBSCANのようにパラメータで密度を調整する手法でも、候補を振って結果の安定性を確認します。
最後に、結果を評価し、必要に応じて前処理やパラメータを調整します。クラスタリングは一回で終わることが少なく、目的に沿うまとまりが得られるまで反復するのが一般的です。
重要なのは、クラスタリングは「データの構造を自動的に正しく分けてくれる魔法の手法」ではない、という点です。典型的な制限を押さえておくことで、過信を避けられます。
これらを踏まえ、結果の安定性確認(複数回実行・パラメータスイープ)と、解釈可能性の確認(特徴量差の説明)が重要になります。
クラスタリングを成功させる鍵は、アルゴリズム選定以前に「目的」と「解釈」を設計することです。
このプロセスを踏むと、単なる「分類結果」ではなく、意思決定の材料としてクラスタリングを活かしやすくなります。
クラスタリング結果の理解には、可視化が非常に有効です。特に高次元データでは、クラスタがどの程度分かれているか、外れ値がどこにいるかを直観的に確認できます。
高次元データを2次元・3次元に落として表示するには、次元削減が使われます。代表例として、PCA(主成分分析)、t-SNE、UMAPなどがあります。PCAは全体の分散を保つ方向で線形に圧縮し、t-SNEやUMAPは局所構造(近さ)を保ちやすい反面、パラメータによって見え方が変わることがあります。
階層的クラスタリングの場合は、デンドログラムによって結合の過程を確認できます。どの距離でどのクラスタが統合されたのかが見えるため、クラスタ数の決定や説明に役立ちます。
データを類似性に基づいて自動的にグループ分けする教師なし学習の手法です。
分類は正解ラベルを学習して割り当てますが、クラスタリングはラベルなしでデータのまとまりを見つけます。
距離の定義が「何を似ているとみなすか」を決めるため、結果のクラスタ構造が大きく変わります。
多くの場合必要です。単位の大きい特徴量が距離を支配して結果が歪むのを防ぎます。
クラスタ数の事前指定が必要で、初期値や外れ値の影響を受けやすい点が弱点です。
ノイズや外れ値が多く、任意形状のクラスタが想定されるデータに向きます。
候補を複数試し、評価指標とクラスタの解釈可能性を両方確認して決めます。
クラスタ内の近さと他クラスタからの離れを統合して-1〜1で評価する指標です。
前処理、距離の選択、初期値やパラメータによって最適化の結果が変わるためです。
指標の高さだけで判断せず、クラスタの特徴を説明でき、施策や判断につながる粒度かを確認します。