Почему при использовании выборки Гиббса оценки топологических моделей различаются между апостериорными вычислениями и значениями модели? - PullRequest
0 голосов
/ 29 апреля 2019

При обучении тематической модели с пакетом topicmodels с использованием гиббсовской выборки баллы с использованием posterior() отличаются от баллов в самой обученной модели. Когда я использую VEM вместо Gibbs, результаты абсолютно одинаковы. Это почему? Поскольку для обучения использовались те же данные, что и для вычисления апостериорного балла, я ожидал, что выборка Гиббса также даст те же баллы.

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

library(topicmodels)

data("AssociatedPress", package = "topicmodels")
lda <- LDA(AssociatedPress[1:20,], control = list(alpha = 0.1), k = 2)
# calculate posterior scores with the exact same data
scoresVEM <- as.data.frame( posterior(lda, AssociatedPress[1:20,])$topics)
# retrieve scores from the model itself
scoresVEM2 <- as.data.frame(cbind(lda@documents,lda@gamma))

lda <- LDA(AssociatedPress[1:20,], method = "Gibbs", control = list(nstart = 5, burnin = 2000, best = TRUE, seed = 1:5), k = 2)
# calculate posterior scores with the exact same data
scoresGibbs <- as.data.frame( posterior(lda, AssociatedPress[1:20,])$topics)
# retrieve scores from the model itself
scoresGibbs2 <- as.data.frame(cbind(lda@documents,lda@gamma))

Давайте сравним кадры данных:

head(scoresVEM)
             1            2
1 9.998838e-01 0.0001162225
2 9.998872e-01 0.0001127924
3 9.998801e-01 0.0001198678
4 9.998523e-01 0.0001476551
5 4.628080e-04 0.9995371920
6 7.261089e-05 0.9999273891

head(scoresVEM2)
            V1           V2
1 9.998838e-01 0.0001162225
2 9.998872e-01 0.0001127924
3 9.998801e-01 0.0001198678
4 9.998523e-01 0.0001476551
5 4.628080e-04 0.9995371920
6 7.261089e-05 0.9999273891

Таким образом, и модельные и задние баллы одинаковы. Вот как Гиббс делает это:

head(scoresGibbs)
          1         2
1 0.1629393 0.8370607
2 0.2990654 0.7009346
3 0.1639344 0.8360656
4 0.5214008 0.4785992
5 0.5086207 0.4913793
6 0.1889597 0.8110403

head(scoresGibbs2)
         V1        V2
1 0.1693291 0.8306709
2 0.3021807 0.6978193
3 0.1901639 0.8098361
4 0.5408560 0.4591440
5 0.5517241 0.4482759
6 0.2080679 0.7919321

Баллы, по крайней мере, немного отличаются. Это почему? Большое спасибо заранее!

...