1

kmeans2アルゴリズムを使用していくつかの画像を量子化したい。私の問題は、クラスターの(ほぼ)最良の数を見つけることです。

クラスターの数を見積もる方法を誰かが考えていますか?私のアイデアは、hsv-color-spaceに色相の累積ヒストグラムを作成することです。しかし、この情報を使用してカウントを見積もる方法がわかりません。

あいさつ

4

1 に答える 1

1

私は個人的に次のアプローチを使用します。

擬似コード

int k = 1;
double oldCompactness = std::numeric_limits<double>::max();
double compactness = kmeans(data, k);
while( compactness/oldCompactness < threshold ) {
    oldCompactness = compactness;
    k = k + 1;
    compactness = kmeans(data, k);
}

コンパクトさは、クラスターの数が増えるにつれて低下します(データポイントと同じ数のクラスターがある場合はゼロになるはずです)。

クラスターの最適な数はアプリケーションに大きく依存することを指摘しておく必要があります。たとえば、アプリケーションで、高いデータ削減(low k)を好むのか、優れた視覚的表現(high k)を好むのか、妥協点(中間のどこか)を好むのかはわかりません。

あなたはより多くの/より良いアイデアをここで探すことができます。または、ビデオを好む場合はここ(8週目)。

于 2012-11-20T10:40:47.200 に答える