sql >> Database teknologi >  >> RDS >> Mysql

Effektiv måde at beregne en lighedsprocent mellem datasæt

Standardmåden at gøre dette på er Jaccard-ligheden. Hvis A er den første brugers mål, og B er den anden brugers mål, er Jaccard-ligheden:

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

Dette er antallet af mål, de deler, divideret med det samlede antal stemmer, de to har tilsammen (tæller mål, som de kun deler én gang). Så hvis den første bruger har mål A={1,2,3} og den anden bruger har mål B={2,4}, så er det dette:

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

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

Jaccard-ligheden er altid mellem 0 (de deler ingen mål) og 1 (de har de samme mål), så du kan få en procentdel ved at gange den med 100.

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




  1. Mysql ERROR 1241 (21000):Operand skal indeholde 1 kolonne(r)

  2. Er det muligt at udlæse en SELECT-sætning fra en PL/SQL-blok?

  3. ResultSet ->getString() går ned, når værdien er>=16

  4. Hvordan implementerer man batchhentning med Fluent NHibernate, når man arbejder med Oracle?