[PYTHON] Wenn Sie sich über "zu wenige Updates ~" ärgern, wenn Sie LdaModel ausführen

Irgendwie ist das ... Es scheint, als könnten Sie mit Pässen oder Iterationen spielen Ich habe große Angst, weil ich den Inhalt wie die Parameteranpassung der numerischen Berechnung nicht kenne.

Wo der Fehler ist


model_lda = LdaModel(corpus=corpus, num_topics=30, id2word=corpus.id2word)
WARNING:gensim.models.ldamodel:too few updates, training might not converge; consider increasing the number of passes or iterations to improve accuracy

Schauen Sie sich [Quellcode] an (https://github.com/piskvorky/gensim/blob/develop/gensim/models/ldamodel.py) Das Problem ist die letzte Aktualisierungsmethode

In der Update-Methode_In der Nähe der Linie 616


if updates_per_pass * passes < 10:
    logger.warning("too few updates, training might not converge; consider "
                   "increasing the number of passes or iterations to improve accuracy")

passt verwendet die Init-Parameter-Übergänge von LdaModel so wie sie sind. 1 ist standardmäßig zugewiesen. updates_per_pass ... Mmm ...

In der Update-Methode_Zeile 607


updates_per_pass = max(1, lencorpus / updateafter)

Für lencorpus wird der Wert von len (Korpus) in der Nähe der Zeile 585 der Aktualisierungsmethode zugewiesen. Der Punkt ist die Anzahl der Dokumente. Die Anzahl der Sätze, wenn diese Warnung ausgegeben wird, beträgt 4019. updateafter...

In der Update-Methode_Um die Linie 599


if update_every:
    updatetype = "online"
    updateafter = min(lencorpus, update_every * self.numworkers * chunksize)
else:
    updatetype = "batch"
    updateafter = lencorpus

Wenn für die Aktualisierungsmethode kein Argument angegeben ist, Der init-Parameter update_every wird update_every zugewiesen. Der Anfangswert ist 1. Wenn Sie nichts getan haben, ist der Aktualisierungstyp online. self.numworkers enthält 1, wenn der verteilte init-Parameter False bleibt.

Chunksize ist ...

In der Update-Methode_595 Zeilen


chunksize = min(lencorpus, self.chunksize)

self.chunksize entspricht dem init-Parameter chunksize. Der Standardwert ist 2000.

Mit anderen Worten ... updateafter = min(4019, 112000) = 2000 updates_per_pass = max(1, 4019 / 2000) ≒ 2 Die Bewertungsformel links von if lautet also 2 * 1. Out.

Maße ・ Erhöhen Sie die Pässe. In diesem Fall ist Pässe = 5 und Sie werden nicht wütend.

Ich habe diesen Parameter satt und werde ihn an einem anderen Tag nachschlagen.

Recommended Posts

Wenn Sie sich über "zu wenige Updates ~" ärgern, wenn Sie LdaModel ausführen
[Python] [vscode] Wenn Sie sich über Space-Tab-Mix ärgern
Ich erhalte einen UnicodeDecodeError, wenn ich mit mod_wsgi laufe
Wenn Sie sich mit HTTP-Weiterleitungen 301 und 302 verlaufen
Swapon fehlgeschlagen: Was tun, wenn Sie sich über eine Operation ärgern, die nicht zulässig ist?
Was tun, wenn bei der Installation von Python mit pyenv eine Fehlermeldung angezeigt wird?
Wenn beim Tippen einer interaktiven Shell mit Anaconda eine lange Fehlermeldung angezeigt wird
Wenn Sie beim Erstellen von Pycocoapi unter Windows nicht weiterkommen
Was tun, wenn bei der Installation von Python 2 mit pyenv ein OpenSSL-Fehler auftritt?
Was tun, wenn beim Importieren von matplotlib mit Jupyter ein Importfehler auftritt?
Was tun, wenn beim Ausführen von "certbot erneuern" in der CakePHP-Umgebung eine Fehlermeldung angezeigt wird?
Was tun, wenn beim Versuch, pip mit pyenv zu verwenden, ein undefinierter Fehler angezeigt wird?
Was tun, wenn Sie wütend werden, wenn Sie bei der Installation von lxml unter CentOS nicht über libxml / xmlversion.h verfügen?
Lesen Sie dies, wenn bei der Pip-Installation SSL-Fehler auftreten! !! !!
Was tun, wenn bei Verwendung von Python mit der NetBeans-IDE die Warnung "Falsche Python-Plattform" angezeigt wird?
Was tun, wenn Sie sich über "Wertefehler: unbekannt lokal: UTF-8" in python manage.py syncdb ärgern?
Was tun, wenn Sie wütend werden, wenn Sie nicht libxml / xmlversion.h haben, wenn Sie lxml in pip einfügen?
Ich möchte wütend auf meine Mutter werden, wenn die Erinnerung knapp ist
Was tun, wenn Sie sich mit FileNotFoundError in der Dateireferenz verlieren?
Was tun, wenn Sie sich über TensorFlow v2 ohne Attribut 'app' ärgern?
Wenn Sie mehrere Statistiken mit groupby of pandas v1 erhalten möchten
Was tun, wenn TypeError in min und max von numpy auftritt?
Was tun, wenn beim Laden von mnist eine Fehlermeldung angezeigt wird?
Was tun, wenn Sie URL 443 mit pip nicht abrufen konnten?