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