sql >> Databasteknik >  >> RDS >> Mysql

Effektivt sätt att beräkna en likhetsprocent mellan datamängder

Det vanliga sättet att göra detta är Jaccard-likheten. Om A är uppsättningen mål för den första användaren och B är uppsättningen mål för den andra användaren, är Jaccard-likheten:

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

Detta är antalet mål som de delar delat med det totala antalet röster de två har tillsammans (räknade mål som de bara delar en gång). Så om den första användaren har mål A={1,2,3} och den andra användaren har mål B={2,4} så är det detta:

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

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

Jaccard-likheten är alltid mellan 0 (de delar inga mål) och 1 (de har samma mål), så du kan få en procentsats genom att multiplicera den med 100.

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




  1. ORDER BY-objekt måste visas i urvalslistan om SELECT DISTINCT anges

  2. Infogar hex-värde i MySQL

  3. JPA:MySQL säger att tabeller inte existerar, men det finns faktiskt

  4. Hur man genererar skript för att aktivera alla främmande nyckelbegränsningar i SQL Server Database - SQL Server / TSQL Tutorial Del 78