クラスタリング

クラスタリングとは

クラスタリングはクラス分類と似ているのですが、少々意味が違ってきます。これは英語の綴りでわかる通りClass(分野、類、部類、種類)とCluster(群れ、集団、一団)というように、クラス分類は対象になる分類を見つけることで、クラスタリングはデータそれぞれを集団化することといった使い分けをしています。

クラスタリングはクラス分類と違い、分け方を事前に指示されません。つまり、クラスタリングは「教師なし学習」ということが言えます。
また、クラスタリングは、グループ分けのための計算方法の違いで大きく分けると、階層的非階層的の2つの方法に分類されます。また、分類の際には、サンプル同士がお互いに「似ているか」(類似度)または「似ていないか」(非類似度)を基準に判断していますが、この類似度および非類似度をもとにして幾通りものバリエーションがあります。


階層的手法

1つ目の階層的手法ですが、まずは全てのデータの類似度または非類似度を計算し、ある基準で似たもの同士を併合し、グループ数を減らしていくという方法です。
例えば「最短距離法」と呼ばれる方法ですが、これはサンプル間の距離が最も近いものは同じクラスターという風に併合を行い、これを繰り返していきます。他にも様々な手法がありますが、それぞれにメリット・デメリットがあるため、解析対象によって最適な手法を選択する必要があります。一般的にはウォード法と呼ばれる、クラスター内のデータの平方和を最小にするように考慮された方法がバランスの良い手法としてよく使われます。


非階層的手法

次に、非階層的手法としてよく使われる手法としてはk-means法と呼ばれるものです。これは、あらかじめk個のクラスターに分けることを前提にしておき、すべてのデータをとりあえずランダムにグループ分けしておきます。そして、この時点でのクラスターの中心を求めておきます。次に他のグループでこの中心に近いものがある場合はグループを移動していきます。グループを移動したことでクラスターの中心が移動することから、再度計算を行い中心を求めなおします。そうしてこの処理を繰り返していくと、最後には近い点同士が集まったクラスターを形成することができます。

また、経験により最初のkの値は決めておくこともできるのですが、コンピューターにkの値を決めさせることも可能です。たとえば、混合ディリクレ過程と呼ばれる方法を使用すると、クラスター数の事後分布を求めることでクラスター数を推定することができるようになります。


クラスタリングでは分類までしか行いませんので、分類されたサンプルの中で成立している法則性や、相関関係・因果関係までは分かりません。このため、クラスタリングで得られた分類を相関分析、回帰分析などにより、より精度の高い予測として利用されることが多い状況となっています。

クラスタリングは大変応用範囲が広いため、様々な用途で利用されます。

  • クレジットカード

クレジットカード会員などで会員登録した情報から、年齢、性別、住所、購入履歴などからクラスタリングを行うことで、様々な属性を基準にしたグループに分類することが可能です。このグループごとに適したダイレクトメールを配布などすることで、カードそのものの退会率の軽減などが期待できます。

  • ブックストア

ブックストアなどの会員制のホームページの閲覧履歴でも、同時に選ばれることが多い本などといったレコメンドの機能がありますが、ここにもクラスタリングが利用されています。ユーザーの性別、年齢などで分類し、本自体もSF、ノンフィクション、推理小説などのタイプ別にクラス分けしておき、それぞれのクラスターに対して関連性の分析を行ったうえでレコメンドのロジックを適用させます。