Tengo un grupo de n conjuntos para los que necesito calcular una especie de valor de "unicidad" o "similitud". Me decidí por el índice Jaccard como una métrica adecuada. Desafortunadamente, el índice Jaccard solo opera en dos conjuntos a la vez. Para calcular la similitud entre todos los conjuntos, será necesario en el orden de n 2 cálculos Jaccard.
(Si ayuda, suele estar entre 10 y 10000, y cada conjunto contiene un promedio de 500 elementos. Además, al final, no me importa cuán similares sean dos conjuntos específicos; más bien, solo me importa cuál sea la similitud interna del grupo completo de conjuntos es. (En otras palabras, la media (o al menos una aproximación suficientemente precisa de la media) de todos los índices de Jaccard en el grupo))
Dos preguntas:
- ¿Hay alguna manera de seguir usando el índice Jaccard sin la complejidad ?
- ¿Existe una mejor manera de calcular la similitud / unicidad de un conjunto en un grupo de conjuntos que la que he sugerido anteriormente?
fuente
Respuestas:
Una opción sería utilizar el Esquema de firma de [1], filtrado basado en el tamaño : un esquema que utiliza información de tamaño para reducir el número de pares de conjuntos que deben considerarse.
También experimentan con una forma ponderada; donde los pesos están basados en IDF.
[1] Arasu, Arvind, Venkatesh Ganti y Raghav Kaushik. "Eficientes conjuntos exactos de similitud de conjuntos". En las actas de la 32ª Conferencia Internacional sobre bases de datos muy grandes, 918–929. VLDB '06. Fondo VLDB, 2006
fuente
Otra opción sería emplear un enlace wiki de hashing de sensibilidad local . He visto que Wu y Zou lo utilizan en la detección de similitud de la comunidad ( un método de detección de comunidad incremental para sistemas de etiquetado social que utilizan hashing sensible a la localidad , Neural Networks 58: 14–28; ACM DL ) que básicamente detecta la similitud entre entero o conjuntos de cuerdas.
fuente