Ähnlichkeit messen
Teil des Abschnitts Unüberwachtes Lernen der Machine Learning-Journey von Coddy. Lektion 2 von 51.
Bei k-NN bedeutete „nearest“ die kürzeste Entfernung. Um Gruppen zu finden, brauchst du sie für jedes Zeilenpaar: eine Distanztafel. Vier Freunde bewerteten zwei Filme von 1 bis 10:
ratings = np.array([[9, 2], [8, 3], [2, 9], [3, 7]]) # Ana, Ben, Cy, Dee
n = len(ratings)
table = np.zeros((n, n))
for i in range(n):
table[i] = np.sqrt(((ratings - ratings[i]) ** 2).sum(axis=1))Zeile i enthält die Entfernung von Freund i zu allen anderen. Hier ist table, als Raster dargestellt:
Überspringe die Diagonale mit den 0, also jeden Freund mit sich selbst. Die kleinste verbleibende Zahl steht für das ähnlichste Paar, die größte für das unterschiedlichste. Kleine Distanz, ähnliche Zeilen.
Aufgabe
EinfachEine Saftbar nimmt den vom Programm eingelesenen neuen Smoothie des Küchenchefs in ihr Menü auf. Welche zwei sind sich so ähnlich, dass einer davon weg kann? Welche zwei sind für eine Verkostungsrunde am unterschiedlichsten?
- Erstelle die Abstandstabelle von
menu. - Finde das ähnlichste und das unterschiedlichste Paar: jedes Paar nur einmal, niemals ein Smoothie mit sich selbst.
- Gib beide aus, die Namen in der Reihenfolge des Menüs, die Abstände mit 1 Nachkommastelle.
Für ein anderes Menü:
Most alike: Lemon Zing and Lime Twist (14.1 g apart)
Most different: Choco Shake and Cucumber Cool (212.6 g apart)Probier es selbst
import numpy as np
names = ["Berry Blast", "Green Glow", "Mango Lassi", "Kale Kick", "Tropical Sun", "Banana Oat", "Minty Melon"]
# Eine Zeile pro Smoothie, Gramm pro Becher: Obst, Blattgemüse, Joghurt
menu = np.array([[180, 0, 120],
[90, 110, 60],
[160, 0, 150],
[60, 150, 30],
[200, 20, 40],
[100, 0, 200],
[170, 40, 0]])
# Das neue Rezept des Kochs wird als letzte Zeile zum Menü hinzugefügt
names.append(input())
new = [int(input()), int(input()), int(input())]
menu = np.concatenate([menu, [new]])
# Schreibe deinen Code unten
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
1Gruppen finden
Lernen ohne LabelsÄhnlichkeit messenK-Means von HandK-Means mit scikit-learnRückblick: Fitnessstudiomitglieder4Hierarchisches Clustering
Schrittweises ZusammenführenAgglomerative ModelleDendrogrammeZusammenfassung: Hunderassen7PCA in der Praxis
64 Dimensionen sehenKomponenten als MusterKomprimieren und rekonstruierenPCA vor einem ModellRückblick: Gesichtsscanner10Projekt: Ziffern erkunden
Die Ziffern ansehenMit PCA verkleinernDie Ziffern gruppierenDie Gruppen benennenDie Ausreißer finden2k wählen
TrägheitDie Elbow-MethodeSilhouettenwerteVor dem Clustering skalierenRückblick: LieferzonenÜbe selbstständig: Online-Python-Compiler