Как сделать выборку из логарифмического распределения вероятности? - PullRequest
0 голосов
/ 11 октября 2019

У меня есть код, который использует лог-вероятность. Когда я хочу взять выборку из распределения вероятностей, я использую

import numpy as np

probs = np.exp(logprobs)
probs /= probs.sum()
sample = np.random.choice(X, p=probs, size=1)[0]

Но здесь есть некоторые накладные расходы в возведении в степень и делении. И функция numpy random.choice требует, чтобы вероятности были между 0 и 1 и суммой до 1.

Есть ли какие-либо быстрые методы для меня, чтобы сделать выборку с использованием ненормализованного массива логарифмической вероятности? Мне нужен только один образец за раз, и частота его прорисовки должна быть пропорциональна логарифмической вероятности.

...