scikit-learn 1 cheatsheet

scikit-learn 1: Preprocessing and pipelines

5 common scikit-learn 1 tasks.

Scale features

Standardize to zero mean and unit variance. Fit on training data only, then transform both sets.

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler().fit(X_train)
X_train_scaled = scaler.transform(X_train)
X_test_scaled = scaler.transform(X_test)

Fill missing values

Replace missing values with the column median.

from sklearn.impute import SimpleImputer

imputer = SimpleImputer(strategy="median")
X_filled = imputer.fit_transform(X)

Encode categories

Turn category labels into one-hot columns, ignoring categories unseen in training.

from sklearn.preprocessing import OneHotEncoder

encoder = OneHotEncoder(handle_unknown="ignore")
encoded = encoder.fit_transform([["red"], ["green"], ["red"]])

Chain steps into a pipeline

Combine preprocessing and a model so the same steps apply in training and prediction, with no data leakage.

from sklearn.pipeline import make_pipeline
from sklearn.linear_model import LogisticRegression

model = make_pipeline(StandardScaler(), LogisticRegression(max_iter=1000))
model.fit(X_train, y_train)

Treat columns differently

Scale numeric columns and one-hot encode category columns in one transformer.

import pandas as pd
from sklearn.compose import ColumnTransformer

df = pd.DataFrame({"age": [25, 32, 47], "city": ["Rome", "Oslo", "Rome"]})
preprocess = ColumnTransformer([
    ("num", StandardScaler(), ["age"]),
    ("cat", OneHotEncoder(handle_unknown="ignore"), ["city"]),
])
features = preprocess.fit_transform(df)

Was this page helpful?