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:
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.
Aufgabe
EinfachDie 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.
- Erstelle ein k-nächste-Nachbarn-Modell und trainiere es mit den Trainingsvögeln.
- Sage alle beobachteten Vögel in einem Aufruf voraus.
- 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: robinProbier 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
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Überwachtes Lernen
1Dein erstes Modell
Aus Beispielen lernenTrainings- und TestdatensätzeAnpassen und VorhersagenEin Modell bewertenRückblick: Saatgutsortierer4Logistische Regression
Ja-Nein-VorhersagenDie EntscheidungsschwelleGewichte als IndizienMehrere KlassenRückblick: Spamfilter2Nächste Nachbarn
So entscheidet k-NNk wählenEntscheidungsgrenzenSkalierung für NachbarnRückblick: Wein-Nachbarn5Klassifikatoren bewerten
Die KonfusionsmatrixPräzision und TrefferquoteDer F1-ScoreUnausgewogene KlassenROC-KurvenRückblick: Screeningtest3Lineare Regression
Zahlen vorhersagenMehrere MerkmaleFehler messenResiduenplotsZusammenfassung: Fahrradverleih6Entscheidungsbäume
Bäume stellen FragenEinen Baum lesenBaumtiefeMerkmalswichtigkeitRückblick: Kreditentscheidungen9Ensembleverfahren
Random ForestsWarum Random Forests funktionierenGradient BoostingRückblick: Förster des Waldes12Abschließende Herausforderungen
Diabetes-FortschrittKreditgenehmigungHandgeschriebene ZiffernKundenabwanderungÜbe selbstständig: Online-Python-Compiler