2011-08-28 7 views
8

私はK-Meansと共にCanopyクラスタリングアルゴリズムを実装しようとしています。私はCanopyクラスタリングを使用してK-meansにフィードするための最初の開始点を得ると言っているオンライン検索を行っていますが、Canopyクラスタリングでは、天蓋に2つのしきい値T1とT2を指定する必要があります。内側の閾値の点はそのキャノピーに強く結びついており、より広い閾値の点はそのキャノピーに結びついていません。これらの閾値、またはキャノピー中心からの距離はどのようにして決定されますか?Canopy ClusteringのT1およびT2しきい値の選択方法は?

問題のコンテキスト:

私が解決しようとしている問題は、私は重複した要素があって、約50のセットのサイズで、このような[1,30]または[1250]のように数値のセットを持っている、ですそれらは8,17.5,17.5,23,66などの浮動小数点数でもかまいません。私は、最適なクラスター、または一連の数値のサブセットを探したいと思います。

K-meansを使用したCanopyクラスタリングが良い選択である場合、私の質問は依然として立っています.T1、T2の値はどうやって見つかりますか?これは良い選択ではない場合は、より良い、よりシンプルだが効果的なアルゴリズムを使用することですか?

+0

次のような別の質問があります。http://stats.stackexchange.com/questions/13895/how-do-i-algorithmically-determine-values-of-t1-t2-for-canopy-clustering – cyraxjoe

+0

これで運がいい?私は、Can-Cansにフィードする初期クラスタセットを見つけるためにCanopy Clusteringを使うことを考えています。私はちょうど[ここ](http://en.wikipedia.org/wiki/Determining_the_number_of_clusters_in_a_data_set)(彼の答えでは@rpdの方法に似て聞こえる)で説明されているように "Jump Method"を使うかもしれませんが、 T1とT2を判断するには良い方法ですが、代わりにCanopy Clusteringを使用したいと思います。 – JesseBuesking

答えて

2

恐らく純粋に、私はスペクトル推定の一種としてこの問題を見ています。私に10のベクトルがあるとします。私はすべてのペアの間の距離を計算することができます。この場合、私はそのような距離45を得るでしょう。さまざまな距離範囲でヒストグラムとしてプロットします。例えば。 10の距離は0.1と0.2の間、5の間は0.2と0.3の間などで、ベクトル間の距離がどのように分布するかを知ることができます。この情報から、T1とT2を選択できます(たとえば、最も人口の多い距離の範囲をカバーするように選択します)。

もちろん、これは大規模なデータセットでは実用的ではありませんが、T1やT2の球場を少なくとも知るようにランダムなサンプルなどを取ることができます。 Hadoopのようなものを使用すると、多数のポイントについてある種の事前スペクトル推定を行うことができます。クラスタリングしようとしているすべての着信データがほぼ同じ方法で配信されている場合は、T1とT2を一度取得し、その後のすべての実行で定数として修正する必要があります。

2

実際、これはCanopy Clusteringの大きな問題です。しきい値を選択することは、実際のアルゴリズムほど難しいことです。特に高次元である。 2D地理データセットの場合、ドメインエキスパートはおそらく距離閾値を容易に定義することができる。しかし、高次元のデータでは、おそらくあなたが行うことができる最高ののはの最初のデータサンプルでのk-meansを実行し、このサンプルの実行に基づいて距離を選択することです。

関連する問題