Menu
CoddyTech

Rückblick: Bereinigen und Vorhersagen

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

challenge icon

Aufgabe

Mittel

Welche Camper kommen zurück? camp.csv enthält Wörter, Zahlen und Lücken; das Starterprogramm teilt die Daten auf und liest einen Camper ein.

  1. Baue die vollständige Pipeline des Kapitels: Wende One-Hot-Encoding auf cabin und activity an, erstelle für die Zahlen eine Verarbeitungskette, die Lücken mit Medianen auffüllt und sie anschließend skaliert, und schließe mit einer logistischen Regression ab.
  2. Gib die 5-fache CV-Genauigkeit für die Trainingszeilen aus, einschließlich Mittelwert und Standardabweichung.
  3. Trainiere das Modell mit den Trainingszeilen; gib die Testgenauigkeit und die Rückkehrwahrscheinlichkeit des Campers aus.

Ein weiterer Camp-Besucher, Camper 10, lakeside, archery, 21, -, 4:

CV accuracy: mean 0.707, std 0.065
Test accuracy: 0.740
Chance of coming back: 0.91

Der Bindestrich steht für eine fehlende Bewertung: Deine Pipeline füllt sie wie jede andere Lücke auf.

Probier es selbst

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.compose import ColumnTransformer
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import OneHotEncoder, StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import make_pipeline

# Die Teilnehmenden vom letzten Sommer: Sind sie dieses Jahr wiedergekommen (1) oder nicht (0)?
campers = pd.read_csv("camp.csv")
X = campers.drop(columns="came_back")
y = campers["came_back"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)

# Ein neuer Teilnehmer, eine Antwort pro Zeile; ein Bindestrich (-) steht für eine fehlende Zahl
answers = []
for i in range(6):
    answers.append(input())
numbers = []
for i in [0, 3, 4, 5]:
    if answers[i] == "-":
        numbers.append(np.nan)
    else:
        numbers.append(float(answers[i]))
camper = pd.DataFrame({"age": [numbers[0]], "cabin": [answers[1]], "activity": [answers[2]],
                       "nights": [numbers[1]], "rating": [numbers[2]], "friends_made": [numbers[3]]})

# Schreibe deinen Code unten

Alle Lektionen in Überwachtes Lernen

Übe selbstständig: Online-Python-Compiler