sql >> Base de Datos >  >> RDS >> Mysql

Manera efectiva de calcular un porcentaje de similitud entre conjuntos de datos

La forma estándar de hacer esto es la similitud de Jaccard. Si A es el conjunto de objetivos del primer usuario y B es el conjunto de objetivos del segundo usuario, la similitud de Jaccard es:

#(A intersect B)/#(A union B)

Este es el número de goles que comparten dividido por el número total de votos que tienen los dos juntos (contando los goles que comparten solo una vez). Entonces, si el primer usuario tiene objetivos A ={1,2,3} y el segundo usuario tiene objetivos B ={2,4}, entonces es esto:

A intersect B = {2}
A union B = {1,2,3,4}

#(A intersect B)/#(A union B) = 1/4

La similitud de Jaccard siempre está entre 0 (no comparten objetivos) y 1 (tienen los mismos objetivos), por lo que puedes obtener un porcentaje multiplicándolo por 100.

http://en.wikipedia.org/wiki/Jaccard_index