sql >> Database >  >> RDS >> Mysql

Effectieve manier om een ​​overeenkomstpercentage tussen datasets te berekenen

De standaardmanier om dit te doen is de Jaccard-overeenkomst. Als A de reeks doelen van de eerste gebruiker is en B de reeks doelen van de tweede gebruiker, is de Jaccard-overeenkomst:

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

Dit is het aantal doelpunten dat ze delen gedeeld door het totale aantal stemmen dat de twee samen hebben (de doelen tellen die ze maar één keer delen). Dus als de eerste gebruiker doelen A={1,2,3} heeft en de tweede gebruiker doelen B={2,4}, dan is het dit:

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

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

De Jaccard-overeenkomst ligt altijd tussen 0 (ze delen geen doelen) en 1 (ze hebben dezelfde doelen), dus je kunt een percentage krijgen door het met 100 te vermenigvuldigen.

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




  1. Neo4j - Maak een knooppunt met behulp van Cypher

  2. Afbeeldingsbestanden of URL's opslaan in de MySQL-database? Wat is beter?

  3. Selecteer waarden tussen startdatum en einddatum

  4. SQL - WHERE-component met JOIN