首页 > 代码库 > 按权重多维度排序,熵对结果的影响

按权重多维度排序,熵对结果的影响

昨天做数据分析遇到个有趣的问题。下面是我把实际问题虚构下的场景:

我们是古代农场主,有一群奴隶给我们种地。我们想统计出表现较好的奴隶并给他们自由。要从2个方面考量,劳动时间和劳动产量,并且希望劳动产量更重要一些。

原来的统计方式是:

order by 0.3*奴隶劳动时间/总劳动时间 + 0.7*奴隶劳动产量/总劳动产量 desc

0.3和0.7是权重。

但这样会有一个问题,就是熵的影响。因为时间基本是差不多的,奴隶没有太多假期,所以不会太少,但一个月劳动最多也是30天不会是40天。但产量是很随机的,有的人忙活一个月只有一粒米,有人有几座小山一样的谷堆。所以在这种情况下,后者的分母->∞ 则后者对结果的影响有可能忽略不计,生产一把米和生产一麻袋米的两个人,在总的谷堆山面前没太大分别,而前者的影响就很明显了,结果可能就是生产一把米的人,因为劳动时间多了几小时,结果贡献反而比一麻袋米的人大,不合理。

熵反映了数据的混乱程度。在这个场景里,时间很有序,熵不大,产量的熵很大。从统计学来说,可以计算平均值和均方差,然后用正态分布来获取合理的样本。不过这样做太复杂,我们的做法是分别取时间前100和产量前100的做中间表,这样人为减小了熵,再做统计并join结果

按权重多维度排序,熵对结果的影响