You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@madlib.apache.org by "Himanshu Pandey (JIRA)" <ji...@apache.org> on 2019/08/09 17:54:00 UTC

[jira] [Commented] (MADLIB-1351) Add stopping criteria on perplexity to LDA

    [ 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)