Mysql
 sql >> Base de données >  >> RDS >> Mysql

Moyen efficace de calculer un pourcentage de similarité entre des ensembles de données

La manière standard de le faire est la similarité Jaccard. Si A est l'ensemble d'objectifs du premier utilisateur et B est l'ensemble d'objectifs du deuxième utilisateur, la similarité Jaccard est :

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

C'est le nombre d'objectifs qu'ils partagent divisé par le nombre total de votes que les deux ont ensemble (en comptant les objectifs qu'ils partagent une seule fois). Donc, si le premier utilisateur a des objectifs A={1,2,3} et que le deuxième utilisateur a des objectifs B={2,4}, alors c'est ceci :

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

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

La similarité Jaccard est toujours comprise entre 0 (ils ne partagent aucun objectif) et 1 (ils ont les mêmes objectifs), vous pouvez donc obtenir un pourcentage en le multipliant par 100.

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