Python Academy · Les

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

U leert de estimator-interface en de workflow voor de train/test-split begrijpen.

Les 1 van 413 stappen

De scikit-learn-API: fit, transform, predict is een gratis Python Academy-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Python Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Python Academy bevat in totaal 4 lessen.

Wat is scikit-learn?

scikit-learn is de standaardbibliotheek van Python voor klassiek machinaal leren. De bibliotheek biedt een consistente API: elke schatter heeft fit() en de meeste hebben predict() of 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.]

Trainings- en testverdeling

Splits de gegevens altijd voordat je gaat trainen, zodat je kunt evalueren hoe goed het model generaliseert naar ongeziene gegevens.

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() — trainen

estimator.fit(X, y) traint het model op X (kenmerken) en y (labels). Bij ongesuperviseerde methoden wordt alleen X doorgegeven.

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() en predict_proba()

predict(X) geeft klasselabels terug; predict_proba(X) geeft de klassekansen terug voor classificatiemodellen.

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] ...]

Transformers: fit en transform

Transformers (schalers, codeerders) hebben fit(X) + transform(X). Pas ze altijd alleen toe op trainingsgegevens en transformeer daarna zowel de trainings- als testgegevens.

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)

Pijplijn

Een Pipeline koppelt transformers en een schatter aan één object. Dit voorkomt gegevenslekken door transformaties correct binnen kruisvalidering toe te passen.

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))

Nauwkeurigheid en andere meetwaarden

Gebruik accuracy_score, f1_score en classification_report om classificatiemodellen te evalueren.

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))

Kruisvalidering

cross_val_score evalueert een model met k-voudige kruisvalidering zonder dat je de gegevens handmatig hoeft te splitsen.

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}")

Hyperparameters afstemmen met GridSearchCV

GridSearchCV doorzoekt met kruisvalidering volledig een parameterraster om de beste hyperparameters te vinden.

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_)

Voorbewerking: LabelEncoder en OneHotEncoder

Codeer categorische labels met LabelEncoder en categorische kenmerken met OneHotEncoder of 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"]]))

Modellen opslaan en laden

Bewaar getrainde modellen met joblib (sneller dan pickle voor NumPy-arrays).

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]))

Korte controle

Waarom moet je scaler.fit() alleen op trainingsgegevens aanroepen en niet op testgegevens?

Samenvatting

De uniforme API van scikit-learn: fit() traint, predict() voorspelt en transform() voert voorbewerking uit. Gebruik Pipeline om stappen aan elkaar te koppelen. Splits gegevens met train_test_split, evalueer met cross_val_score en stem af met GridSearchCV.

Gratis beginnen

Leer Python met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
76
Lessen
320

Veelgestelde vragen

Is de les “De scikit-learn-API: fit, transform, predict” gratis?

Ja — de volledige tekst van “De scikit-learn-API: fit, transform, predict” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Python Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Python Academy bevat in totaal 4 lessen.

Wat leer ik in “De scikit-learn-API: fit, transform, predict”?

U leert de estimator-interface en de workflow voor de train/test-split begrijpen. Je oefent met Python Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Python Academy te beginnen?

Ervaring vooraf is niet nodig. Python Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.

Hoe lang duurt de les “De scikit-learn-API: fit, transform, predict”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Python Academy?

Ja. Elke les over Python Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. De scikit-learn-API: fit, transform, predict
  2. Lineaire modellen: regressie en classificatie
  3. Boommodellen: beslisbomen en random forests
  4. Modelevaluatie en cross-validatie
← Terug naar Python Academy