Функция для демпфирования значения - PullRequest
2 голосов
/ 14 января 2012

У меня есть список документов, каждый из которых имеет оценку релевантности для поискового запроса. Мне нужны более старые документы, чтобы уменьшить их релевантность, чтобы попытаться ввести их дату в процесс ранжирования. Я уже пытался поиграться с такими функциями, как 1 / (1 + date_difference), но обратная функция слишком разборчива для близких недавних дат.

Я подумал, может быть, математическая функция с диапазоном (0..1) и доменом (0..x) для усиления их оценки, где ось X - это возраст документа. Лучше всего объяснить, что мне еще нужно из функции, по изображению:

Ответы [ 4 ]

1 голос
/ 14 января 2012

Распадающееся поведение часто хорошо моделируется экспоненциальной функцией (за ней следуют и многие распадающиеся процессы в природе). Вы бы использовали 2 положительных параметра A и B и получили бы

y(x) = A exp(-B x)

Так как вы хотите y -диапазон [0,1], установите A=1. Большие B дают более медленные распады.

1 голос
/ 14 января 2012
log((x+1)-age_of_document)

Где основание логарифма (х + 1). Обратите внимание, что х соответствует вашей диаграмме и является «порогом». Если возраст документа превышает x, оценка становится отрицательной. Умножьте на максимально возможную оценку, чтобы ввести масштабирование.

например. Домен = (0,10) с максимальной оценкой 10: 10 * (log (11-x)) / log (11)

1 голос
/ 14 января 2012

Если простая 1 / (1 + x) слишком быстро уменьшается слишком быстро, сигмовидная функция , такая как 1 / (1 + e ^ -x) или функция ошибок, может лучше подходить для вашей цели,Пусть текущая дата находится где-то в отрицательных числах для такой функции, и вы можете получить значение, которое является текущим в течение некоторого настраиваемого времени, а затем уменьшается до базового значения.

0 голосов
/ 02 апреля 2015

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

0,8 / (1 + 5 ^ (x-3)) + 0,2 - Вы можете настроить константы 5 и 3 для управления наклоном кривой.0,2 - это место, где будет пол.

...