De scikit-learn-API: fit, transform, predict
U leert de estimator-interface en de workflow voor de train/test-split begrijpen.
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.
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
- De scikit-learn-API: fit, transform, predict
- Lineaire modellen: regressie en classificatie
- Boommodellen: beslisbomen en random forests
- Modelevaluatie en cross-validatie