2014-01-24 25 views
0

如果我有大量的項目列表,每個項目都有一個可以包含多個(或不包含)分數的屬性列表,那麼對這些項目進行公平排序時,考慮到每個項目可能存在的不同數量的信息?具有多個屬性的項目的排名算法?

例如:

的Item1

ATTRIBUTE1的值(70) Attribute2值(90) Attribute3值(空)

項目2

ATTRIBUTE1的值(50; 60; 70 ) 屬性2值(90) 屬性3值(10)

這裏,簡單地求平均值會使Item1高於Item2 - 但實際上它們/可能會相同,因爲Item2只是具有更多的已知數據。任何人都可以提出一種比較和排序數據的方法嗎?

+0

您是否已經考慮[基數排序](http://en.wikipedia.org/wiki/Radix_sort)? –

+0

對於我們所知道的,Item2高於Item1,因爲它具有您不知道的1000的值。似乎任何一種排名方案都可能失敗,帶有這種不確定性。 – Kevin

+0

你必須做一些關於缺少屬性。這是機器學習中的一個常見問題。查看這個StackOverflow後的想法:http://stackoverflow.com/questions/13425722/how-to-deal-with-missing-attribute-values-in-c4-5-j48-decision-tree – AndyG

回答

0

你可以這樣做:sum /(count + 1)。

如果屬性是空值,總和爲0,計數爲0,所以值是0 /(0 + 1)= 0。

對於(70),將得到70/2 = 35

對於(50,60,70),您得到180/4 = 45.

更高級的方法可以是(總和+基數)/(count + 1)。你需要選擇一個合適的基地。