Кластеризация объектов с взвешенными атрибутами

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


person Mariya    schedule 13.07.2011    source источник


Ответы (1)


Посмотрите - каждый экземпляр объектов из вашего набора может быть представлен как многомерный вектор (каждый атрибут вашего объекта является компонентом вектора). Итак, вы можете использовать кластеризацию на основе расстояния (расстояние между похожими векторами очень мало), например k-среднее. Вам необходимо определить собственную функцию расстояния между векторами.

Например, если у ваших объектов 3 атрибута (X Y Z), также каждый атрибут имеет свой вес (важность) (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
person stemm    schedule 14.07.2011