Кластеризация объектов со взвешенными атрибутами - PullRequest
2 голосов
/ 14 июля 2011

Я хочу сгруппировать набор объектов, которые имеют несколько атрибутов, и некоторые атрибуты более важны, чем другие. Существует ли простой способ придать этим конкретным атрибутам значительный вес, чтобы придать им большую важность, чем другим?

1 Ответ

2 голосов
/ 15 июля 2011

Посмотрите - каждый экземпляр объектов из вашего набора может быть представлен как многомерный вектор (каждый атрибут вашего объекта является компонентом вектора).Таким образом, вы можете использовать кластеризацию на основе расстояния (расстояние между похожими векторами очень мало), например, 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
...