Надлежащая мера подобия для кластеризации

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

Предположим, у меня есть только 2 массива (a1 и a2), и я хочу найти сходство между ними. каждый массив содержит 4 набора (в моей реальной задаче 250 наборов (доменов) на массив), и набор может быть пустым.

a1: {a,b}, {1,4,6}, {mon, tue, wed}, {red, blue,green}
a2: {b,c}, {2,4,6}, {}, {blue, black}

Я пришел с мерой сходства, используя индекс Jaccard (обозначается как J):

sim(a1,a2) = [J(a1[0], a2[0]) + J(a1[1], a2[1]) + ... + J(a1[3], a2[3])]/4

примечание: я делю на общее количество наборов (в приведенном выше примере 4), чтобы сохранить сходство между 0 и 1.

Is this a proper similarity measure and are there any flaws in this approach. Я применяю индекс Жаккара для каждого набора отдельно, потому что хочу сравнить сходство между связанными доменами (т.е. цвет с цветом и т. д.)

Я не знаю какой-либо другой надлежащей меры сходства для моей проблемы. Далее, can I use this similarity measure for clustering purpose?


person Maggie    schedule 10.10.2012    source источник


Ответы (1)


Это должно работать для большинства алгоритмов кластеризации. Не используйте k-means - он может обрабатывать только числовые векторные пространства. Но у вас есть данные типа вектор-множества.

Вы можете использовать среднее значение, отличное от среднего арифметического, для объединения четырех показателей Жаккара. Попробуйте гармонические или геометрические средства. Видите ли, среднее значение по 250 значениям, вероятно, все время будет близко к 0,5, поэтому вам нужно более «агрессивное» среднее значение.

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

Я использую ELKI, и у них даже есть руководство по добавлению пользовательских функций расстояния: http://elki.dbs.ifi.lmu.de/wiki/Tutorial/DistanceFunctions, хотя вы, вероятно, можете просто вычислить расстояния с помощью любого инструмента, который вам нравится, и записать их в матрицу подобия. При 3000 объектах это останется очень управляемым, 4200000 двойников — это всего несколько МБ.

person Has QUIT--Anony-Mousse    schedule 10.10.2012
comment
Большинству алгоритмов не требуется неравенство треугольника, поскольку они не используют метрические свойства. Так что простой 1-sim может сработать для вас. - person Has QUIT--Anony-Mousse; 10.10.2012
comment
Спасибо за твой ответ. Я также попробую гармонические и геометрические средства. У меня есть еще один вопрос, большинство алгоритмов кластеризации требуют измерения расстояния. Как я могу преобразовать меру сходства в меру расстояния, удовлетворяющую треугольному неравенству. в настоящее время у меня есть две идеи: [1] dist=(1-sim)/sim [2] dist=sqrt(1-sim^2). Есть ли правильный (формальный) способ определить расстояние - person Maggie; 10.10.2012
comment
Еще раз спасибо, извините, мой комментарий случайно удалили. - person Maggie; 10.10.2012