FactorAnalysis#
- class sklearn.decomposition.FactorAnalysis(n_components=None, *, tol=0.01, copy=True, max_iter=1000, noise_variance_init=None, svd_method='randomized', iterated_power=3, rotation=None, random_state=0)[Quelle]#
Faktoranalyse (FA).
Ein einfaches lineares generatives Modell mit gaußschen latenten Variablen.
Es wird angenommen, dass die Beobachtungen durch eine lineare Transformation von latenten Faktoren geringerer Dimensionalität und Rauschen mit Gaußscher Verteilung verursacht werden. Ohne Beschränkung der Allgemeinheit werden die Faktoren gemäß einer Gaußschen Verteilung mit Mittelwert Null und Einheitskovarianz verteilt. Das Rauschen hat ebenfalls einen Mittelwert von Null und eine beliebige diagonale Kovarianzmatrix.
Wenn wir das Modell weiter einschränken und annehmen, dass das Gaußsche Rauschen sogar isotrop ist (alle Diagonaleinträge sind gleich), erhalten wir
PCA.FactorAnalysis führt eine Maximum-Likelihood-Schätzung der sogenannten
loading-Matrix (die Transformation der latenten Variablen zu den beobachteten) mithilfe eines SVD-basierten Ansatzes durch.Mehr dazu im Benutzerhandbuch.
Hinzugefügt in Version 0.13.
- Parameter:
- n_componentsint, default=None
Dimensionalität des latenten Raums, die Anzahl der Komponenten von
X, die nach dertransformerhalten werden. Wenn None, wird n_components auf die Anzahl der Merkmale gesetzt.- tolfloat, default=1e-2
Stopp-Toleranz für die Erhöhung der Log-Likelihood.
- copybool, Standard=True
Ob eine Kopie von X erstellt werden soll. Wenn
False, wird das Eingabe-X während des Fittings überschrieben.- max_iterint, default=1000
Maximale Anzahl von Iterationen.
- noise_variance_initarray-like, Form (n_features,), default=None
Die anfängliche Schätzung der Rauschvarianz für jedes Merkmal. Wenn None, wird standardmäßig np.ones(n_features) verwendet.
- svd_method{‘lapack’, ‘randomized’}, default=’randomized’
Welche SVD-Methode verwendet werden soll. Wenn 'lapack' wird die Standard-SVD von scipy.linalg verwendet, wenn 'randomized' wird die schnelle Funktion
randomized_svdverwendet. Standardmäßig 'randomized'. Für die meisten Anwendungen wird 'randomized' ausreichend präzise sein und gleichzeitig deutliche Geschwindigkeitsvorteile bieten. Die Genauigkeit kann auch durch höhere Werte füriterated_powerverbessert werden. Wenn dies nicht ausreicht, sollten Sie für maximale Präzision 'lapack' wählen.- iterated_powerint, default=3
Anzahl der Iterationen für die Potenzmethode. Standardmäßig 3. Nur verwendet, wenn
svd_methodgleich 'randomized' ist.- rotation{‘varimax’, ‘quartimax’}, default=None
Wenn nicht None, wird die angegebene Rotation angewendet. Derzeit sind varimax und quartimax implementiert. Siehe „The varimax criterion for analytic rotation in factor analysis“ H. F. Kaiser, 1958.
Hinzugefügt in Version 0.24.
- random_stateint oder RandomState-Instanz, default=0
Wird nur verwendet, wenn
svd_methodgleich 'randomized' ist. Übergeben Sie eine Ganzzahl für reproduzierbare Ergebnisse über mehrere Funktionsaufrufe hinweg. Siehe Glossar.
- Attribute:
- components_ndarray der Form (n_components, n_features)
Komponenten mit maximaler Varianz.
- loglike_list, Form (n_iterations,)
Die Log-Likelihood bei jeder Iteration.
- noise_variance_ndarray, Form (n_features,)
Die geschätzte Rauschvarianz für jedes Merkmal.
- n_iter_int
Anzahl der durchgeführten Iterationen.
- mean_ndarray der Form (n_features,)
Pro Merkmal empirischer Mittelwert, geschätzt aus dem Trainingsdatensatz.
- 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
PCADie Hauptkomponentenanalyse ist ebenfalls ein latentes lineares Variablenmodell, das jedoch gleiche Rauschvarianzen für jedes Merkmal annimmt. Diese zusätzliche Annahme macht probabilistische PCA schneller, da sie geschlossen berechnet werden kann.
FastICAUnabhängige Komponentenanalyse, ein latentes Variablenmodell mit nicht-gaußschen latenten Variablen.
Referenzen
David Barber, Bayesian Reasoning and Machine Learning, Algorithmus 21.1.
Christopher M. Bishop: Pattern Recognition and Machine Learning, Kapitel 12.2.4.
Beispiele
>>> from sklearn.datasets import load_digits >>> from sklearn.decomposition import FactorAnalysis >>> X, _ = load_digits(return_X_y=True) >>> transformer = FactorAnalysis(n_components=7, random_state=0) >>> X_transformed = transformer.fit_transform(X) >>> X_transformed.shape (1797, 7)
- fit(X, y=None)[Quelle]#
Trainiert das FactorAnalysis-Modell mit X unter Verwendung eines SVD-basierten Ansatzes.
- Parameter:
- Xarray-like der Form (n_samples, n_features)
Trainingsdaten.
- yIgnoriert
Ignorierter Parameter.
- Gibt zurück:
- selfobject
FactorAnalysis-Klasseninstanz.
- fit_transform(X, y=None, **fit_params)[Quelle]#
An Daten anpassen, dann transformieren.
Passt den Transformer an
Xundymit optionalen Parameternfit_paramsan 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).
- **fit_paramsdict
Zusätzliche Fit-Parameter. Nur übergeben, wenn der Estimator zusätzliche Parameter in seiner
fit-Methode akzeptiert.
- Gibt zurück:
- X_newndarray array der Form (n_samples, n_features_new)
Transformiertes Array.
- get_covariance()[Quelle]#
Berechnet die Datenkovarianz mit dem FactorAnalysis-Modell.
cov = components_.T * components_ + diag(noise_variance)- Gibt zurück:
- covndarray, Form (n_features, n_features)
Geschätzte Kovarianz der Daten.
- 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.
- get_precision()[Quelle]#
Berechnet die Datenpräzisionsmatrix mit dem FactorAnalysis-Modell.
- Gibt zurück:
- precisionndarray, Form (n_features, n_features)
Geschätzte Präzision der Daten.
- score(X, y=None)[Quelle]#
Berechnet die durchschnittliche Log-Likelihood der Samples.
- Parameter:
- Xndarray der Form (n_samples, n_features)
Die Daten.
- yIgnoriert
Ignorierter Parameter.
- Gibt zurück:
- llfloat
Durchschnittliche Log-Likelihood der Samples unter dem aktuellen Modell.
- score_samples(X)[Quelle]#
Berechnet die Log-Likelihood jedes Samples.
- Parameter:
- Xndarray der Form (n_samples, n_features)
Die Daten.
- Gibt zurück:
- llndarray, Form (n_samples,)
Log-Likelihood jedes Samples unter dem aktuellen Modell.
- 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.
- transform(X)[Quelle]#
Wendet Dimensionsreduktion auf X unter Verwendung des Modells an.
Berechnet den erwarteten Mittelwert der latenten Variablen. Siehe Barber, 21.2.33 (oder Bishop, 12.66).
- Parameter:
- Xarray-like der Form (n_samples, n_features)
Trainingsdaten.
- Gibt zurück:
- X_newndarray der Form (n_samples, n_components)
Die latenten Variablen von X.
Galeriebeispiele#
Modellauswahl mit Probabilistischem PCA und Faktorenanalyse (FA)
Faktorenanalyse (mit Rotation) zur Visualisierung von Mustern