Wähle ein Modell
Teil des Abschnitts Überwachtes Lernen der Machine Learning-Journey von Coddy. Lektion 52 von 58.
Mehrere Modellfamilien könnten die Pinguine klassifizieren. Welches passt am besten? Gib jedem dieselben Datensätze und dieselben Folds und vergleiche sie dann, wie bei diesen Weinmodellen:
Der höchste Mittelwert gewinnt. Eine kleine Standardabweichung bedeutet, dass das Modell in jedem Fold gewonnen hat, nicht nur bei einer glücklichen Aufteilung.
pipe = make_pipeline(prep, model)
scores = cross_val_score(pipe, X_train, y_train, cv=5)Jeder Fold passt die Bahnen erneut anhand seines eigenen Trainingsteils an, sodass jeder Score unverfälscht bleibt. Die Testpinguine bleiben unangetastet.
Aufgabe
MittelVier Kandidaten wollen den Job. Das Grundgerüst enthält deine Verarbeitungsschritte, die Listen names und models und liest die Anzahl der Folds ein.
- Führe für jeden Kandidaten eine Kreuzvalidierung der Pipeline aus
prepund diesem Modell auf den Trainingszeilen durch. - Gib den Mittelwert und die Standardabweichung mit 3 Dezimalstellen aus.
- Gib den Gewinner aus: den höchsten Mittelwert.
Für eine andere Kolonie und 5 Folds:
k-NN: mean 0.951, std 0.031
Logistic regression: mean 0.964, std 0.012
Random forest: mean 0.958, std 0.027
Decision tree: mean 0.902, std 0.048
Winner: Logistic regressionProbier es selbst
import pandas as pd
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import make_pipeline
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.neighbors import KNeighborsClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier
from sklearn.tree import DecisionTreeClassifier
# Die Kolonie aus Meet the Penguins, ihre Merkmale und ihre Zielvariable
penguins = pd.read_csv("penguins.csv")
numbers = ["bill_length_mm", "bill_depth_mm", "flipper_length_mm", "body_mass_g"]
text = ["island", "sex"]
X = penguins[numbers + text]
y = penguins["species"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, stratify=y, random_state=0)
# Aus Prepare the Data: die zwei Verarbeitungswege
number_steps = make_pipeline(SimpleImputer(strategy="median"), StandardScaler())
text_steps = make_pipeline(SimpleImputer(strategy="constant", fill_value="unknown"), OneHotEncoder())
prep = ColumnTransformer([("numbers", number_steps, numbers), ("words", text_steps, text)])
# Die Kandidaten
names = ["k-NN", "Logistic regression", "Random forest", "Decision tree"]
models = [KNeighborsClassifier(), LogisticRegression(max_iter=1000),
RandomForestClassifier(n_estimators=100, random_state=0), DecisionTreeClassifier(random_state=0)]
folds = int(input())
# 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: Screeningtest8Kreuzvalidierung
K-Fold-ValidierungModelle fair vergleichenGittersucheRückblick: Skateboard-Reparaturen11Projekt: Pinguinarten
Lerne die Pinguine kennenBereite die Daten vorWähle ein ModellOptimiere den SiegerBringe das Modell in den Einsatz3Lineare 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