教師なし学習の一つであるクラスタリングについてです。クラスタリングの手法自体は知っていても、クラスタリングって何のためにするの??って方もいらっしゃるかと思い、ここではクラスタリングをするメリットについて整理します。クラスタリングのメリットは大きく分けると以下の4つです。
- 代表サンプルによるデータセットの可視化・見える化
- サンプル数の低減
- 外れ値 (外れサンプル) 検出
- サンプルの構造化・階層化
順に説明します。
代表サンプルによるデータセットの可視化・見える化
クラスタリングをした後に、代表サンプル、例えばクラスターの平均に最も近いサンプルを選択することで、データセットからクラスターの数だけサンプルを選ぶことができます。データセットを可視化・見える化するときの問題として、多くのサンプルがある中でどのサンプルを見ればよいのか??、といったことがあると思います。こんなとき、代表サンプルのみを詳細に確認することで、そのデータセットはどんなサンプルで構成されているのか、データセットの可視化・見える化を達成できます。
サンプル数の低減
サンプル数が大きすぎると、すべてのサンプルを同時に解析できなかったり、解析時間が多くかかったりしてしまいます。こんなときは、クラスタリングした後に、各クラスターから少数のサンプルのみ選択して、それらのサンプルのみ使用することにより、サンプル数の低減 (省サンプル化) を達成できます。
外れ値 (外れサンプル) 検出
クラスタリングをした後に各クラスターを確認すると、少数のサンプルのみで構成されるクラスターがあったりします。このようなクラスターのサンプルは、外れ値 (外れサンプル) と考えることもできます。このようにクラスタリングにより外れ値検出や外れサンプル検出を検討しやすくなります。
サンプルの構造化・階層化
クラスタリングにより、サンプルをクラスターごとに構造化したり、階層的クラスタリングにおいてはサンプルを階層的に表現したりできます。構造ごと、すなわちクラスターごとにサンプルを確認することで、類似したサンプル同士や、その構造の中で逆に似ていないサンプルや特徴量を確認します。このような類似性・非類似性に基づいてデータセットを解釈できるかもしれません。
クラスタリングのメリットは以上になります。デメリットとしては、計算時間がかかることや、教師なし学習のためクラスタリングの解釈のためには事前知識 (ドメイン知識) が必要になること、といったことでしょうか。
なおクラスタリングは教師なし学習であり、基本的には最適なクラスタリング手法を自動的に選択することはできません。ただ以前にクラスター数を自動的に決める方法としてこちら↓で提案したような方法を使って、
なるべく小さい数のクラスターで 100 %達成できるような手法選択するのはよいと思います。
以上です。
質問やコメントなどありましたら、twitter, facebook, メールなどでご連絡いただけるとうれしいです。