Python Academy · leksjon

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

Forstå estimatorgrensesnittet og arbeidsflyten for oppdeling i trenings- og testdata.

Leksjon 1 av 413 trinn

scikit-learn-API-et: fit, transform, predict er en gratis leksjon i Python Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Python Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Python Academy inneholder totalt 4 leksjoner.

Hva er scikit-learn?

scikit-learn er det foretrukne Python-biblioteket for klassisk maskinlæring. Det tilbyr et konsekvent API: alle estimators har fit(), og de fleste har predict() eller 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.]

Oppdeling i trenings- og testdata

Del alltid opp dataene før trening for å evaluere hvor godt modellen generaliserer til usette data.

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() – trening

estimator.fit(X, y) trener modellen på X (egenskaper) og y (etiketter). For uten veiledning-metoder sendes bare X inn.

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

predict(X) returnerer klasseetiketter, mens predict_proba(X) returnerer klassesannsynligheter for klassifikatorer.

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

Transformatorer: fit og transform

Transformatorer (skalere, kodere) har fit(X) + transform(X). Tilpass alltid bare til treningsdataene, og transformer deretter både trenings- og testdataene.

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

En Pipeline kjeder transformatorer og en estimator sammen til ett objekt. Den forhindrer datalekkasjer ved å bruke transformasjoner korrekt i kryssvalidering.

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

Nøyaktighet og andre måltall

Bruk accuracy_score, f1_score og classification_report til å evaluere klassifikatorer.

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

Kryssvalidering

cross_val_score evaluerer en modell ved hjelp av k-fold-kryssvalidering uten at dataene må deles opp manuelt.

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

Justere hyperparametere med GridSearchCV

GridSearchCV søker uttømmende gjennom et parameterrutenett ved hjelp av kryssvalidering for å finne de beste hyperparametrene.

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

Forbehandling: LabelEncoder og OneHotEncoder

Kod kategoriske etiketter med LabelEncoder og kategoriske egenskaper med OneHotEncoder eller 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"]]))

Lagre og laste inn modeller

Bevar trente modeller med joblib (raskere enn pickle for NumPy-matriser).

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

Hurtigsjekk

Hvorfor bør man kalle scaler.fit() bare på treningsdataene og ikke på testdataene?

Oppsummering

scikit-learns enhetlige API: fit() trener, predict() trekker slutninger, og transform() forhåndsbehandler. Bruk Pipeline til å kjede sammen trinn. Del dataene med train_test_split, evaluer med cross_val_score, og juster med GridSearchCV.

Gratis å komme i gang

Lær deg Python med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
76
Leksjoner
320

Ofte stilte spørsmål

Er leksjonen «scikit-learn-API-et: fit, transform, predict» gratis?

Ja – hele teksten i «scikit-learn-API-et: fit, transform, predict» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Python Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Python Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «scikit-learn-API-et: fit, transform, predict»?

Forstå estimatorgrensesnittet og arbeidsflyten for oppdeling i trenings- og testdata. Du øver på Python Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Python Academy?

Ingen tidligere erfaring er nødvendig. Python Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «scikit-learn-API-et: fit, transform, predict»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Python Academy-leksjonen?

Ja. Alle Python Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. scikit-learn-API-et: fit, transform, predict
  2. Lineære modeller: regresjon og klassifisering
  3. Trebaserte modeller: beslutningstrær og random forests
  4. Modelevaluering og kryssvalidering
← Tilbake til Python Academy