シルエット係数とは、教師なし学習のクラスタリングにおいてデータの分割結果がどれだけ適切かを評価する指標です。各データが属するグループ内の凝集度と他グループとの分離度を計算し、-1から+1の範囲で数値化します。値が1に近いほど良好な分離状態を示し、最適なグループ数を決定する際などに広く活用されます。
シルエット係数とは
シルエット係数は、一言でいうと「クラスタリングの結果として各データが適切なグループにきれいに分かれているかを測定する評価指標」です。
詳しく解説
シルエット係数は、教師なし学習において正解ラベルが存在しないデータ群をグループ分けした際の品質を客観的に測るために用いられます。各データ点について、同じクラスタ内の他のデータとの平均距離である凝集度と、最も近い隣接クラスタ内のデータとの平均距離である乖離度を比較して算出されます。係数の値は-1から+1の範囲を取り、1に近いほどクラスタ内が密で他クラスタと明確に分離していることを意味します。0付近はクラスタの境界上にデータが存在することを示し、負の値は誤ったクラスタに割り当てられている可能性を示唆します。データセット全体の平均値を比較することで、モデルの妥当性を検証できます。
具体例・使われ方
例えば、購買データをもとに顧客を自動でセグメンテーションする際、k-means法などのアルゴリズムでクラスタ数というハイパーパラメータを設定します。クラスタ数を2から10まで変更しながらシルエット係数の平均値を比較し、スコアが最も高くなるクラスタ数を採用することで、客観的で分離度の高いグループ分けを実現できます。
似た用語との違い
混同されやすい手法としてエルボー法があります。エルボー法はクラスタ内の誤差平方和の減少率が緩やかになる屈曲点をグラフから視覚的に探す手法であり、判断に主観が入りやすい側面があります。一方、シルエット係数はクラスタ内の近さだけでなく他クラスタとの離れ度合いも同時に考慮し、具体的な数値として明確に大小を比較できる点が異なります。
注意点
シルエット係数はすべてのデータ点間の距離を計算するため、データ規模が極めて大きい場合には計算コストが高大になる点に注意が必要です。また、球状のまとまりを前提とした距離計算に基づくため、三日月型などの複雑な非凸形状を持つクラスタや、密度が極端に異なるクラスタリングに対しては適切な評価を下せない場合があります。