不透明なオブジェクトのリストがあります。私はそれらの間の距離を計算することしかできません(問題の条件を設定するだけです):
class Thing {
public double DistanceTo(Thing other);
}
これらのオブジェクトをクラスター化したいと思います。クラスターの数を制御したいのですが、「近い」オブジェクトを同じクラスターに配置したいと考えています。
List<Cluster> cluster(int numClusters, List<Thing> things);
誰かが私を助けることができるいくつかのクラスタリングアルゴリズム(より単純であるほど良い!)またはライブラリを提案(および;-)にリンクできますか?
明確化ほとんどのクラスタリング アルゴリズムでは、オブジェクトを N 次元空間に配置する必要があります。この空間は、クラスターの「重心」を見つけるために使用されます。私の場合、N が何かも、オブジェクトから座標系を抽出する方法もわかりません。私が知っているのは、2 つのオブジェクトがどれだけ離れているかだけです。その情報のみを使用する優れたクラスタリング アルゴリズムを見つけたいと思います。
オブジェクトの「匂い」に基づいてクラスタリングしていると想像してください。2D 平面上で「においを出す」方法はわかりませんが、2 つのにおいが似ているかどうかはわかります。