Как выбрать вес для взвешенного среднего? - PullRequest
0 голосов
/ 14 сентября 2018

Я выполняю процесс извлечения функций для проблемы машинного обучения, и я столкнулся с проблемой.

Рассмотрим набор продуктов. Каждый продукт оценивается как 0 или 1, что соответствует плохо или хорошо соответственно. Теперь я хочу вычислить для каждого уникального продукта рейтинговую оценку в интервале [0, n], где n - это целое число, большее 0.

Суммарные рейтинги для каждого продукта, очевидно, отличаются, поэтому простое среднее приведет к возникновению таких проблем, как:

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

Несмотря на то, что коэффициент а) выше, коэффициент б) дает пользователю гораздо большую уверенность. По этой причине мне нужно средневзвешенное значение.

Проблема в том, какой вес выбрать . Частота продуктов варьируется от 100 до 100 тыс.

Мой первый подход был следующим:

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), но с учетом исходных соотношений, которые могут не иметь места.

Я хотел бы узнать эффективный (если есть) способ расчета идеального веса или другие подобные предложения.

1 Ответ

0 голосов
/ 11 марта 2019

Я полагаю, что ответ на ваш вопрос субъективен, поскольку важность, которую вы решаете связать с неопределенностью, вызванной меньшим числом выборок, также субъективна.

Однако, думая в терминах «штрафа» за меньшее количество выборок, я мог бы придумать другой способ скорректировать оценку для меньшего количества выборок. Глядя на следующую формулу:

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

Я не могу добавить встроенное изображение формулы, но вы можете увидеть его здесь .

Эта формула заставляет рейтинги приближаться к простому рейтингу, когда TotalRates приближается к бесконечности. Фактически, четные числа в порядке сотен и выше становятся незначительными. Выбор различных значений альфа увеличит или уменьшит важность меньшего числа общих показателей.

Грубый, вы всегда можете рассмотреть более сложные рейтинговые подходы, которые улавливают другие свойства ваших данных, такие как больший штраф за более высокую скорость при том же количестве наблюдений и т. Д.

...