Ja-Nein-Vorhersagen
Teil des Abschnitts Überwachtes Lernen der Machine Learning-Journey von Coddy. Lektion 16 von 58.
Dieses Kapitel beantwortet Ja-oder-Nein-Fragen mit Wahrscheinlichkeiten. Es endet mit einem Spamfilter, den du erstellst und der E-Mails folgendermaßen einordnet:
Wird eine Restaurantreservierung storniert? LogisticRegression lernt dies aus 60 vergangenen Reservierungen: Tage im Voraus gebucht und storniert (1) oder wahrgenommen (0):
from sklearn.linear_model import LogisticRegression
model = LogisticRegression(max_iter=1000) # genügend Schritte, um das Lernen abzuschließen
model.fit(X, cancelled) # X: Tage im Voraus, eine Spalte
print(np.round(model.predict_proba([[3], [40]]), 2))Dies gibt Folgendes aus:
[[0.91 0.09]
[0.28 0.72]]Die Zeile jeder Buchung enthält die Wahrscheinlichkeit für Klasse 0 und dann für Klasse 1. [:, 1] behält die Wahrscheinlichkeiten für Klasse 1, also eine Stornierung.
Sie folgen einer S-Kurve: niemals unter 0 oder über 1, wie es bei Wahrscheinlichkeiten sein sollte.
Aufgabe
MittelEin Drachenclub bucht drei Startzeitfenster für morgen. kites.csv enthält 90 frühere Starts: wind_kmh und flew, wobei 1 bedeutet, dass der Drachen abgehoben ist. Das Programm liest die vorhergesagte Windgeschwindigkeit für jedes Zeitfenster in slots ein.
- Trainiere eine
LogisticRegression(max_iter=1000) mit den Windgeschwindigkeiten. - Gib die Flugwahrscheinlichkeit für jedes Zeitfenster als ganze Prozentzahl aus.
- Gib die erwartete Anzahl an Flügen aus: die Summe der Wahrscheinlichkeiten (1 Dezimalstelle).
Für einen anderen Club:
6 km/h: 9% chance the kite flies
18 km/h: 64% chance the kite flies
30 km/h: 97% chance the kite flies
Expected flights: 1.7 of 3Probier es selbst
import numpy as np
import pandas as pd
from sklearn.linear_model import LogisticRegression
# 90 vergangene Startversuche: Windgeschwindigkeit in km/h und flew (1, wenn der Drachen abhob)
kites = pd.read_csv("kites.csv")
# Die drei Startzeitfenster für morgen, nach vorhergesagter Windgeschwindigkeit
winds = []
for i in range(3):
winds.append(int(input()))
slots = pd.DataFrame({"wind_kmh": winds})
# 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