Menu
CoddyTech

Anpassen und Vorhersagen

Teil des Abschnitts Überwachtes Lernen der Machine Learning-Journey von Coddy. Lektion 3 von 58.

Jedes scikit-learn-Modell arbeitet mit zwei Aufrufen. fit wertet die Trainingszeilen mit ihren Labels aus; predict weist Zeilen, die das Modell noch nie gesehen hat, Labels zu:

Ein Diagramm: Sechs Haustiere mit X_train, Gewicht und Ohrlänge, daneben y_train, drei Katzen und drei Hunde, durchlaufen fit und gelangen in ein Modell. Zwei neue Haustiere, X_new, durchlaufen predict, verwenden das Modell und kommen als Katze und Hund heraus

Das Modell aus der ersten Lektion dieser Lernreihe ist k-nächste Nachbarn: Es ordnet einer Zeile die Bezeichnung der Trainingszeilen zu, die ihr am nächsten sind. Haustiere nach Gewicht (kg) und Ohrlänge (cm):

from sklearn.neighbors import KNeighborsClassifier

X_train = np.array([[4, 6], [5, 7], [3, 5], [30, 10], [25, 12], [35, 11]])
y_train = np.array(["cat", "cat", "cat", "dog", "dog", "dog"])
model = KNeighborsClassifier()
model.fit(X_train, y_train)
print(model.predict([[6, 6], [28, 11]]))

Dies gibt ['cat' 'dog'] aus. Neue Zeilen werden als Tabelle eingefügt, eine Zeile pro Haustier.

Erstellen, anpassen, vorhersagen: Jedes Modell in diesem Abschnitt folgt diesen drei Schritten.

challenge icon

Aufgabe

Einfach

Die App eines Vogelbeobachtungsclubs bestimmt anhand von Flügelspannweite und Gewicht die Namen der Vögel. Das Starterprogramm teilt die birds.csv des Clubs auf und liest die Vögel von heute Abend in die Tabelle spotted ein.

  1. Erstelle ein k-nächste-Nachbarn-Modell und trainiere es mit den Trainingsvögeln.
  2. Sage alle beobachteten Vögel in einem Aufruf voraus.
  3. Gib für jeden Vogel eine Zeile aus, wie unten gezeigt.

Für drei Vögel bei einem anderen Spaziergang:

Bird 1: sparrow
Bird 2: blackbird
Bird 3: robin

Probier es selbst

import pandas as pd
from sklearn.model_selection import train_test_split

# Eine Zeile pro Vogel, den der Club benannt hat: Flügelspannweite in cm, Gewicht in Gramm
birds = pd.read_csv("birds.csv")
X = birds[["wingspan_cm", "weight_g"]]
y = birds["species"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)

# Heutiger Abendspaziergang: zuerst die Anzahl der Vögel, dann jeweils Flügelspannweite und Gewicht
count = int(input())
spans = []
weights = []
for i in range(count):
    spans.append(float(input()))
    weights.append(float(input()))
spotted = pd.DataFrame({"wingspan_cm": spans, "weight_g": weights})

# 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 Überwachtes Lernen

Übe selbstständig: Online-Python-Compiler