make_low_rank_matrix#

sklearn.datasets.make_low_rank_matrix(n_samples=100, n_features=100, *, effective_rank=10, tail_strength=0.5, random_state=None)[Quelle]#

Generiert eine hauptsächlich niedrigrangige Matrix mit glockenförmigen singulären Werten.

Der Großteil der Varianz kann durch eine glockenförmige Kurve mit der Breite effective_rank erklärt werden: Der Teil der singulären Werte mit niedrigem Rang ist

(1 - tail_strength) * exp(-1.0 * (i / effective_rank) ** 2)

Der verbleibende Schwanz der singulären Werte ist fett und nimmt ab als

tail_strength * exp(-0.1 * i / effective_rank).

Der Teil des Profils mit niedrigem Rang kann als der strukturierte Signalteil der Daten betrachtet werden, während der Schwanz als der verrauschte Teil der Daten betrachtet werden kann, der nicht durch eine geringe Anzahl von linearen Komponenten (singuläre Vektoren) zusammengefasst werden kann.

Diese Art von singulären Profilen tritt häufig in der Praxis auf, zum Beispiel
  • Graustufenbilder von Gesichtern

  • TF-IDF-Vektoren von Textdokumenten, die aus dem Web gecrawlt wurden

Lesen Sie mehr im Benutzerhandbuch.

Parameter:
n_samplesint, Standard=100

Die Anzahl der Stichproben.

n_featuresint, Standard=100

Die Anzahl der Merkmale.

effective_rankint, Standard=10

Die ungefähre Anzahl von singulären Vektoren, die erforderlich sind, um den Großteil der Daten durch lineare Kombinationen zu erklären.

tail_strengthfloat, Standard=0.5

Die relative Bedeutung des fetten, verrauschten Schwanzes des singulären Werteprofils. Der Wert sollte zwischen 0 und 1 liegen.

random_stateint, RandomState-Instanz oder None, default=None

Bestimmt die Zufallszahlengenerierung für die Datenerstellung. Übergeben Sie eine Ganzzahl für reproduzierbare Ergebnisse über mehrere Funktionsaufrufe hinweg. Siehe Glossar.

Gibt zurück:
Xndarray der Form (n_samples, n_features)

Die Matrix.

Beispiele

>>> from numpy.linalg import svd
>>> from sklearn.datasets import make_low_rank_matrix
>>> X = make_low_rank_matrix(
...     n_samples=50,
...     n_features=25,
...     effective_rank=5,
...     tail_strength=0.01,
...     random_state=0,
... )
>>> X.shape
(50, 25)