カテゴリ変数が多い場合のk-meansでコサイン類似度の選択が良いような気がする理由
はじめに
カテゴリカル変数が多いデータにおいて、k-meansクラスタリングで距離関数としてコサイン類似度を使用すると、良いクラスターが得られるように感じることがあります。これは一見直感に反するように思えますが、実はコサイン類似度の持つ特性が、カテゴリカルデータの性質と非常に相性が良いことがその理由です。
この記事では、なぜコサイン類似度がカテゴリカル変数が多い場合に適切なのかについて、理論的な根拠を基に解説していきます。また、ユークリッド距離との比較を通じて、コサイン類似度がクラスタリングにおいていかに優位性を持つかを詳述します。
k-meansにおける距離関数の役割
k-meansクラスタリングは、データポイント間の「距離」に基づいてクラスターを形成します。その際、距離関数の選択がクラスタリング結果に大きな影響を及ぼします。一般的に、ユークリッド距離がデフォルトとして用いられることが多いですが、データの性質に応じて他の距離関数を選択することが重要です。
カテゴリカル変数が多いデータにおいては、ユークリッド距離は必ずしも適切ではありません。一方で、コサイン類似度はデータのパターンや方向性に基づいた距離を測定するため、このような場合に特に有用です。
カテゴリカル変数の特性とユークリッド距離の課題
カテゴリカル変数は、高次元かつ疎なベクトル表現になることが多いです。たとえば、One-Hotエンコーディングを行った場合、各観測点は多次元空間内でほとんどの値がゼロとなります。このような場合、ユークリッド距離には以下のような課題があります:
次元の呪い 高次元空間では、ユークリッド距離がほとんど均一化し、距離の差異が意味を失うことがあります。これにより、クラスタリングがうまく機能しない可能性があります。
スケールの問題 ユークリッド距離はベクトルの大きさ(ノルム)に敏感です。カテゴリカル変数が多い場合、ノルムの違いはデータの本質的な類似性を反映しないことが多いです。
疎なデータに対する不適応 高次元で疎なデータでは、ユークリッド距離が直感的な類似性を適切に捉えられません。特にゼロが多いデータでは、距離がゼロ成分の影響を過剰に受ける傾向があります。
コサイン類似度の特性
一方、コサイン類似度はベクトル間の角度に基づいて類似度を測定します。これは次のような特性を持ちます:
スケールに依存しない コサイン類似度はベクトルを正規化(大きさを無視)して比較するため、カテゴリカルデータのようなスケールの異なる特徴を持つデータに対しても頑健です。
方向性の評価 コサイン類似度は、ベクトルの方向性(パターンの一致)を重視します。これは、カテゴリカル変数が多い場合に、ゼロ成分の影響を最小限に抑え、重要な特徴を強調することを意味します。
高次元データへの適応性 コサイン類似度は高次元空間でも有意義な類似性を提供します。特に疎なデータの場合、非ゼロ要素間の一致に焦点を当てるため、ユークリッド距離よりも直感的な結果を得ることができます。
なぜカテゴリカル変数が多い場合にコサイン類似度が適切なのか
カテゴリカル変数が多い場合、データの特徴は「どのカテゴリに属しているか」という情報によって決まります。このようなデータにおいて、コサイン類似度が適切である理由を以下に挙げます:
1. カテゴリの一致を重視
コサイン類似度は、カテゴリカル変数間の「パターンの一致」に基づいて類似性を測ります。たとえば、同じカテゴリに属するデータポイントは類似性が高く評価されるため、クラスター内のデータがより一貫性を持つようになります。
2. ノイズに対する頑健性
ユークリッド距離では、一部のカテゴリが大きな影響を与える可能性があります。一方で、コサイン類似度はベクトルの全体的なパターンを評価するため、ノイズに対してより頑健です。
3. 高次元データでの直感的な結果
カテゴリカル変数の多いデータでは、次元が増えるにつれてユークリッド距離が均一化する問題がありますが、コサイン類似度は次元の増加による影響を受けにくく、より意味のあるクラスタリング結果を提供します。
実例:文書データのクラスタリング
文書データをTF-IDFベクトルに変換した場合、これは高次元かつ疎なデータとなります。このような場合、コサイン類似度を用いると、文書間のトピックの類似性を正確に捉えることができます。カテゴリカルデータでも同様に、特徴の一致に基づくクラスタリングが可能になります。
ユークリッド距離とコサイン類似度の比較
特性 ユークリッド距離 コサイン類似度 スケールの影響 影響を受けやすい 影響を受けない 高次元データでの性能 距離が均一化しやすい 意味のある類似性を保つ 疎なデータへの適応性 適応が困難 非ゼロ成分の一致を重視 ノイズに対する頑健性 弱い 強い
結論
カテゴリカル変数が多い場合、k-meansクラスタリングでコサイン類似度を距離関数として使用することは、データの特性に基づいた適切な選択です。コサイン類似度は、データの方向性やパターンを重視し、高次元かつ疎なデータにも対応できるため、ユークリッド距離よりも直感的で有意義なクラスタリング結果を提供します。
データの特性を正しく理解し、それに合った距離関数を選択することが、クラスタリングの成功の鍵となります。カテゴリカル変数が多いデータを扱う際には、コサイン類似度をぜひ試してみてください。