Как выполнить 10-кратную перекрестную проверку пакета stm в R - PullRequest
0 голосов
/ 02 июля 2019

Я использую пакет stm в R. Это метод моделирования тем.У меня возникли проблемы с выполнением 10-кратного шага перекрестной проверки.В других пакетах моделирования тем, таких как tm, есть опция недоумения, которая позволяет k-кратную перекрестную проверку.Хотя stm предлагает различные метрики проверки, он не включает опцию сворачивания проверки.

Я пытался использовать опцию недоумения, предлагаемую в пакете tm на модели stm, но безрезультатно.

set.seed(100)
topics <- c(10, 20, 30, 40, 50, 60, 70, 80, 90, 100) 
seed <- 2
D <- length(filenames) # number docs
folding <-sample(rep(seq_len(10), ceiling(D))[seq_len(D)])
table(folding)

perp_by_col <- vector()
for (k in topics) {
  perp_by_row <- vector()
  for (chain in seq_len(10)) {
    training <- LettersPrevFit <- stm(documents = out$documents[folding != chain,], vocab =out$vocab, K = k, 
                                      prevalence =~ covariate,
                                      max.em.its = 75, data = out$meta,
                                      init.type = "Spectral") 
    testing <- LettersPrevFit <- stm(documents = out$documents[folding == chain,], vocab =out$vocab, K = k, 
                                     prevalence =~ covariate,
                                     max.em.its = 75, data = out$meta,
                                     init.type = "Spectral") 
    perp_by_row <- rbind(perp_by_row, perplexity(testing))
  }
  perp_by_col <- cbind(perp_by_col,perp_by_row)
}

Проблема в том, что недоумение не работает в этом случае, поэтому функция не работает.Мне бы хотелось, чтобы модель stm проходила через эти различные группы поддержки и изучала, как они работают над темой с номерами 10-100.

...