Imposta somiglianza: calcola l'indice Jaccard senza complessità quadratica


14

Ho un gruppo di n set per i quali ho bisogno di calcolare una sorta di valore di "unicità" o "somiglianza". Ho optato per l' indice Jaccard come metrica adatta. Sfortunatamente, l'indice Jaccard funziona solo su due set alla volta. Per calcolare la somiglianza tra tutti gli set, sarà necessario nell'ordine di n 2 calcoli Jaccard.nn2

(Se aiuta, di solito è compreso tra 10 e 10000 e ogni set contiene in media 500 elementi. Inoltre, alla fine, non mi interessa quanto siano simili due set specifici - piuttosto, mi interessa solo quale somiglianza interna dell'intero gruppo di insiemi è (in altre parole, la media (o almeno un'approssimazione sufficientemente accurata della media) di tutti gli indici di Jaccard nel gruppo))n

Due domande:

  1. C'è un modo per usare ancora l'indice Jaccard senza la complessità ?n2
  2. Esiste un modo migliore per calcolare la somiglianza / unicità dei set in un gruppo di set rispetto al modo che ho suggerito sopra?

Potresti prima chiarire cosa intendi per "somiglianza interna"?
— Suresh,

In altre parole, la media (o almeno un'approssimazione sufficientemente accurata della media) di tutti gli indici Jaccard nel gruppo.

5
Se sei disposto ad approssimare la risposta, puoi utilizzare l'hash min-saggio per stimare approssimativamente la distanza di Jaccard e quindi utilizzare la rappresentazione risultante per calcolare la media desiderata.
— Suresh,

6
Non so cosa intendi con "sufficientemente accurato", ma un modo per stimare la media di molte cose è semplicemente calcolarne molte (gli indici Jaccard di più coppie di set in questo caso) a caso e calcolare la loro media. Quindi è possibile utilizzare il limite di Chernoff per ottenere un limite superiore sulla probabilità che questa stima sia lontana dalla media reale.
— Tsuyoshi Ito,

Risposte:


4

Un'opzione sarebbe quella di utilizzare lo schema di firma di [1], filtro basato sulla dimensione : uno schema che utilizza le informazioni sulla dimensione per ridurre il numero di coppie di set che devono essere considerate.

Sperimentano anche con una forma ponderata; dove i pesi sono basati su IDF.

[1] Arasu, Arvind, Venkatesh Ganti e Raghav Kaushik. "Unioni esatte di set-similarità esatta". Negli atti della 32a Conferenza internazionale su basi di dati molto grandi, 918-929. VLDB '06. VLDB Endowment, 2006


Quel collegamento sembra essere morto. Prendi in considerazione l'aggiornamento a vldb.org/conf/2006/p918-arasu.pdf .
— j_random_hacker,

0

Un'altra opzione sarebbe quella di utilizzare il collegamento wiki di hashing della sensibilità locale . L'ho visto essere utilizzato nel rilevamento della somiglianza della comunità da parte di Wu e Zou ( un metodo di rilevamento della comunità incrementale per i sistemi di social tagging che utilizzano hashing sensibile alla località , Neural Networks 58: 14–28; ACM DL ) che sostanzialmente rileva la somiglianza tra intero o set di stringhe.


1
Riassumi il contenuto dei link e cita l'articolo. Se i collegamenti diventano obsoleti, la risposta corrente diventa inutile.
— vonbrand,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.