どのようにクラスター物(座標)
-
22-08-2019 - |
質問
いリストの不透明なオブジェクト。私だけを計算することができ間の距離はtrue、設定の条件の問題):
class Thing {
public double DistanceTo(Thing other);
}
私はクラスターこれらのオブジェクト。たいと思い制御のクラスターとかしていきたいと思ってい閉するオブジェクトと同じクラスター:
List<Cluster> cluster(int numClusters, List<Thing> things);
誰でもできますから、リンク;-)一部のクラスタリングアルゴリズムにより簡単に、より良い!) あるいはライブラリですか?
解明 多クラスタリングアルゴリズムのオブジェにあのN次元空間です。このスペースを見つけるために使われます"centroids"のクラスター私の場合、このホテルはハノイ(ドンダNは、いかに抽出座標系からのオブジェクト。 すべての私から遠く離れた2つのオブジェです。 いくクラスタリングアルゴリズムを使用するだける仕組みを整えることである。
想像するクラスタリングに基づく"香り"のオブジェクトです。お知らないうち"香り"が、2次元面内のページをご覧の皆様かつ臭いに似ています。
解決
と思いま K-Medoids.このようなK-することで指数のクラスター K, 事前において接続されたことを示していない概念の"平均"は、物だクラスタリングのようなKることを目的とします。
代わりに、クラスター代表 medoid, は、会員のクラスターに一番近い。き、さらに新しいバージョンとしての意味を見出せるもの"中央値"ではなく"手段".会員になるために必要な距離をクラスターのもとに使用しましたことが自分の仕事のため全く同じ理由で引用す.
ナイーブK-medoidsは世界最速のアルゴリズムが速く異れいになるお客様の目的.ここでは説明のアルゴリズムおよびリンク、ドキュメントを実装に R:
- PAM は基本的にはO(n^2)の実施K-medoids.
- クララ はるかに高速で、サンプル版のPAM.なので、クラスタリング無作為に採取したサブセットのオブジェクトPAMおよびグループ化の全体のオブジェクトのサブセット.き続き非常に良いclusterings高速です。
が必要な場合は、 この論文 その概要は、これらのK-medoidsます。
他のヒント
この概要のためのクラスタリングアルゴリズムがないとその要件のセント.
- 決間の距離が全てのオブジェクト。記録の n 最別のオブジェクト。
[がルーツのクラスターの時はO(n^2)] - 割り当てそれぞれの n ランダム点 n 新規なクラスター
- 他のオブジェクト:
[割り当てオブジェクトクラスターの時はO(n^2)]- 各クラスター:
- を計算し平均値からの距離クラスターにそのオブジェクト平均距離の各オブジェクトのクラスターのオブジェクトです。
- を計算し平均値からの距離クラスターにそのオブジェクト平均距離の各オブジェクトのクラスターのオブジェクトです。
- 割り当てるオブジェクトに最も近いです。
- 各クラスター:
このアルゴリズムは確かにクラスターのオブジェクト。そruntime O(n^2).スペシャル"ホットスポットによる指導の方は最初の n ポイントを選択します。
誰でもできるので便性向上のため(より良い実行時のケ、依存の初期選択)?プログラムを手がかりをお考えます。
こちらは迅速にアルゴリズムです。
While (points_left > 0) {
Select a random point that is not already clustered
Add point and all points within x distance
that aren't already clustered to a new cluster.
}
または、読み取 のwikipediaページ.K-meansクラスタリングのためには良い選択肢
るとそのアルゴリズムの譲各ポイントのクラスターがセンターとも呼ばれるセ)が最寄。当センターは平均すべてのポイントのクラスターは、その座標の算術平均をご注文いただいた際に、別途全てのポイントのクラスター
アルゴリズムのステップ:
* Choose the number of clusters, k. * Randomly generate k clusters and determine the cluster centers, or directly generate k random points as cluster centers. * Assign each point to the nearest cluster center. * Recompute the new cluster centers. * Repeat the two previous steps until some convergence criterion is met (usually that the assignment hasn't changed).
の主な利点はこのアルゴリズム そのシンプルさと迅速る すでに大きなデータセットそるという煩わしさがありません と同じ結果と、 以来、この結果、クラスターに依存 最初のランダムに対応します。で 小intra-クラスター分散が を保証するものではありません、 グローバル最低限に収まって他の という点であり、デメリットは必要 の概念を意味する定義 ではない。など データセットのk-medoids変異体であ 適しています。
このアプローチ:
- 割り当てすべてのオブジェクトをクラスター
- つ物 a や b, このクラスター k, このよう最大限の距離が離れています。明らかにする必要がある一 a や b 全体の設定にな a や b 各クラスター
- クラスター分割 k 二つのクラスター k1 や k2, は、オブジェクト a びオブジェクト b.
- その他のすべてのオブジェクラスター k, 追加か、そうでなければ k1 または k2 により決定する最低平均距離の他のすべてのオブジェとしました。
- 手順を繰り返し2-5までNクラスターが形成されている。
このアルゴリズムはまかなり良いクラスタリングが効率がイも広く満天の星空を望めます。.向きを変ステップ3での最小距離だけのオブジェクトを開始したクラスターではなく、平均距離のすべてのオブジェクトのクラスター
系統のDNA配列解析を定期的に使階層的クラスタリングテキスト文字列は、[配置]の距離行列.このダイニングテーブルRチュートリアルのためのクラスタリング:
(ショートカット:直進し、"階層-塊状"オートメーション機器)
ここではその他[言語]イ
このアプローチで決定にどのように多くの[k]"自然"クラスターにあるオブジェクトを使用して根k-means法。