You've seen estimators, transformers, and basic pipelines. Now you'll build one that handles a realistic dataset — mixed numeric and categorical columns, missing values, and a final model — all wrapped in a single object you could deploy tomorrow.
1-A 2-A 3-A 4-A | 5 Column 6 encoder 7 = ColumnTransformer([('num', StandardScaler(), ['age','salary']), ('cat', OneHotEncoder(), ['city'])]) 8 = CV folds re-fit preprocessing per split - no leakage 9 = Test stats leak into training - overly optimistic scores | 10 = No leakage + reproducible single object to deploy