LatentDirichletAllocation#
- class sklearn.decomposition.LatentDirichletAllocation(n_components=10, *, doc_topic_prior=None, topic_word_prior=None, learning_method='batch', learning_decay=0.7, learning_offset=10.0, max_iter=10, batch_size=128, evaluate_every=-1, total_samples=1000000.0, perp_tol=0.1, mean_change_tol=0.001, max_doc_update_iter=100, n_jobs=None, verbose=0, random_state=None)[Quelle]#
Latent Dirichlet Allocation mit Online-Variational-Bayes-Algorithmus.
Die Implementierung basiert auf [1] und [2].
Hinzugefügt in Version 0.17.
Lesen Sie mehr im Benutzerhandbuch.
- Parameter:
- n_componentsint, default=10
Anzahl der Themen.
Geändert in Version 0.19:
n_topicswurde inn_componentsumbenannt- doc_topic_priorfloat, default=None
Prior der Dokumenten-Themen-Verteilung
theta. Wenn der Wert None ist, wird standardmäßig1 / n_componentsverwendet. In [1] wird diesalphagenannt.- topic_word_priorfloat, default=None
Prior der Themen-Wort-Verteilung
beta. Wenn der Wert None ist, wird standardmäßig1 / n_componentsverwendet. In [1] wird diesetagenannt.- learning_method{‘batch’, ‘online’}, default=’batch’
Methode zur Aktualisierung von
_component. Wird nur in derfit-Methode verwendet. Im Allgemeinen ist bei großen Datenmengen die Online-Aktualisierung viel schneller als die Batch-Aktualisierung.Gültige Optionen
‘batch’: Batch-Variational-Bayes-Methode. Verwendet alle Trainingsdaten bei jeder EM-Aktualisierung. Alte
components_werden in jeder Iteration überschrieben.‘online’: Online-Variational-Bayes-Methode. Bei jeder EM-Aktualisierung wird eine Mini-Charge von Trainingsdaten verwendet, um die Variable
components_inkrementell zu aktualisieren. Die Lernrate wird durch die Parameterlearning_decayundlearning_offsetgesteuert.
Geändert in Version 0.20: Die Standardlernmethode ist nun
"batch".- learning_decayfloat, default=0.7
Dies ist ein Parameter, der die Lernrate in der Online-Lernmethode steuert. Der Wert sollte zwischen (0,5, 1,0] liegen, um eine asymptotische Konvergenz zu gewährleisten. Wenn der Wert 0,0 ist und
batch_sizegleichn_samplesist, ist die Aktualisierungsmethode dieselbe wie beim Batch-Lernen. In der Literatur wird dies als kappa bezeichnet.- learning_offsetfloat, default=10.0
Ein (positiver) Parameter, der frühe Iterationen im Online-Lernen herunterstuft. Er sollte größer als 1,0 sein. In der Literatur wird dies als tau_0 bezeichnet.
- max_iterint, default=10
Die maximale Anzahl von Durchläufen über die Trainingsdaten (auch Epochen genannt). Beeinflusst nur das Verhalten in der
fit-Methode, nicht in derpartial_fit-Methode.- batch_sizeint, default=128
Anzahl der Dokumente, die in jeder EM-Iteration verwendet werden. Nur im Online-Lernen verwendet.
- evaluate_everyint, default=-1
Wie oft die Perplexität ausgewertet werden soll. Nur in der
fit-Methode verwendet. Setzen Sie ihn auf 0 oder eine negative Zahl, um die Perplexität während des Trainings überhaupt nicht auszuwerten. Die Auswertung der Perplexität kann Ihnen helfen, die Konvergenz im Trainingsprozess zu überprüfen, erhöht aber auch die gesamte Trainingszeit. Die Auswertung der Perplexität in jeder Iteration kann die Trainingszeit bis zum Zweifachen erhöhen.- total_samplesint, default=1e6
Gesamtzahl der Dokumente. Wird nur in der
partial_fit-Methode verwendet.- perp_tolfloat, default=1e-1
Perplexitätstoleranz. Nur verwendet, wenn
evaluate_everygrößer als 0 ist.- mean_change_tolfloat, default=1e-3
Stopptoleranz für die Aktualisierung der Dokumenten-Themen-Verteilung im E-Schritt.
- max_doc_update_iterint, default=100
Maximale Anzahl von Iterationen zur Aktualisierung der Dokumenten-Themen-Verteilung im E-Schritt.
- n_jobsint, default=None
Die Anzahl der Jobs, die im E-Schritt verwendet werden sollen.
Nonebedeutet 1, es sei denn, Sie befinden sich in einemjoblib.parallel_backend-Kontext.-1bedeutet die Verwendung aller Prozessoren. Weitere Informationen finden Sie im Glossar.- verboseint, default=0
Verbositätsstufe.
- random_stateint, RandomState-Instanz oder None, default=None
Geben Sie eine Ganzzahl für reproduzierbare Ergebnisse über mehrere Funktionsaufrufe hinweg an. Siehe Glossar.
- Attribute:
- components_ndarray der Form (n_components, n_features)
Variationale Parameter für die Themen-Wort-Verteilung. Da die vollständige Bedingung für die Themen-Wort-Verteilung eine Dirichlet-Verteilung ist, kann
components_[i, j]als Pseudocount betrachtet werden, der die Anzahl der Male darstellt, bei denen das WortjThemaizugeordnet wurde. Es kann auch als Verteilung über die Wörter für jedes Thema nach Normalisierung betrachtet werden:model.components_ / model.components_.sum(axis=1)[:, np.newaxis].- exp_dirichlet_component_ndarray der Form (n_components, n_features)
Exponentieller Wert der Erwartung der logarithmischen Themen-Wort-Verteilung. In der Literatur ist dies
exp(E[log(beta)]).- n_batch_iter_int
Anzahl der Iterationen des EM-Schritts.
- n_features_in_int
Anzahl der während des fits gesehenen Merkmale.
Hinzugefügt in Version 0.24.
- feature_names_in_ndarray mit Form (
n_features_in_,) Namen der während fit gesehenen Merkmale. Nur definiert, wenn
XMerkmalnamen hat, die alle Zeichenketten sind.Hinzugefügt in Version 1.0.
- n_iter_int
Anzahl der Durchläufe über den Datensatz.
- bound_float
Endgültiger Perplexitätswert im Trainingsdatensatz.
- doc_topic_prior_float
Prior der Dokumenten-Themen-Verteilung
theta. Wenn der Wert None ist, ist er1 / n_components.- random_state_RandomState-Instanz
RandomState-Instanz, die entweder aus einem Seed, dem Zufallszahlengenerator oder
np.randomgeneriert wurde.- topic_word_prior_float
Prior der Themen-Wort-Verteilung
beta. Wenn der Wert None ist, ist er1 / n_components.
Siehe auch
sklearn.discriminant_analysis.LinearDiscriminantAnalysisEin Klassifikator mit einer linearen Entscheidungsgrenze, der durch Anpassung klassenbedingter Dichten an die Daten und Anwendung der Bayes-Regel generiert wird.
Referenzen
[1] (1,2,3)„Online Learning for Latent Dirichlet Allocation“, Matthew D. Hoffman, David M. Blei, Francis Bach, 2010. blei-lab/onlineldavb
[2]„Stochastic Variational Inference“, Matthew D. Hoffman, David M. Blei, Chong Wang, John Paisley, 2013. https://jmlr.org/papers/volume14/hoffman13a/hoffman13a.pdf
Beispiele
>>> from sklearn.decomposition import LatentDirichletAllocation >>> from sklearn.datasets import make_multilabel_classification >>> # This produces a feature matrix of token counts, similar to what >>> # CountVectorizer would produce on text. >>> X, _ = make_multilabel_classification(random_state=0) >>> lda = LatentDirichletAllocation(n_components=5, ... random_state=0) >>> lda.fit(X) LatentDirichletAllocation(...) >>> # get topics for some given samples: >>> lda.transform(X[-2:]) array([[0.00360392, 0.25499205, 0.0036211 , 0.64236448, 0.09541846], [0.15297572, 0.00362644, 0.44412786, 0.39568399, 0.003586 ]])
- fit(X, y=None)[Quelle]#
Lernen Sie ein Modell für die Daten X mit der Methode der Variations-Bayes.
Wenn
learning_method‚online‘ ist, wird die Mini-Batch-Aktualisierung verwendet. Andernfalls wird die Batch-Aktualisierung verwendet.- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Dokumenten-Wort-Matrix.
- yIgnoriert
Nicht verwendet, hier zur API-Konsistenz durch Konvention vorhanden.
- Gibt zurück:
- self
Angepasster Schätzer.
- fit_transform(X, y=None, *, normalize=True)[Quelle]#
An Daten anpassen, dann transformieren.
Passt den Transformer an
Xundyan und gibt eine transformierte Version vonXzurück.- Parameter:
- Xarray-like der Form (n_samples, n_features)
Eingabestichproben.
- yarray-like der Form (n_samples,) oder (n_samples, n_outputs), Standardwert=None
Zielwerte (None für unüberwachte Transformationen).
- normalizebool, default=True
Ob die Dokumenten-Themen-Verteilung in
transformnormalisiert werden soll.
- Gibt zurück:
- X_newndarray-Array der Form (n_samples, n_components)
Transformiertes Array.
- get_feature_names_out(input_features=None)[Quelle]#
Holt die Ausgabemerkmale für die Transformation.
Die Feature-Namen werden mit dem kleingeschriebenen Klassennamen präfixiert. Wenn der Transformer z.B. 3 Features ausgibt, dann sind die Feature-Namen:
["klassenname0", "klassenname1", "klassenname2"].- Parameter:
- input_featuresarray-like von str oder None, default=None
Wird nur verwendet, um die Feature-Namen mit den in
fitgesehenen Namen zu validieren.
- Gibt zurück:
- feature_names_outndarray von str-Objekten
Transformierte Merkmalnamen.
- get_metadata_routing()[Quelle]#
Holt das Metadaten-Routing dieses Objekts.
Bitte prüfen Sie im Benutzerhandbuch, wie der Routing-Mechanismus funktioniert.
- Gibt zurück:
- routingMetadataRequest
Ein
MetadataRequest, der Routing-Informationen kapselt.
- get_params(deep=True)[Quelle]#
Holt Parameter für diesen Schätzer.
- Parameter:
- deepbool, default=True
Wenn True, werden die Parameter für diesen Schätzer und die enthaltenen Unterobjekte, die Schätzer sind, zurückgegeben.
- Gibt zurück:
- paramsdict
Parameternamen, zugeordnet ihren Werten.
- partial_fit(X, y=None)[Quelle]#
Online VB mit Mini-Batch-Aktualisierung.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Dokumenten-Wort-Matrix.
- yIgnoriert
Nicht verwendet, hier zur API-Konsistenz durch Konvention vorhanden.
- Gibt zurück:
- self
Teilweise angepasster Schätzer.
- perplexity(X, sub_sampling=False)[Quelle]#
Berechnet die ungefähre Perplexität für die Daten X.
Perplexität ist definiert als exp(-1. * Log-Likelihood pro Wort)
Geändert in Version 0.19: Das Argument doc_topic_distr wurde veraltet und wird ignoriert, da der Benutzer keinen Zugriff mehr auf die unnormalisierte Verteilung hat
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Dokumenten-Wort-Matrix.
- sub_samplingbool
Sub-Sampling durchführen oder nicht.
- Gibt zurück:
- scorefloat
Perplexitätswert.
- score(X, y=None)[Quelle]#
Berechnet die ungefähre Log-Likelihood als Score.
- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Dokumenten-Wort-Matrix.
- yIgnoriert
Nicht verwendet, hier zur API-Konsistenz durch Konvention vorhanden.
- Gibt zurück:
- scorefloat
Verwendet die ungefähre Schranke als Score.
- set_output(*, transform=None)[Quelle]#
Ausgabecontainer festlegen.
Siehe Einführung in die set_output API für ein Beispiel zur Verwendung der API.
- Parameter:
- transform{“default”, “pandas”, “polars”}, default=None
Konfiguriert die Ausgabe von
transformundfit_transform."default": Standardausgabeformat eines Transformers"pandas": DataFrame-Ausgabe"polars": Polars-AusgabeNone: Die Transformationskonfiguration bleibt unverändert
Hinzugefügt in Version 1.4: Die Option
"polars"wurde hinzugefügt.
- Gibt zurück:
- selfestimator instance
Schätzer-Instanz.
- set_params(**params)[Quelle]#
Setzt die Parameter dieses Schätzers.
Die Methode funktioniert sowohl bei einfachen Schätzern als auch bei verschachtelten Objekten (wie
Pipeline). Letztere haben Parameter der Form<component>__<parameter>, so dass es möglich ist, jede Komponente eines verschachtelten Objekts zu aktualisieren.- Parameter:
- **paramsdict
Schätzer-Parameter.
- Gibt zurück:
- selfestimator instance
Schätzer-Instanz.
- set_transform_request(*, normalize: bool | None | str = '$UNCHANGED$') LatentDirichletAllocation[Quelle]#
Konfiguriert, ob Metadaten für die
transform-Methode angefordert werden sollen.Beachten Sie, dass diese Methode nur relevant ist, wenn dieser Schätzer als Unter-Schätzer innerhalb eines Meta-Schätzers verwendet wird und Metadaten-Routing mit
enable_metadata_routing=Trueaktiviert ist (siehesklearn.set_config). Bitte lesen Sie das Benutzerhandbuch, um zu erfahren, wie der Routing-Mechanismus funktioniert.Die Optionen für jeden Parameter sind
True: Metadaten werden angefordert und, falls vorhanden, antransformweitergegeben. Die Anforderung wird ignoriert, wenn keine Metadaten bereitgestellt werden.False: Metadaten werden nicht angefordert und die Meta-Schätzung übergibt sie nicht antransform.None: Metadaten werden nicht angefordert und der Meta-Schätzer löst einen Fehler aus, wenn der Benutzer sie bereitstellt.str: Metadaten sollten mit diesem Alias an den Meta-Schätzer übergeben werden und nicht mit dem ursprünglichen Namen.
Der Standardwert (
sklearn.utils.metadata_routing.UNCHANGED) behält die bestehende Anforderung bei. Dies ermöglicht es Ihnen, die Anforderung für einige Parameter zu ändern und für andere nicht.Hinzugefügt in Version 1.3.
- Parameter:
- normalizestr, True, False, oder None, default=sklearn.utils.metadata_routing.UNCHANGED
Metadaten-Routing für den Parameter
normalizeintransform.
- Gibt zurück:
- selfobject
Das aktualisierte Objekt.
- transform(X, *, normalize=True)[Quelle]#
Transformieren Sie die Daten X gemäß dem angepassten Modell.
Geändert in Version 0.18:
doc_topic_distrwird nun normalisiert.- Parameter:
- X{array-like, sparse matrix} der Form (n_samples, n_features)
Dokumenten-Wort-Matrix.
- normalizebool, default=True
Ob die Dokumenten-Themen-Verteilung normalisiert werden soll.
- Gibt zurück:
- doc_topic_distrndarray der Form (n_samples, n_components)
Dokumenten-Themen-Verteilung für X.
Galeriebeispiele#
Themenextraktion mit Non-negative Matrix Factorization und Latent Dirichlet Allocation