Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Eigenvektoren und maschinelles Lernen

Nach dieser Lektion: Ich kann sagen, was ein Eigenvektor ist, und warum das maschinelle Lernen ihn braucht.

Lektion, 75 Min.3 BefehleJupyterLab-Lab für Data Science: pandas, Matplotlib und scikit-learn im Browser

Welche Richtungen eine Matrix nur streckt

Ein Eigenvektor ist ein Vektor, den eine Matrix nur streckt oder staucht, ohne seine Richtung zu ändern. Der Faktor dazu heißt Eigenwert.

Verfahren des maschinellen Lernens suchen damit die wichtigste Richtung in einer Wolke von Daten. Das Potenzverfahren findet sie mit nur einer Schleife.

Am Ende dieser Lektion

Notiz

Ich kann sagen, was ein Eigenvektor ist, und warum das maschinelle Lernen ihn braucht.

Schlüsselwörter

BegriffWas er bedeutet
Eigenvektorein Vektor, dessen Richtung eine Matrix nicht ändert
Eigenwertder Faktor, um den der Eigenvektor gestreckt wird
Potenzverfahrenwiederholtes Multiplizieren, bis die Richtung feststeht
Kovarianzmatrixeine Tabelle der Streuungen und Zusammenhänge von Daten
Dimensionsreduktionweniger Zahlen je Fall behalten, ohne viel zu verlieren

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ein Eigenvektor behält seine Richtung

Eine Matrix verändert die meisten Vektoren in Länge und Richtung. Ein Eigenvektor ändert nur seine Länge: Matrix mal Vektor ist dasselbe wie ein Faktor mal Vektor.

Dieser Faktor ist der Eigenwert. Mit der Matrix [[2, 1], [1, 2]] wird [1, 1] zu [3, 3], also dreimal so lang.

Beispiel: drei Vektoren und die Matrix

VektorMatrix mal VektorGleiche Richtung?Faktor
[1, 1][3, 3]ja3
[1, -1][1, -1]ja1
[1, 0][2, 1]neinkeiner

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Die Eigenwerte der Matrix

Befehl
docker exec jupyter python3 -c "import numpy as np; print(np.round(np.linalg.eigvalsh(np.array([[2, 1], [1, 2]])), 3).tolist())"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die Matrix mal [1, 1]

Befehl
docker exec jupyter python3 -c "import numpy as np; print((np.array([[2, 1], [1, 2]]) @ np.array([1, 1])).tolist())"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Ein häufiger Fehler

Warnung

Viele denken, jede Matrix habe genau einen Eigenvektor. Das stimmt nicht. Mit [1, 1] ist auch [2, 2] und [-5, -5] ein Eigenvektor zum Wert 3. Es zählt die Richtung, nicht die Länge.

Das Potenzverfahren findet die stärkste Richtung

Multiplizieren Sie einen beliebigen Startvektor immer wieder mit der Matrix, wächst er in die Richtung des größten Eigenwerts. Teilen Sie nach jedem Schritt durch die größte Komponente, damit die Zahlen klein bleiben.

Diese größte Komponente vor dem Teilen nähert sich dem Eigenwert.

Beispiel: vier Schritte vom Start [1, 0]

SchrittMatrix mal VektorGrößte KomponenteNeuer Vektor
1[2, 1]2[1; 0,5]
2[2,5; 2]2,5[1; 0,8]
3[2,8; 2,6]2,8[1; 0,929]
4[2,929; 2,857]2,929[1; 0,976]

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Das Potenzverfahren in Python

Code: python
# Die Matrix streckt [1, 1] auf das Dreifache
mat = [[2, 1], [1, 2]]
v = [1, 0]
for schritt in range(5):
    neu = [mat[0][0] * v[0] + mat[0][1] * v[1], mat[1][0] * v[0] + mat[1][1] * v[1]]
    groesste = max(abs(neu[0]), abs(neu[1]))
    v = [neu[0] / groesste, neu[1] / groesste]
    print("Schritt", schritt + 1, "Schätzung:", round(groesste, 3), "Vektor:", round(v[0], 3), round(v[1], 3))
# Ändern Sie den Start in [0, 1]. Die Schätzung nähert sich wieder 3.

Dimensionsreduktion behält die wichtigste Richtung

Daten sind eine Wolke von Punkten. Die Richtung, in der sie am stärksten streuen, ist der Eigenvektor der Kovarianzmatrix mit dem größten Eigenwert.

Wer nur diese Richtung behält, ersetzt zwei Zahlen je Fall durch eine. Das heißt Dimensionsreduktion, in ihrer bekanntesten Form die Hauptkomponentenanalyse.

Die Eigenwerte der Kovarianzmatrix

Befehl
docker exec jupyter python3 -c "import numpy as np; print(np.round(np.linalg.eigvalsh(np.cov([1, 2, 3, 4, 5], [2, 4, 5, 4, 5])), 3).tolist())"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Wofür maschinelles Lernen jede Lektion braucht

BausteinWofür es dient
VektorEine Datenzeile mit mehreren Merkmalen
Skalarprodukt und KosinusWie ähnlich zwei Fälle sind
MatrixproduktEine Schicht eines neuronalen Netzes
AbbildungDrehen und Strecken von Bildern und Figuren
GleichungssystemEine Gerade durch Messpunkte legen
EigenvektorDie wichtigste Richtung in den Daten

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Über dieses Lab und seinen Quellcode: JupyterLab-Lab für Data Science: pandas, Matplotlib und scikit-learn im Browser

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.