如何选择加权平均值的权重?

问题描述 投票:0回答:1

我正在针对机器学习问题进行特征提取过程,我遇到了一个问题。

考虑一组产品。每个产品的评级为0或1,分别映射为坏或好。现在我想为每个独特的产品计算[0, n]区间的评分,其中n是一个大于0的整数。

每种产品的总评分明显不同,因此简单的平均值会产生以下问题:

avg_ratio_score = good_rates / total_rates
a) 1/1 = 1
b) 95/100 = 0.95

即使比率a)更高,比率b)也给用户更多的信心。出于这个原因,我需要加权平均值。

问题是选择什么重量。产品的频率从大约100到100k不等。

我的第一种方法如下:

ratings frequency interval    weight
--------------------------    ------
90k - 100k                      20
80k - 90k                       18
70k - 80k                       16
60k - 70k                       14
50k - 60k                       12
40k - 50k                       11
30k - 40k                       10
20k - 30k                        8
10k - 20k                        6
5k - 10k                         4
1k - 5k                          3
500 - 1k                         2
100 - 500                        1
1 - 100                        0.5

weighted_rating_score = good_ratings * weight / total_ratings

起初这听起来像是一个很好的解决方案,但是看一个真实的例子它可能不如它看起来那么好:

 a. 90/100 = 0.9 * 0.5 = 0.45
 b. 50k/100k = 0.5 * 20 = 10

这样的结果表明,产品b)是比产品a)更好的替代品,但是考虑可能不是这种情况的原始比率。

我想知道一种有效的(如果有的话)计算完美体重或其他类似建议的方法。

feature-extraction weight weighted-average
1个回答
1
投票

我认为你的问题的答案是主观的,因为你选择与引起的不确定性相关的重要性是样本数量较少,也是主观的。

然而,考虑到较低数量的样本的“惩罚”,我可以想到另一种方法来纠正较低数量的样本的评级。看下面的公式:

(GoodRates / TotalRates) - alpha * (1 / TotalRates)

我无法在线添加公式的图像,但你可以看到它here

当TotalRates接近无穷大时,此公式使得评级接近简单评级。实际上,数量级为数百或更高的偶数可以忽略不计。选择不同的alpha值将增加或减少总费率较低的重要性。

粗略地,您可以始终考虑更复杂的评级方法,这些方法将捕获数据的其他属性,例如对于具有相同观察数量的更高速率的更大惩罚,等等。

© www.soinside.com 2019 - 2024. All rights reserved.