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)