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_samples die Anzahl der Stichproben und n_features die 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 whiten wurde 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_features ist, und kann schneller sein, wenn n_samples >= 50 * n_features.

Hinzugefügt in Version 1.2.

random_stateint, RandomState-Instanz oder None, default=None

Wird verwendet, um w_init zu 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 True gesetzt 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)