2011-06-21 14 views
1

クラスタリングアルゴリズムを使って、同様の範囲の実数をグループ化しています。それらをグループ化した後、そのクラスターの1つの範囲、つまりクラスター重心を作成する必要があります。たとえば、1つのクラスタに値< 1,6>、< 0,7>および< 0,6>が含まれている場合、このクラスタは値が< 0,7>のクラスタすべてに適用されます。問題はそのような結果の範囲を作成する方法です。私はクラスター内のすべての値の最小値と最大値を取ることを考えていましたが、それはアルゴリズムがノイズに対して非常に敏感であることを意味します。私は何とかそれを重み付けする必要がありますが、私はどのように確信していません。何かヒント?ありがとう。ノイズの多いクラスタ重心の作成

答えて

0

おそらく、クラスタリングアルゴリズムを実行する前に、すべての範囲を中点に変換することができます。そうすれば、問題をライン上のクラスタリングポイントに変換できます。以前は重心範囲が「成長」し、次の反復ではおそらく別のクラスターに属するはずの範囲がさらに多く消費されていました。アルゴリズムは、あなたが以前に示唆されているように行うと、その重心のための範囲を作成するために、クラスタ内のすべての範囲の最小値と最大値を取ることができます終了した後

midpoints = [] 
for range in ranges 
    midpoints[range] = range.min + (range.max - range.min)/2 
end 

関連する問題