topicmodels의 LDA 함수에서 재현 가능한 결과를 생성 할 수 없었습니다. 자신의 문서에서 예제를 수행하려면R의 topicmodels 패키지에서 LDA 함수로 정확한 결과를 재현하는 방법
library(topicmodels)
set.seed(0)
lda1 <- LDA(AssociatedPress[1:20, ], control=list(seed=0), k=2)
set.seed(0)
lda2 <- LDA(AssociatedPress[1:20, ], control=list(seed=0), k=2)
identical(lda1, lda2)
# [1] FALSE
가 어떻게 LDA에 두 개의 별도의 통화에서 동일한 결과를 얻을 수 있나요?
제쳐두고 (패키지 작성자가 여기에있는 경우) control=list(seed=0)
스 니펫은 불행하고 불필요합니다. 뒤에는 if (missing(seed)) seed <- as.integer(Sys.time())
의 줄이 있습니다. 이렇게하면 프로세스를보다 안정적으로 무작위로 만들지 않고 지정된 시드 만 실행 취소합니다. 내가 놓친 게 있니?
업데이트 : @hrbrmstr이 아래에서 발견했듯이, 컨트롤로 시드를 전달하면 효과적으로 동일한 개체가 생성되며, 유일한 차이점은 임시 로컬 파일 위치입니다. 따라서이 질문은 오해의 정도입니다 (그래도 함수가 set.seed()
을 존중한다면 명확 해 보입니다).
[seedmodels jstats journal entry] (http://epub.wu.ac.at/3987/1/topicmodels.pdf)의 9 페이지에있는'nstart' 및'best'와 함께'seed'가 언급됩니다. [PDF]. 나는 당신이 모든 것을'control = list (...) '매개 변수 세트에 포함 시켜서 완전히 재현 가능한 결과를 얻을 수 있도록해야한다고 생각합니다. – hrbrmstr
컨트롤에 nstart = 1과 best = T를 추가해도 여전히 동일하지 않습니다 (lda1, lda2) == T –