Rückblick: Bereinigen und Vorhersagen
Teil des Abschnitts Überwachtes Lernen der Machine Learning-Journey von Coddy. Lektion 49 von 58.
Aufgabe
MittelWelche 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.
- Baue die vollständige Pipeline des Kapitels: Wende One-Hot-Encoding auf
cabinundactivityan, 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. - Gib die 5-fache CV-Genauigkeit für die Trainingszeilen aus, einschließlich Mittelwert und Standardabweichung.
- 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.91Der 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
1Dein erstes Modell
Aus Beispielen lernenTrainings- und TestdatensätzeAnpassen und VorhersagenEin Modell bewertenRückblick: Saatgutsortierer4Logistische Regression
Ja-Nein-VorhersagenDie EntscheidungsschwelleGewichte als IndizienMehrere KlassenRückblick: Spamfilter7Überanpassung
Unter- und ÜberanpassungLernkurvenRegularisierungValidierungssetsRückblick: Einen Baum optimieren10Pipelines
PipelinesGemischte SpaltenFehlende Werte in einer Pipeline imputierenEine Pipeline optimierenRückblick: Bereinigen und Vorhersagen2Nä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