0Pricing
Python Academy · Lektion

Die scikit-learn-API: fit, transform, predict

Verstehen Sie die Estimator-Schnittstelle und den Ablauf der Aufteilung in Trainings- und Testdaten.

Die scikit-learn-API: fit, transform, predict ist eine kostenlose Python Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Python Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist scikit-learn?

scikit-learn ist die bevorzugte Python-Bibliothek für klassisches maschinelles Lernen. Sie stellt eine einheitliche API bereit: Jeder Estimator verfügt über fit(), die meisten außerdem über predict() oder transform().

from sklearn.linear_model import LinearRegression
import numpy as np

X = np.array([[1],[2],[3],[4],[5]])
y = np.array([2, 4, 6, 8, 10])

model = LinearRegression().fit(X, y)
print(model.predict([[6]]))   # [12.]

Aufteilung in Trainings- und Testdaten

Teilen Sie die Daten immer vor dem Training auf, um zu bewerten, wie gut das Modell auf unbekannte Daten generalisiert.

from sklearn.model_selection import train_test_split
import numpy as np

X = np.random.rand(100, 5)
y = (X[:,0] > 0.5).astype(int)

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)
print(X_train.shape, X_test.shape)   # (80,5) (20,5)

fit() – Training

estimator.fit(X, y) trainiert das Modell mit X (Merkmalen) und y (Labels). Bei unüberwachten Verfahren wird nur X übergeben.

from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification

X, y = make_classification(n_samples=200, random_state=0)
model = LogisticRegression()
model.fit(X, y)
print("Trained:", model.classes_)

predict() und predict_proba()

predict(X) gibt Klassenlabels zurück; predict_proba(X) gibt bei Klassifikatoren die Klassenwahrscheinlichkeiten zurück.

from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification

X, y = make_classification(random_state=0)
model = LogisticRegression().fit(X, y)

print(model.predict(X[:5]))          # [0 1 0 ...]
print(model.predict_proba(X[:2]))    # [[0.7 0.3] ...]

Transformer: fit und transform

Transformer (Scaler, Encoder) verfügen über fit(X) + transform(X). Führen Sie fit immer nur mit Trainingsdaten aus und transformieren Sie anschließend sowohl Trainings- als auch Testdaten.

from sklearn.preprocessing import StandardScaler
import numpy as np

X_train = np.array([[1,2],[3,4],[5,6]])
X_test  = np.array([[2,3],[4,5]])

scaler = StandardScaler()
X_train_s = scaler.fit_transform(X_train)   # fit + transform
X_test_s  = scaler.transform(X_test)        # transform only (using train stats)

Pipeline

Eine Pipeline verknüpft Transformer und einen Estimator zu einem einzigen Objekt. Sie verhindert Datenlecks, indem sie Transformationen während der Kreuzvalidierung korrekt anwendet.

from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC

pipe = Pipeline([
    ("scaler", StandardScaler()),
    ("clf", SVC())
])
pipe.fit(X_train, y_train)
print(pipe.score(X_test, y_test))

Genauigkeit und andere Metriken

Verwenden Sie accuracy_score, f1_score und classification_report, um Klassifikatoren zu bewerten.

from sklearn.metrics import accuracy_score, classification_report

y_pred = model.predict(X_test)
print(accuracy_score(y_test, y_pred))
print(classification_report(y_test, y_pred))

Kreuzvalidierung

cross_val_score bewertet ein Modell mit k-facher Kreuzvalidierung, ohne dass Sie die Daten manuell aufteilen müssen.

from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification

X, y = make_classification(random_state=0)
scores = cross_val_score(LogisticRegression(), X, y, cv=5)
print(f"CV scores: {scores.mean():.3f} ± {scores.std():.3f}")

Hyperparameter-Optimierung mit GridSearchCV

GridSearchCV durchsucht mithilfe der Kreuzvalidierung erschöpfend ein Parametergitter, um die besten Hyperparameter zu finden.

from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVC
from sklearn.datasets import make_classification

X, y = make_classification(random_state=0)
param_grid = {"C": [0.1, 1, 10], "kernel": ["rbf", "linear"]}
gs = GridSearchCV(SVC(), param_grid, cv=5)
gs.fit(X, y)
print(gs.best_params_, gs.best_score_)

Vorverarbeitung: LabelEncoder und OneHotEncoder

Kodieren Sie kategoriale Labels mit LabelEncoder und kategoriale Merkmale mit OneHotEncoder oder ColumnTransformer.

from sklearn.preprocessing import LabelEncoder, OneHotEncoder
import numpy as np

le = LabelEncoder()
print(le.fit_transform(["cat","dog","cat","fish"]))   # [0 1 0 2]

ohe = OneHotEncoder(sparse_output=False)
print(ohe.fit_transform([["red"],["green"],["blue"]]))

Modelle speichern und laden

Speichern Sie trainierte Modelle mit joblib dauerhaft (für NumPy-Arrays ist es schneller als pickle).

import joblib
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification

X, y = make_classification(random_state=0)
model = LogisticRegression().fit(X, y)

joblib.dump(model, "model.joblib")
loaded = joblib.load("model.joblib")
print(loaded.predict(X[:3]))

Schnelltest

Warum sollten Sie scaler.fit() nur für Trainingsdaten und nicht für Testdaten aufrufen?

Zusammenfassung

Die einheitliche API von scikit-learn: fit() trainiert, predict() führt Inferenz durch und transform() führt die Vorverarbeitung aus. Verwenden Sie Pipeline, um Schritte zu verknüpfen. Teilen Sie Daten mit train_test_split auf, bewerten Sie Modelle mit cross_val_score und optimieren Sie sie mit GridSearchCV.

Häufig gestellte Fragen

Ist die Lektion „Die scikit-learn-API: fit, transform, predict“ kostenlos?

Ja — der vollständige Text von „Die scikit-learn-API: fit, transform, predict“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Python Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Die scikit-learn-API: fit, transform, predict“?

Verstehen Sie die Estimator-Schnittstelle und den Ablauf der Aufteilung in Trainings- und Testdaten. Du übst Python Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Python Academy zu starten?

Keine Vorkenntnisse erforderlich. Python Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Die scikit-learn-API: fit, transform, predict“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Python Academy-Lektion Code schreiben und ausführen?

Ja. Jede Python Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Die scikit-learn-API: fit, transform, predict
  2. Lineare Modelle: Regression und Klassifikation
  3. Baumbasierte Modelle: Entscheidungsbäume und Random Forests
  4. Modellbewertung und Kreuzvalidierung
← Zurück zu Python Academy