Понимание вычисления процентиль - PullRequest
0 голосов
/ 14 января 2019

Я понимаю процентиль в контексте результатов тестов со многими примерами (например, ваш балл SAT падает в 99-м процентиле), но я не уверен, что понимаю процентиль в следующем контексте и в том, что происходит. Представьте, что модель выводит вероятности (в некоторые дни у нас много новых данных и выводимых вероятностей, а в некоторые дни - нет). Представьте, что я хочу вычислить 99-й процентиль выведенных вероятностей. Вот вероятности на сегодня:

a = np.array([0,0.2,0.4,0.7,1])
p = np.percentile(a,99)
print(p)

0.988

Я не понимаю, как вычисляется 99-й процентиль в этой ситуации, где есть только 5 выведенных вероятностей. Как был вычислен результат? Спасибо!

1 Ответ

0 голосов
/ 14 января 2019

Применяется линейная интерполяция. Вы можете проверить последовательность самостоятельно:

a = np.array([0,0.2,0.4,0.7,1])

np.sort(a)  # array([ 0. ,  0.2,  0.4,  0.7,  1. ])

np.percentile(a, 75)   # 0.70
np.percentile(a, 100)  # 1.0
np.percentile(a, 99)   # 0.988

0.70 + (1.0 - 0.70) * (99 - 75) / (100 - 75)  # 0.988

В документации также указано 'linear' по умолчанию :

numpy.percentile(a, q, axis=None, out=None, overwrite_input=False, interpolation='linear', keepdims=False)

'linear' : i + (j - i) * fraction, где fraction - дробная часть индекса, окруженная i и j.

...