Подходяща мярка за сходство за групиране

Имам проблеми с намирането на подходяща мярка за сходство за групиране. Имам около 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. Прилагам индекс на Jaccard за всеки набор поотделно, защото искам да сравня сходството между свързани домейни (т.е. цвят с цвят и т.н.)

Не знам за друга подходяща мярка за сходство за моя проблем. Освен това, can I use this similarity measure for clustering purpose?


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


Отговори (1)


Това трябва да работи за повечето алгоритми за групиране. Не използвайте k-средства - може да обработва само числови векторни пространства. Но имате тип данни от вектор на множества.

Може да искате да използвате различна средна от средната аритметична за комбиниране на четирите мерки на Жакард. Опитайте хармоничните или геометричните средства. Вижте, средната стойност над 250 вероятно ще бъде някъде близо до 0,5 през цялото време, така че ви трябва средна стойност, която е по-„агресивна“.

Така че планът звучи добре. Просто опитайте, приложете това сходство и го включете в различни алгоритъм за клъстериране и вижте дали ще намерят нещо. Харесвам OPTICS за изследване на функциите за данни и разстояние, тъй като диаграмата OPTICS може да бъде много показателна дали (или не!) има нещо, което да се намери въз основа на функцията за разстояние. Ако графиката е твърде плоска, просто няма какво да се намери, това е като представителна извадка от разстоянията в набора от данни...

Използвам ELKI и те дори имат урок за добавяне на персонализирани функции за разстояние: http://elki.dbs.ifi.lmu.de/wiki/Tutorial/DistanceFunctions въпреки че вероятно можете просто да изчислите разстоянията с какъвто и инструмент да искате и да ги запишете в матрица на подобие. При 3000 обекта това ще остане много управляемо, 4200000 двойни са само няколко MB.

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