[
https://issues.apache.org/jira/browse/MADLIB-1351?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16904080#comment-16904080
]
Himanshu Pandey commented on MADLIB-1351:
-----------------------------------------
[~fmcquillan],
If I am calculating Perplexity every 2nd iteration, the perplexity values are
coming as follows:
{code}
perplexity |
{{73.7550415613786,70.5237666023843,70.6146354978257,71.6661000896055,69.7403205794835}}
{code}
As you can see the order is not constant here. So how the *perplexity_tol*
will be used here?
I am thinking of doing something like this:
if *abs*(difference of last 2 perplexity values) < *perplexity_tol* then stop
iterating.
Let me know your thoughts on this one.
> Add stopping criteria on perplexity to LDA
> ------------------------------------------
>
> Key: MADLIB-1351
> URL: https://issues.apache.org/jira/browse/MADLIB-1351
> Project: Apache MADlib
> Issue Type: Improvement
> Components: Module: Parallel Latent Dirichlet Allocation
> Reporter: Frank McQuillan
> Assignee: Himanshu Pandey
> Priority: Major
> Fix For: v1.17
>
>
> In LDA
> http://madlib.apache.org/docs/latest/group__grp__lda.html
> make stopping criteria on perplexity rather than just number of iterations.
> Suggested approach is to do what scikit-learn does
> https://scikit-learn.org/stable/modules/generated/sklearn.decomposition.LatentDirichletAllocation.html
> evaluate_every : int, optional (default=0)
> How often to evaluate perplexity. Set it to 0 or negative number to not
> evaluate perplexity in training at all. Evaluating perplexity can help you
> check convergence in training process, but it will also increase total
> training time. Evaluating perplexity in every iteration might increase
> training time up to two-fold.
> perplexity_tol : float, optional (default=1e-1)
> Perplexity tolerance to stop iterating. Only used when evaluate_every is
> greater than 0.
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)