シルエット係数とは

シルエット係数とは、教師なし学習におけるクラスタリングの性能を評価するために用いられる指標の一つであり、データセット内の各データ点に対して計算されます。

各データ点が自身の所属するクラスタとの凝集度(cohesion)と、最も近い他のクラスタとの分離度(separation)を比較することで、クラスタリングの品質を定量的に評価することができます。

シルエット係数 の基本概念

シルエット係数は、個々のデータ点 i に対して計算され、以下の2つの距離に基づいて算出されます。

  • a(i): データ点 i と、同じクラスタ内の他の全てのデータ点との平均距離(クラスタ内距離)。この値が小さいほど、データ点 i は自身のクラスタによく適合していると言えます。
  • b(i): データ点 i と、自身が所属するクラスタとは異なる、最も近い他のクラスタ内の全てのデータ点との平均距離(クラスタ間距離)。この値が大きいほど、データ点 i は他のクラスタからよく分離していると言えます。

これらの距離 a(i) と b(i) を用いて、データ点 i のシルエット係数 s(i) は以下の式で定義されます。

s(i)=max(a(i),b(i))b(i)−a(i)​

シルエット係数 s(i) は −1 から 1 の間の値をとり、その値によってクラスタリングの品質を以下のように解釈します。

  • s(i)≈+1: データ点 i は自身のクラスタによく適合しており、かつ最も近い他のクラスタから明確に分離している(良いクラスタリング)。
  • s(i)≈0: データ点 i はクラスタの境界付近に位置しており、どちらのクラスタに所属するのが適切か判断が難しい。
  • s(i)≈−1: データ点 i は自身のクラスタにあまり適合しておらず、むしろ他のクラスタに割り当てられるべきである可能性が高い(悪いクラスタリング)。

データセット全体のクラスタリングの品質を評価する際には、全てのデータ点のシルエット係数の平均値(平均シルエット係数)が用いられます。平均シルエット係数が 1 に近いほど、クラスタリングの品質が高いと判断されます。

シルエット係数 の計算手順

  1. データセットに対してクラスタリングアルゴリズムを適用し、各データ点の所属クラスタを決定します。
  2. 各データ点 i について、以下の計算を行います。
    • 自身のクラスタ内の他の全てのデータ点との距離を計算し、その平均値 a(i) を求めます。距離の計算には、ユークリッド距離やマンハッタン距離などが用いられます。
    • 自身が所属するクラスタ以外の各クラスタについて、データ点 i とそのクラスタ内の全てのデータ点との平均距離を計算します。
    • これらの平均距離の中から最小の値を b(i) とします。これが、データ点 i に最も近い他のクラスタとの分離度を表します。
    • a(i) と b(i) を用いて、シルエット係数 s(i) を上記の式に従って計算します。
  3. データセット全体のクラスタリング品質を評価する場合は、全てのデータ点のシルエット係数 s(i) の平均値を計算します。

シルエット係数 のメリット

  • 直感的で解釈しやすい: 各データ点とクラスタリング全体の品質を −1 から 1 の間の値で直感的に評価できます。
  • クラスタ数に依存しない: 評価の際に真のラベル情報を必要としない内部評価指標であるため、クラスタリングアルゴリズムが生成したクラスタ数に関わらず評価が可能です。
  • 異なるクラスタリング結果の比較: 異なるクラスタリングアルゴリズムやパラメータ設定によって得られた複数のクラスタリング結果を、シルエット係数に基づいて比較することができます。
  • 不適切なクラスタリングの検出: シルエット係数の値が低いデータ点や、負の値を持つデータ点の存在は、クラスタリングが適切でない可能性を示唆します。

シルエット係数 のデメリット

  • 距離尺度への依存: シルエット係数の値は、データ点間の距離をどのように定義するか(距離尺度)に依存します。不適切な距離尺度を選択すると、評価結果が歪む可能性があります。
  • 凸型でないクラスタの評価: シルエット係数は、凸型のクラスタを仮定している傾向があるため、複雑な形状のクラスタに対しては適切に評価できない場合があります。
  • 高次元データへの適用: 高次元のデータにおいては、距離の概念が希薄になりやすく、シルエット係数の解釈が難しくなることがあります。
  • クラスタサイズの不均衡: クラスタのサイズが大きく異なる場合、シルエット係数の評価が偏る可能性があります。

シルエット係数 の応用例

シルエット係数は、クラスタリングアルゴリズムの性能評価や、最適なクラスタ数の決定などに用いられます。

  • クラスタリングアルゴリズムの選択: 複数のクラスタリングアルゴリズムを同一のデータセットに適用し、それぞれの平均シルエット係数を比較することで、最適なアルゴリズムを選択する際の判断材料となります。
  • 最適なクラスタ数の決定: k-meansなどのクラスタ数を事前に指定する必要があるアルゴリズムにおいて、様々なクラスタ数でクラスタリングを行い、平均シルエット係数が最大となるクラスタ数を最適なクラスタ数として選択する手法があります。
  • クラスタリング結果の可視化と分析: 各データ点のシルエット係数を可視化することで、どのデータ点がクラスタリングの品質に貢献しているか、または問題があるかなどを分析することができます。

シルエット係数は、クラスタリング結果の内部評価指標として、個々のデータ点の凝集度と分離度に基づいてクラスタリングの品質を定量的に評価する有用なツールです。直感的な解釈が可能であり、異なるクラスタリング結果の比較や最適なクラスタ数の決定に役立ちますが、距離尺度への依存性や複雑な形状のクラスタに対する評価の限界などを理解した上で適切に活用する必要があります。

関連用語

クラスタリング | 今更聞けないIT用語集
階層的クラスタリング | 今更聞けないIT用語集
AIソリューション

お問い合わせ

システム開発・アプリ開発に関するご相談がございましたら、APPSWINGBYまでお気軽にご連絡ください。

APPSWINGBYの

ソリューション

APPSWINGBYのセキュリティサービスについて、詳しくは以下のメニューからお進みください。

システム開発

既存事業のDXによる新規開発、既存業務システムの引継ぎ・機能追加、表計算ソフトによる管理からの卒業等々、様々なWebシステムの開発を行っています。

iOS/Androidアプリ開発

既存事業のDXによるアプリの新規開発から既存アプリの改修・機能追加まで様々なアプリ開発における様々な課題・問題を解決しています。


リファクタリング

他のベンダーが開発したウェブサービスやアプリの不具合改修やソースコードの最適化、また、クラウド移行によってランニングコストが大幅にあがってしまったシステムのリアーキテクチャなどの行っています。