Menu
CoddyTech

Projektionen

Teil des Abschnitts Unüberwachtes Lernen der Machine Learning-Journey von Coddy. Lektion 25 von 51.

Eine Projektion bildet jeden Punkt geradlinig auf eine Linie ab, wie einen Schatten. Hier sind die Weinzweillinge aus „Zu viele Merkmale“, um ihren Mittelwert zentriert, auf zwei Linien:

Zwei Diagramme derselben Weine als blaue Punkte um das Zentrum. Links eine Linie entlang der Punktwolke: Die orangefarbenen Schatten verteilen sich weit entlang der Linie, Streuung 1.14. Rechts eine Linie quer zur Punktwolke: Die Schatten liegen dicht beieinander, Streuung 0.30

Entlang der Wolke behalten die Schatten den größten Teil der Streuung bei, sodass eine Zahl pro Wein fast so viel aussagt wie zwei.

Eine Richtung besteht aus zwei Zahlen, deren Quadrate zusammen 1 ergeben, wie (0.6, 0.8). Ein Schatten ist eine gewichtete Summe:

centered = X - X.mean(axis=0)
shadow = centered[:, 0] * 0.6 + centered[:, 1] * 0.8
print(round(shadow.std(), 3))

Dies gibt 1.136 aus. Die beste Richtung behält die größte Streuung bei.

challenge icon

Aufgabe

Mittel

Ein Förster möchte eine Zahl pro Tannenzapfen statt Länge und Breite. Welche der beiden Richtungen bewahrt mehr von der Streuung der Zapfen? Das Programm liest zwei Richtungen mit jeweils zwei Zahlen ein.

  1. Schreibe spread_along(direction): die Standardabweichung der Schatten der Zapfen darauf.
  2. Gib beide Streuungen mit 3 Dezimalstellen aus.
  3. Gib die Richtung aus, die beibehalten werden soll.

Für andere Zapfen:

Along [0.6, 0.8]: spread 2.104
Along [0.8, -0.6]: spread 0.412
Keep [0.6, 0.8]

Probier es selbst

import numpy as np
import pandas as pd

# Ein Förster hat bei 70 Kiefernzapfen Länge und Breite in cm gemessen
cones = pd.read_csv("cones.csv")
X = np.column_stack([cones["length_cm"], cones["width_cm"]])
first = [float(input()), float(input())]
second = [float(input()), float(input())]

# Schreibe deinen Code unten
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Unüberwachtes Lernen

Übe selbstständig: Online-Python-Compiler