GaussianMixture#
- class sklearn.mixture.GaussianMixture(n_components=1, *, covariance_type='full', tol=0.001, reg_covar=1e-06, max_iter=100, n_init=1, init_params='kmeans', weights_init=None, means_init=None, precisions_init=None, random_state=None, warm_start=False, verbose=0, verbose_interval=10)[Quelle]#
Gaußsche Mischung.
Repräsentation einer Gaußschen Mischungsverteilung. Diese Klasse ermöglicht die Schätzung der Parameter einer Gaußschen Mischverteilung.
Lesen Sie mehr im Benutzerhandbuch.
Hinzugefügt in Version 0.18.
- Parameter:
- n_componentsint, Standardwert=1
Die Anzahl der Mischungskomponenten.
- covariance_type{‘full’, ‘tied’, ‘diag’, ‘spherical’}, Standardwert=’full’
Eine Zeichenkette, die den Typ der zu verwendenden Kovarianzparameter beschreibt. Muss einer der folgenden sein:
‘full’: jede Komponente hat ihre eigene allgemeine Kovarianzmatrix.
‘tied’: alle Komponenten teilen sich dieselbe allgemeine Kovarianzmatrix.
‘diag’: jede Komponente hat ihre eigene diagonale Kovarianzmatrix.
‘spherical’: jede Komponente hat ihre eigene einzelne Varianz.
Ein Beispiel für die Verwendung von
covariance_typefinden Sie unter Gaußsche Mischungsmodell-Auswahl.- tolfloat, Standard=1e-3
Der Konvergenzschwellenwert. EM-Iterationen werden gestoppt, wenn der Gewinn der unteren Grenze durchschnittlich unter diesem Schwellenwert liegt.
- reg_covarfloat, Standardwert=1e-6
Nicht-negative Regularisierung, die zur Diagonalen der Kovarianzmatrix addiert wird. Stellt sicher, dass die Kovarianzmatrizen alle positiv sind.
- max_iterint, default=100
Die Anzahl der durchzuführenden EM-Iterationen.
- n_initint, Standard=1
Die Anzahl der durchzuführenden Initialisierungen. Die besten Ergebnisse werden beibehalten.
- init_params{‘kmeans’, ‘k-means++’, ‘random’, ‘random_from_data’}, Standardwert=’kmeans’
Die Methode zur Initialisierung der Gewichte, Mittelwerte und Präzisionen. Die Zeichenkette muss einer der folgenden sein:
‘kmeans’: Verantwortlichkeiten werden mit KMeans initialisiert.
‘k-means++’: verwendet die k-means++-Methode zur Initialisierung.
‘random’: Verantwortlichkeiten werden zufällig initialisiert.
‘random_from_data’: anfängliche Mittelwerte sind zufällig ausgewählte Datenpunkte.
Geändert in Version v1.1:
init_paramsakzeptiert nun 'random_from_data' und 'k-means++' als Initialisierungsmethoden.- weights_initarray-ähnlich der Form (n_components,), Standardwert=None
Die vom Benutzer bereitgestellten anfänglichen Gewichte. Wenn es None ist, werden die Gewichte mit der
init_params-Methode initialisiert.- means_initarray-ähnlich der Form (n_components, n_features), Standardwert=None
Die vom Benutzer bereitgestellten anfänglichen Mittelwerte. Wenn es None ist, werden die Mittelwerte mit der
init_params-Methode initialisiert.- precisions_initarray-ähnlich, Standardwert=None
Die vom Benutzer bereitgestellten anfänglichen Präzisionsmatrizen (Inverse der Kovarianzmatrizen). Wenn es None ist, werden die Präzisionen mit der 'init_params'-Methode initialisiert. Die Form hängt von 'covariance_type' ab.
(n_components,) if 'spherical', (n_features, n_features) if 'tied', (n_components, n_features) if 'diag', (n_components, n_features, n_features) if 'full'
- random_stateint, RandomState-Instanz oder None, default=None
Steuert den Zufallszähler, der an die gewählte Methode zur Initialisierung der Parameter übergeben wird (siehe
init_params). Zusätzlich steuert er die Generierung von Zufallsstichproben aus der angepassten Verteilung (siehe Methodesample). Übergeben Sie einen Integer für reproduzierbare Ergebnisse über mehrere Funktionsaufrufe hinweg. Siehe Glossar.- warm_startbool, Standard=False
Wenn 'warm_start' auf True gesetzt ist, wird die Lösung der letzten Anpassung als Initialisierung für den nächsten Aufruf von fit() verwendet. Dies kann die Konvergenz beschleunigen, wenn fit() mehrmals auf ähnlichen Problemen aufgerufen wird. In diesem Fall wird 'n_init' ignoriert und bei jedem ersten Aufruf wird nur eine einzige Initialisierung durchgeführt. Bei aufeinanderfolgenden Aufrufen beginnt das Training dort, wo es aufgehört hat. Siehe das Glossar.
- verboseint, default=0
Aktiviert die ausführliche Ausgabe. Wenn 1, werden die aktuelle Initialisierung und jeder Iterationsschritt ausgegeben. Wenn größer als 1, werden auch die Log-Wahrscheinlichkeit und die für jeden Schritt benötigte Zeit ausgegeben.
- verbose_intervalint, Standardwert=10
Anzahl der durchgeführten Iterationen, bevor die nächste Ausgabe erfolgt.
- Attribute:
- weights_array-ähnlich der Form (n_components,)
Die Gewichte jeder Mischungskomponente.
- means_array-ähnlich der Form (n_components, n_features)
Der Mittelwert jeder Mischungskomponente.
- covariances_array-ähnlich
Die Kovarianz jeder Mischungskomponente. Die Form hängt von
covariance_typeab.(n_components,) if 'spherical', (n_features, n_features) if 'tied', (n_components, n_features) if 'diag', (n_components, n_features, n_features) if 'full'
Ein Beispiel für die Verwendung von Kovarianzen finden Sie unter GMM-Kovarianzen.
- precisions_array-ähnlich
Die Präzisionsmatrizen für jede Komponente in der Mischung. Eine Präzisionsmatrix ist die Inverse einer Kovarianzmatrix. Eine Kovarianzmatrix ist symmetrisch und positiv definit, sodass die Gaußsche Mischung äquivalent durch die Präzisionsmatrizen parametrisiert werden kann. Die Speicherung der Präzisionsmatrizen anstelle der Kovarianzmatrizen macht die Berechnung der Log-Likelihood neuer Stichproben zur Testzeit effizienter. Die Form hängt von
covariance_typeab.(n_components,) if 'spherical', (n_features, n_features) if 'tied', (n_components, n_features) if 'diag', (n_components, n_features, n_features) if 'full'
- precisions_cholesky_array-ähnlich
Die Cholesky-Zerlegung der Präzisionsmatrizen jeder Mischungskomponente. Eine Präzisionsmatrix ist die Inverse einer Kovarianzmatrix. Eine Kovarianzmatrix ist symmetrisch und positiv definit, sodass die Gaußsche Mischung äquivalent durch die Präzisionsmatrizen parametrisiert werden kann. Die Speicherung der Präzisionsmatrizen anstelle der Kovarianzmatrizen macht die Berechnung der Log-Likelihood neuer Stichproben zur Testzeit effizienter. Die Form hängt von
covariance_typeab.(n_components,) if 'spherical', (n_features, n_features) if 'tied', (n_components, n_features) if 'diag', (n_components, n_features, n_features) if 'full'
- converged_bool
True, wenn die Konvergenz der besten Anpassung von EM erreicht wurde, sonst False.
- n_iter_int
Anzahl der Schritte, die von der besten Anpassung von EM zur Erreichung der Konvergenz verwendet wurden.
- lower_bound_float
Wert der unteren Grenze der Log-Likelihood (der Trainingsdaten bezüglich des Modells) der besten Anpassung von EM.
- lower_bounds_array-ähnlich der Form (
n_iter_, ) Die Liste der Werte der unteren Grenze der Log-Likelihood aus jeder Iteration der besten Anpassung von EM.
- 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.
Siehe auch
BayesianGaussianMixtureGaußsches Mischungsmodell, angepasst mit variabler Inferenz.
Beispiele
>>> import numpy as np >>> from sklearn.mixture import GaussianMixture >>> X = np.array([[1, 2], [1, 4], [1, 0], [10, 2], [10, 4], [10, 0]]) >>> gm = GaussianMixture(n_components=2, random_state=0).fit(X) >>> gm.means_ array([[10., 2.], [ 1., 2.]]) >>> gm.predict([[0, 0], [12, 3]]) array([1, 0])
Ein Vergleich von Gaußschem Gemisch mit anderen Clustering-Algorithmen finden Sie unter Vergleich verschiedener Clustering-Algorithmen auf Spielzeugdatensätzen.
Eine Veranschaulichung der negativ Log-Likelihood-Oberfläche eines
GaussianMixture-Modells finden Sie unter Dichteschätzung für ein Gaußsches Gemisch.- aic(X)[Quelle]#
Akaike-Informationskriterium für das aktuelle Modell auf den Eingabedaten X.
Sie können diesen mathematischen Abschnitt für weitere Details zur Formulierung des verwendeten AIC konsultieren.
- Parameter:
- Xarray der Form (n_samples, n_dimensions)
Die Eingabestichproben.
- Gibt zurück:
- aicfloat
Je niedriger, desto besser.
- bic(X)[Quelle]#
Bayesianisches Informationskriterium für das aktuelle Modell auf den Eingabedaten X.
Sie können diesen mathematischen Abschnitt für weitere Details zur Formulierung des verwendeten BIC konsultieren.
Ein Beispiel für die Auswahl von GMM mit dem
bic-Informationskriterium finden Sie unter Gaußsche Mischungsmodell-Auswahl.- Parameter:
- Xarray der Form (n_samples, n_dimensions)
Die Eingabestichproben.
- Gibt zurück:
- bicfloat
Je niedriger, desto besser.
- fit(X, y=None)[Quelle]#
Schätzen Sie die Modellparameter mit dem EM-Algorithmus.
Die Methode passt das Modell
n_init-mal an und setzt die Parameter, mit denen das Modell die höchste Wahrscheinlichkeit oder die größte untere Grenze hat. Innerhalb jedes Durchlaufs iteriert die Methode zwischen E-Schritt und M-Schritt fürmax_iterMal, bis die Änderung der Wahrscheinlichkeit oder der unteren Grenze geringer alstolist. Andernfalls wird eineConvergenceWarningausgelöst. Wennwarm_startaufTruegesetzt ist, wirdn_initignoriert und bei jedem ersten Aufruf wird nur eine einzige Initialisierung durchgeführt. Bei aufeinanderfolgenden Aufrufen beginnt das Training dort, wo es aufgehört hat.- Parameter:
- Xarray-like der Form (n_samples, n_features)
Liste von n_dimensions-dimensionalen Datenpunkten. Jede Zeile entspricht einem einzelnen Datenpunkt.
- yIgnoriert
Wird nicht verwendet, ist aber aus Gründen der API-Konsistenz per Konvention vorhanden.
- Gibt zurück:
- selfobject
Das angepasste Gemisch.
- fit_predict(X, y=None)[Quelle]#
Schätzen Sie die Modellparameter mit X und prognostizieren Sie die Labels für X.
Die Methode passt das Modell
n_init-mal an und setzt die Parameter, mit denen das Modell die höchste Wahrscheinlichkeit oder die größte untere Grenze hat. Innerhalb jedes Durchlaufs iteriert die Methode zwischen E-Schritt und M-Schritt fürmax_iterMal, bis die Änderung der Wahrscheinlichkeit oder der unteren Grenze geringer alstolist. Andernfalls wird eineConvergenceWarningausgelöst. Nach der Anpassung prognostiziert sie das wahrscheinlichste Label für die Eingabedatenpunkte.Hinzugefügt in Version 0.20.
- Parameter:
- Xarray-like der Form (n_samples, n_features)
Liste von n_dimensions-dimensionalen Datenpunkten. Jede Zeile entspricht einem einzelnen Datenpunkt.
- yIgnoriert
Wird nicht verwendet, ist aber aus Gründen der API-Konsistenz per Konvention vorhanden.
- Gibt zurück:
- labelsarray, Form (n_samples,)
Komponenten-Labels.
- 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.
- predict(X)[Quelle]#
Prognostizieren Sie die Labels für die Datenpunkte in X mit dem trainierten Modell.
- Parameter:
- Xarray-like der Form (n_samples, n_features)
Liste von n_dimensions-dimensionalen Datenpunkten. Jede Zeile entspricht einem einzelnen Datenpunkt.
- Gibt zurück:
- labelsarray, Form (n_samples,)
Komponenten-Labels.
- predict_proba(X)[Quelle]#
Bewerten Sie die Dichte der Komponenten für jeden Stichprobenpunkt.
- Parameter:
- Xarray-like der Form (n_samples, n_features)
Liste von n_dimensions-dimensionalen Datenpunkten. Jede Zeile entspricht einem einzelnen Datenpunkt.
- Gibt zurück:
- resparray, Form (n_samples, n_components)
Dichte jeder Gaußschen Komponente für jeden Stichprobenpunkt in X.
- sample(n_samples=1)[Quelle]#
Generieren Sie Zufallsstichproben aus der angepassten Gaußschen Verteilung.
- Parameter:
- n_samplesint, Standard=1
Anzahl der zu generierenden Stichproben.
- Gibt zurück:
- Xarray, Form (n_samples, n_features)
Zufällig generierter Stichprobenpunkt.
- yarray, Form (nsamples,)
Komponenten-Labels.
- score(X, y=None)[Quelle]#
Berechnen Sie die durchschnittliche Log-Likelihood pro Stichprobenpunkt der gegebenen Daten X.
- Parameter:
- Xarray-ähnlich der Form (n_samples, n_dimensions)
Liste von n_dimensions-dimensionalen Datenpunkten. Jede Zeile entspricht einem einzelnen Datenpunkt.
- yIgnoriert
Wird nicht verwendet, ist aber aus Gründen der API-Konsistenz per Konvention vorhanden.
- Gibt zurück:
- log_likelihoodfloat
Log-Likelihood von
Xunter dem Gaußschen Mischungsmodell.
- score_samples(X)[Quelle]#
Berechnet die Log-Likelihood jedes Samples.
- Parameter:
- Xarray-like der Form (n_samples, n_features)
Liste von n_dimensions-dimensionalen Datenpunkten. Jede Zeile entspricht einem einzelnen Datenpunkt.
- Gibt zurück:
- log_probarray, Form (n_samples,)
Log-Likelihood jedes Stichprobenpunkts in
Xunter dem aktuellen Modell.
- 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.
Galeriebeispiele#
Vergleich verschiedener Clustering-Algorithmen auf Toy-Datensätzen