このポストは、もう一つの「K-Meansクラスタリング — 結果の可視化について」というポストの続編です。そちらをまだ読まれてない方はぜひ先に読んでみてください。

上記のポストでは、クラスターの数は3として、その特徴を様々な角度から可視化することで理解を深めました。しかし、この3というのは最適なクラスターの数といえるのでしょうか?そもそもこの数はどうやって決めればいいのでしょうか?

このポストでは、この問題の答えを探していってみたいと思います。

最適なクラスターの数を見つける

K-Meansクラスタリングのアルゴリズムを使うときにはKであるクラスターの数を私達人間が決める必要があります。そうすると、その数はいったいいくつにすればいいのか、ということになります。

この質問に答えるにはいくつかの方法があるのですが、そのうちの1つに、「エルボー・カーブ」という手法があります。

これは、Kの数を1から順々に増やしていって、クラスタリングのモデルを作っていくのですが、それぞれのモデルごとにクラスターの中心からそれを構成するメンバー(今回の例ではカリフォルニア州の群です)との距離を測り、その距離をラインチャートで表示し、腕のエルボー(ひじ)のように一番がくっと落ちているあたりのKの数を持って、最適なクラスターの数とするというものです。

まずは、実際に見てみましょう。

アナリティクス・ビューから、エルボー・カーブを描く

先ほどのK-Meansクラスタリングのアナリティクスのプロパティを開き、「エルボー・カーブ」セクションの下にある「最適な数のクラスターを探索する」というパラメーターをTRUEにします。

すると、以下のようなライン・チャートが描かれます。

このラインを人の腕だと想像すると、エルボー(ひじ)のあたりはちょうど3のあたりだと言えるのではないでしょうか。

ちなみに、このY軸はクラスターごとの中心とそのクラスターに属するメンバーとの距離を足し上げたようなものですが、クラスターの数を行の数(この例ではカリフォルニア州の群の数)といっしょにした時に、この距離が0になります。しかし、もちろんそれではクラスターに分ける意味がありません。

それでは、前回のポストでもみたバイプロットを使って、クラスターの数を変えるとどうなるのかを簡単に見てみましょう。

クラスター2だと以下のようになります。

クラスターの数を3に増やすと以下のようになります。

最後に、クラスターの数を4に増やすと以下のようになります。

さて、このクラスターの数が4になったとき、緑のクラスターと青いクラスターというのはわけることで、意味のあるインサイトが得られるのでしょうか。この両方のクラスターはリベラルな法案に対しての支持率が高い群はわけですが、その支持率の高さに差があるようです。このことを重要だとするのであれば、クラスターの数を4にすることには意味があると思います。

しかし、クラスターの数を3にした時には、リベラルな群、保守な群、そのどちらともいえない群というふうに分かれましたが、こうした違いが十分役に立つというのであれば、何もこれよりも細かく分けることには意味がないのかもしれません。

そもそもいくつかのクラスターに分けるのは、そのことによって人間の目からは分からなかったパターンや類似性をデータの中から見つけ出したいからです。ですので、このKの数はなるべく少なければ少ないほどシンプルでいいのですが、しかしそのことによって実はもっと細かくした時に見つかったかもしれない違いを見逃してしまうことになるかもしれません。このあたりのバランスが難しいところですが、ここでエルボー・カーブが役に立ちます。

ただ、このエルボー・カーブも今回のように比較的きれいに分かれやすいデータの場合はエルボーの位置がわかりやすいのですが、データによってはそんなにきれいに出ない時もあります。

そんなときは、データをアナリティクス・ビューのチャートを使って色んな角度から見ていったり、さらにはもっと柔軟にチャート・ビューを使って可視化していきながら、自分にとって意味の有りそうなところでKの数にあたりをつけていくのが現実的ではないでしょうか。