randomized_range_finder#

sklearn.utils.extmath.randomized_range_finder(A, *, size, n_iter, power_iteration_normalizer='auto', random_state=None)[Quellcode]#

Berechnet eine orthonormale Matrix, deren Bereich den Bereich von A annähert.

Parameter:
A{array-like, sparse matrix} der Form (n_samples, n_features)

Die Eingabedatenmatrix.

sizeint

Größe des Rückgabe-Arrays.

n_iterint

Anzahl der Potenziterationen, die zur Stabilisierung des Ergebnisses verwendet werden.

power_iteration_normalizer{‘auto’, ‘QR’, ‘LU’, ‘none’}, Standard=’auto’

Ob die Potenziterationen mit schrittweiser QR-Zerlegung (am langsamsten, aber am genauesten), 'none' (am schnellsten, aber numerisch instabil bei großem n_iter, z. B. typischerweise 5 oder größer) oder LU-Zerlegung (numerisch stabil, kann aber leicht an Genauigkeit verlieren) normalisiert werden. Der Modus 'auto' wendet keine Normalisierung an, wenn n_iter <= 2 ist, und wechselt andernfalls zu LU.

Hinzugefügt in Version 0.18.

random_stateint, RandomState-Instanz oder None, default=None

Der Seed des Pseudo-Zufallszahlengenerators, der zum Mischen der Daten verwendet wird, d. h. zum Erzeugen der Zufallsvektoren zur Initialisierung des Algorithmus. Geben Sie eine Ganzzahl an, um reproduzierbare Ergebnisse über mehrere Funktionsaufrufe hinweg zu erzielen. Siehe Glossary.

Gibt zurück:
Qndarray der Form (size, size)

Eine Projektionsmatrix, deren Bereich gut den Bereich der Eingabematrix A approximiert.

Anmerkungen

Folgt Algorithmus 4.3 von „Finding structure with randomness: Stochastic algorithms for constructing approximate matrix decompositions” Halko, et al. (2009)

Eine Implementierung eines randomisierten Algorithmus für die Hauptkomponentenanalyse A. Szlam et al. 2014

Beispiele

>>> import numpy as np
>>> from sklearn.utils.extmath import randomized_range_finder
>>> A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
>>> randomized_range_finder(A, size=2, n_iter=2, random_state=42)
array([[-0.214,  0.887],
       [-0.521,  0.249],
       [-0.826, -0.388]])