k-means Clustering
k-means法は、クラスタリング(教師なし学習)の代表的な手法のひとつで、サンプルをグループ分けする目的で使用します。
クラスターというのは「房」「集団」「群れ」のことで、類似したデータが集まっている様子を意味します。説明変数の数が多くなると、人間の目では直感的な分類ができませんが、例えば全体を3つに分類できるという前提で、多次元軸上でのグループの重心を仮定して、データ間の距離を測ると、それぞれの距離(ズレ)を最も小さくするような重心とデータセットを見出すことができます。対象を分けるという点では上記の分類と似ていますが、クラスタリングの場合は、いくつに分類するかを分析者が事前に決定するのみで、事前に目的変数を定義することはありません。3つに分けてみたら、それぞれこんなタイプのかたまりがあることがわかりました・・といった作業になります。
k-means法の k はクラスターの個数を意味するもので、この手法では、分類するクラスターの数を事前に決めて、クラスター内では分散が小さく、クラスター間では分散が大きくなるように各データをクラスターに振り分けていきます。
以下のような手順で、計算処理を繰り返し、結果が収束した時点で、処理をストップします。ひたすら計算を繰り返す・・という点で、当然ですが、これもコンピュータが登場してはじめて現実的なものとなりました。
以下に、k-means法 のサンプルを掲載しています。
ipynb(JupyterNotebook)形式で、GitHubに置いていますが、レンダリングがタイムアウトする場合は、下の nbviewer 経由でご覧下さい。
クラスタ数を「3」に設定してクラスタリングすると、データの性質から、Species と一致するクラスタリングができていることがわかります。