Посмотрите - каждый экземпляр объектов из вашего набора может быть представлен как многомерный вектор (каждый атрибут вашего объекта является компонентом вектора).Таким образом, вы можете использовать кластеризацию на основе расстояния (расстояние между похожими векторами очень мало), например, k-means. Вам необходимо определить свою собственную функцию расстояния между векторами .
Например, если у ваших объектов есть 3 атрибута (XYZ), также, что каждый атрибут имеет свой вес (важность) (wx wy wz),В соответствии с этим, например, вы можете определить функцию расстояния между двумя векторами (X1 Y1 Z1) и (X2 Y2 Z2) таким образом (расстояние по косинусу):
(wx^2*X1*X2+wy^2*Y1*Y2+wz^2*Z1*Z2)
dist= -----------------------------------------------------------------------
[(wx^2*X1^2+wy^2*Y1^2+wz^2*Z1^2)*(wx^2*X2^2+wy^2*Y2^2+wz^2*Z2^2)]^0,5