6
我目前正在使用User對象 - 每個對象都有許多目標對象。目標對象不是用戶特定的,也就是說,用戶可以共享相同的目標。我試圖設計一種方式來計算兩個用戶之間的「相似度百分比」(即考慮到他們共享多少個目標以及他們不共享多少個目標)有沒有人有過這種類型的情況?如果這有幫助,我在使用Grails和Mysql。計算數據集之間相似性百分比的有效方法
謝謝
我目前正在使用User對象 - 每個對象都有許多目標對象。目標對象不是用戶特定的,也就是說,用戶可以共享相同的目標。我試圖設計一種方式來計算兩個用戶之間的「相似度百分比」(即考慮到他們共享多少個目標以及他們不共享多少個目標)有沒有人有過這種類型的情況?如果這有幫助,我在使用Grails和Mysql。計算數據集之間相似性百分比的有效方法
謝謝
這樣做的標準方法是Jaccard相似性。如果A是一組第一用戶的目標和B是集合的所述第二用戶的目標,Jaccard相似是:
#(A intersect B)/#(A union B)
這是他們共享由票的總數除以目標數兩人在一起(計算他們只共享一次的目標)。因此,如果第一個用戶擁有的目標A = {1,2,3}和第二用戶具有目標B = {2,4},然後它是這樣的:
A intersect B = {2}
A union B = {1,2,3,4}
#(A intersect B)/#(A union B) = 1/4
的Jaccard相似總是0之間(它們不共享的目標)和1(它們具有相同的目標),這樣你就可以通過乘以100。
完美工作得到的百分比,非常感謝你 – RyanLynch 2010-04-24 23:45:39