fastica#
- sklearn.decomposition.fastica(X, n_components=None, *, algorithm='parallel', whiten='unit-variance', fun='logcosh', fun_args=None, max_iter=200, tol=0.0001, w_init=None, whiten_solver='svd', random_state=None, return_X_mean=False, compute_sources=True, return_n_iter=False)[Quelle]#
Führt Fast Independent Component Analysis durch.
Die Implementierung basiert auf [1].
Lesen Sie mehr im Benutzerhandbuch.
- Parameter:
- Xarray-like der Form (n_samples, n_features)
Trainingsvektor, wobei
n_samplesdie Anzahl der Stichproben undn_featuresdie Anzahl der Merkmale ist.- n_componentsint, default=None
Anzahl der zu verwendenden Komponenten. Wenn None übergeben wird, werden alle verwendet.
- algorithm{‘parallel’, ‘deflation’}, default=’parallel’
Geben Sie an, welcher Algorithmus für FastICA verwendet werden soll.
- whitenstr oder bool, default=’unit-variance’
Geben Sie die zu verwendende Whitening-Strategie an.
Wenn ‘arbitrary-variance’, wird ein Whitening mit beliebiger Varianz verwendet.
Wenn ‘unit-variance’, wird die Whitening-Matrix so skaliert, dass jede wiederhergestellte Quelle eine Einheitsvarianz hat.
Wenn False, werden die Daten bereits als gewhitened betrachtet und es wird kein Whitening durchgeführt.
Geändert in Version 1.3: Der Standardwert von
whitenwurde in 1.3 auf ‘unit-variance’ geändert.- fun{‘logcosh’, ‘exp’, ‘cube’} oder callable, default=’logcosh’
Die funktionale Form der G-Funktion, die bei der Annäherung an die Negentropie verwendet wird. Kann entweder ‘logcosh’, ‘exp’ oder ‘cube’ sein. Sie können auch Ihre eigene Funktion bereitstellen. Sie sollte ein Tupel enthalten, das den Wert der Funktion und seiner Ableitung an diesem Punkt enthält. Die Ableitung sollte entlang ihrer letzten Dimension gemittelt werden. Beispiel
def my_g(x): return x ** 3, (3 * x ** 2).mean(axis=-1)
- fun_argsdict, default=None
Argumente, die an die funktionale Form übergeben werden. Wenn leer oder None und wenn fun=’logcosh’, nimmt fun_args den Wert {‘alpha’ : 1.0} an.
- max_iterint, Standard=200
Maximale Anzahl von Iterationen, die durchgeführt werden sollen.
- tolfloat, Standard=1e-4
Eine positive Skalare, die die Toleranz angibt, bei der die Entmischungsmatrix als konvergiert betrachtet wird.
- w_initndarray von Shape (n_components, n_components), default=None
Ursprüngliche Entmischungsmatrix. Wenn
w_init=None, wird eine Matrix mit Werten aus einer Normalverteilung verwendet.- whiten_solver{“eigh”, “svd”}, default=”svd”
Der zu verwendende Solver für das Whitening.
„svd“ ist numerisch stabiler, wenn das Problem degeneriert ist, und oft schneller, wenn
n_samples <= n_features.„eigh“ ist im Allgemeinen speichereffizienter, wenn
n_samples >= n_featuresist, und kann schneller sein, wennn_samples >= 50 * n_features.
Hinzugefügt in Version 1.2.
- random_stateint, RandomState-Instanz oder None, default=None
Wird verwendet, um
w_initzu initialisieren, wenn nicht angegeben, mit einer Normalverteilung. Übergeben Sie eine Ganzzahl für reproduzierbare Ergebnisse über mehrere Funktionsaufrufe hinweg. Siehe Glossar.- return_X_meanbool, default=False
Wenn True, wird auch X_mean zurückgegeben.
- compute_sourcesbool, default=True
Wenn False, werden die Quellen nicht berechnet, sondern nur die Rotationsmatrix. Dies kann Speicher sparen, wenn mit großen Datenmengen gearbeitet wird. Standardmäßig True.
- return_n_iterbool, Standard=False
Ob die Anzahl der Iterationen zurückgegeben werden soll oder nicht.
- Gibt zurück:
- Kndarray von Shape (n_components, n_features) oder None
Wenn whiten auf ‘True’ gesetzt ist, ist K die Pre-Whitening-Matrix, die Daten auf die ersten n_components Hauptkomponenten projiziert. Wenn whiten auf ‘False’ gesetzt ist, ist K ‘None’.
- Wndarray von Shape (n_components, n_components)
Die quadratische Matrix, die die Daten nach dem Whitening entmischt. Die Mischungsmatrix ist die Pseudoinverse der Matrix
W K, wenn K nicht None ist, andernfalls ist sie die Inverse von W.- Sndarray von Shape (n_samples, n_components) oder None
Geschätzte Quellmatrix.
- X_meanndarray von Shape (n_features,)
Der Mittelwert über die Merkmale. Wird nur zurückgegeben, wenn return_X_mean True ist.
- n_iterint
Wenn der Algorithmus „deflation“ ist, ist n_iter die maximale Anzahl von Iterationen, die für alle Komponenten ausgeführt werden. Andernfalls ist es lediglich die Anzahl der Iterationen, die zur Konvergenz benötigt werden. Dies wird nur zurückgegeben, wenn return_n_iter auf
Truegesetzt ist.
Anmerkungen
Die Datenmatrix X wird als Linearkombination von nicht-gaußschen (unabhängigen) Komponenten betrachtet, d.h. X = AS, wobei die Spalten von S die unabhängigen Komponenten enthalten und A eine lineare Mischmatrix ist. Kurz gesagt versucht ICA, die Daten durch Schätzung einer Entmischungsmatrix W zu entmischen, wobei ``S = W K X.`` gilt. Obwohl FastICA zur Schätzung so vieler Quellen wie Merkmale vorgeschlagen wurde, ist es möglich, weniger zu schätzen, indem n_components < n_features gesetzt wird. In diesem Fall ist K keine quadratische Matrix und das geschätzte A ist die Pseudoinverse von
W K.Diese Implementierung wurde ursprünglich für Daten der Form [n_features, n_samples] erstellt. Jetzt wird die Eingabe transponiert, bevor der Algorithmus angewendet wird. Dies macht sie etwas schneller für Fortran-sortierte Eingaben.
Referenzen
[1]A. Hyvarinen und E. Oja, „Fast Independent Component Analysis“, Algorithms and Applications, Neural Networks, 13(4-5), 2000, S. 411–430.
Beispiele
>>> from sklearn.datasets import load_digits >>> from sklearn.decomposition import fastica >>> X, _ = load_digits(return_X_y=True) >>> K, W, S = fastica(X, n_components=7, random_state=0, whiten='unit-variance') >>> K.shape (7, 64) >>> W.shape (7, 7) >>> S.shape (1797, 7)