C++

クラスタサイズを指定できるk-meansベースのクラスタリング手法を実装した話

あけましておめでとうございます。季節感もなにもないブログですが、修論締切間近の時期に研究で使った技術をまとめようという点は季節感かもしれません。

今回のネタは、クラスタサイズに制約を設けてクラスタリングをしようという話です。

クラスタリングといったら、もっとも代表的な手法は k-means です。 k-means はクラスタ数を事前に指定して、クラスタリングを行います。つまり、 k-means を使うときは、データを k 個に分けたら何か傾向が見えるかもな~という気持ちで使うことになります。このとき、1クラスタに属するデータ数(クラスタサイズ)は、クラスタごとに異なります。

では、クラスタサイズを事前に指定するような方法はないのでしょうか。データが大量にあるので、データを c 個に均等に分割して処理したいな~というときに、どうしたらいいのでしょうか。というわけで今日の論文紹介です。

上が日本語版、下が英語版で、書いてあることは同じです。この論文では、クラスタサイズの基準 K と、クラスタサイズの下限 K\underline{K} 、上限 K\overline{K} を指定すると、クラスタサイズがこの範囲内に収まるようにいい感じにクラスタリングする方法が示されています。英語版では、このアルゴリズムを COCBO と呼んでいるので、この記事でも COCBO と呼んでいこうと思います。

続きを読む