MCMC Trace Plot в Эдварде
Я использую модель процесса Дирихле (DPMM) для вывода назначений кластера и параметров кластера в синтетическом наборе данных с использованием Edward на основе следующей публикации сообщества. Я использую GPU-ускоренный Metropolis Hastings для изучения апостериорного распределения по параметрам модели. Например, для кластерных средств имеем:
D = 2 #dimension of the data
K = 5 #cluster truncation
T = 10000 #number of samples
mu = Normal(loc=tf.zeros(D), scale=tf.ones(D), sample_shape=K)
qmu = Normal(loc=tf.zeros(D), scale=tf.ones(D), sample_shape=K) #posterior
gmu = Normal(loc=tf.zeros(D), scale=tf.ones(D), sample_shape=K) #proposal
inference = ed.MetropolisHastings(
latent_vars={mu: qmu, ...},
proposal_vars={mu: gmu, ...},
data={x: x_data})
Я заинтересован в создании трассировки для визуализации образцов из апостериорного распределения qmu
, Я ищу что-то похожее на PyMC pm.traceplot()
Как мне создать график трассировки в Эдварде?
1 ответ
Решение
Для Empirical
Распределение, используемое в выборке, мы можем получить доступ к выборочным значениям следующим образом:
thin=4
burnin=2000
qmu_trace = qmu.params[burnin::thin].eval()
Затем мы можем построить трассировку и вычислить гистограмму и автокорреляцию как обычно.