Menu
CoddyTech

Rückblick: Stadtlichter

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

challenge icon

Aufgabe

Mittel

Erinnerst du dich an die Tal-Karte von DBSCAN? Jetzt erstellst du selbst eine. Ein Satellit hat nachts ein Tal fotografiert. Gruppiere die Lichter zu Orten und finde die einzelnen Lichter: Bauernhöfe, einen Leuchtturm, einen Camper. Das Programm liest eps in km ein.

  1. Führe DBSCAN mit diesem eps und min_samples=5 aus.
  2. Gib die Anzahl der Orte, die Anzahl der einzelnen Lichter und die Größe des größten Ortes aus.
  3. Stelle sie auf der Karte dar: Jeder Ort erhält einen eigenen Scatter-Plot mit der Beschriftung town of N lights, einzelne Lichter werden als graue x-Markierungen mit der Beschriftung lone lights dargestellt. Füge eine Legende hinzu. Zeige die Karte an.

Für ein anderes Tal und eps 1.3:

Towns: 3
Lone lights: 10
Biggest town: 77 lights

Ein Diagramm mit dem Titel Valley at Night: ein langgestreckter, gekrümmter Ort mit 77 Lichtern, ein runder Ort mit 47 und ein Dorf mit 20, alle in einer eigenen Farbe, sowie 10 einzelne Lichter als graue x-Markierungen, mit einer Legende

Coddy beschreibt deine Karte. Probiere dann eps 5 aus: Welche Orte verschmelzen?

Probier es selbst

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import DBSCAN

# Eine nächtliche Satellitenaufnahme eines Tals: eine Zeile pro Lichtquelle, Position in km
lights = pd.read_csv("lights.csv")
X = np.column_stack([lights["east_km"], lights["north_km"]])
eps = float(input())

fig, ax = plt.subplots()
ax.set_title("Valley at Night")
ax.set_xlabel("East (km)")
ax.set_ylabel("North (km)")

# Schreibe deinen Code unten

Alle Lektionen in Unüberwachtes Lernen

Übe selbstständig: Online-Python-Compiler