Мера подобия косинусов: множественные результаты

Моя программа использует кластеризацию для создания подмножеств похожих элементов, а затем использует меру сходства по косинусу как метод определения степени сходства кластеров. Например, если у пользователя 1 есть 3 кластера, а у пользователя 2 есть 3 кластера, то каждый кластер сравнивается друг с другом, будет получено 9 результатов с использованием меры косинусного подобия, например. [0,3, 0,1, 0,4, 0,12, 0,0, 0,6, 0,8, 1,0, 0,22]

Моя проблема заключается в том, как, основываясь на этих результатах, превратить эти значения в осязаемый результат, чтобы показать, насколько похожи эти два пользователя?

Простой метод, который я разработал, заключался в том, чтобы просто разделить все значения на количество сравнений и сложить их вместе, чтобы получить 1 значение, но это довольно простой подход.

Спасибо,

AS


Основное описание того, чего я пытаюсь достичь, заключается в том, можно ли определить, насколько похожи два пользователя из веб-сервиса социальных закладок Delicious.com, по их закладкам и тегам.

До сих пор я создавал кластеры из тегов закладок пользователей и совпадений каждого тега, например, один кластер может быть:

fruit: (apple, 15), (orange, 9), (kiwi, 2)

и другой пользователь может создать аналогичный кластер из своих тегов:

fruit: (apple, 12), (strawberry, 7), (orange, 3)

Число показывает, сколько раз тег встречался в сохраненной закладке вместе с тегом «фрукты» в этом примере.

Я использовал меру косинусного подобия для сравнения этих кластеров, чтобы определить, насколько они похожи, и из моего первоначального вопроса, со многими результатами сравнения кластеров (сравнение кластеров всех пользователей с кластерами других пользователей). Я не уверен, как агрегировать результаты для получения значимый результат.

Вполне возможно, что я неправильно использовал сходство косинусов,


person anotherstat    schedule 15.04.2010    source источник


Ответы (2)


Проблема плохо определена ... С более подробной информацией можно дать комментарий о правильности подхода в целом (использование косинусного сходства, способ его вычисления и т. д.), а также обоснованность подход, используемый при агрегировании конечного результата.

По сути, вы усредняете значения сходства косинуса, вычисленные для каждой пары кластеров (Ca, Cb), где Ca – кластер, который "имеет" пользователь A, а Cb – кластер, который Б "имеет".

Я предполагаю, что это можно было бы значительно улучшить, используя взвешенное среднее значение, которое учитывало бы количество "наличия" кластера, которое пользователь может демонстрировать .
Возможно, это отношение "иметь" является чисто логическим: либо у пользователя есть, либо нет определенного кластера, но велика вероятность того, что его/ее "наличие" можно квалифицировать либо [упорядоченным ] категориальный атрибут или даже числовое значение (будь то относительное: скажем, процент наличия данного кластера у данного пользователя по сравнению с другими кластерами, которые у него есть, или абсолютное).
Потому что каждое косинусное сходство основан на кластерах, которые есть у пользователя "А", и кластерах, которые есть у пользователя "Б", при правильной нормализации можно было бы взять произведение соответствующих мер "наличия" в качестве применяемого коэффициента соответствующему члену подобия косинуса в среднем вычислении. Таким образом, если два пользователя действительно похожи, но у одного из них есть один или два дополнительных кластера с очень низкими факторами «имения», совокупный результат не сильно пострадает от этого.

Как правило, вычисление расстояния (например, с косинусным сходством), а также формулы агрегирования (например, среднее или взвешенное среднее) очень чувствительны к масштабу отдельных измерений (и к их относительной «важности») . По этой причине часто трудно дать общий совет, такой как приведенный выше. Теория имеет большое значение в задачах классификации, но нужно помнить о том, чтобы не применять формулы «вслепую»: легко потерять лес за дерево ;-)


Чтобы помочь улучшить вопрос, вот что я обычно понимаю, пожалуйста, дополните и исправьте вопрос, чтобы дать лучшее «ощущение» того, чего вы пытаетесь достичь, и каковы характеристики системы, чтобы вы могли получить лучшее предложение .
У нас есть элементы, которые, как мы предполагаем, являются векторными объектами и назначены кластерам. Ключевое слово подмножества намекает на то, что каждый элемент, вероятно, принадлежит к одному и только одному кластеру (или, возможно, вообще ни к одному кластеру), но было бы хорошо подтвердить, что это так.
Также было бы неплохо получить представление того факта, что размеры векторов каким-то образом нормализованы (чтобы относительно неважная характеристика элементов, но с относительно большим диапазоном значений, искажала косинусное сходство или другие измерения расстояния)
Мы имеем пользователи, которые могут "иметь" несколько кластеров. Было бы хорошо знать (в основных чертах), как данный пользователь приходит к тому, чтобы «иметь» кластеры, и является ли их наличие кластера только логическим свойством (иметь или не иметь) или существует какая-то категориальная или даже числовая мера. «наличия» (у пользователя X есть кластер 1 с коэффициентом 0,3 и кластер 8 с коэффициентом 0,2 и т. д.)
Способ измерения косинусного сходства между двумя кластерами также можно было бы лучше определить ( сходство между двумя "центрами" кластеров или что-то другое...

person mjv    schedule 15.04.2010

Существует множество методов сравнения наборов и кластеров. F-меры с подсчетом пар, индекс Рэнда, ... Большинство из них решили проблему суммирования индивидуальных сходств в единое общее сходство.

См. это для некоторых указателей:

http://en.wikipedia.org/wiki/Cluster_analysis#Evaluation_of_Clustering_Results

Вы должны понимать, что хотя человеческое желание подвести все к единому счету не всегда адекватно. Вот почему существует так много показателей. Все они имеют свои плюсы и минусы.

person Has QUIT--Anony-Mousse    schedule 29.12.2011