To handle both numerical and categorical data, I would use the ColumnTransformer from Scikit-learn to preprocess each type separately, applying appropriate transformations like StandardScaler for numerical features and OneHotEncoder for categorical features before combining them in a final pipeline.
In depth
Designing a machine learning pipeline in Scikit-learn requires careful consideration of how different data types are processed. The ColumnTransformer allows for targeted preprocessing steps for both numerical and categorical features concurrently. For numerical data, scaling with StandardScaler is common to ensure the features are on a comparable scale, which helps many algorithms converge faster. For categorical data, OneHotEncoder efficiently converts categorical variables into a format suitable for machine learning algorithms. After pre-processing, these components can be integrated into a single pipeline using the Pipeline class, which ensures a consistent and reproducible workflow from data preparation to model fitting and evaluation. This approach also simplifies the process of hyperparameter tuning by allowing the entire pipeline to be treated as a single estimator with step names for parameter specification during grid search or randomized search.
Example scenario
In a recent project, we worked with a retail dataset that contained both sales figures (numerical) and product categories (categorical). We implemented a pipeline using ColumnTransformer to StandardScale the sales data while simultaneously applying OneHotEncoder to the product categories. This setup allowed us to prepare the data seamlessly and efficiently for training a random forest model, significantly reducing preprocessing time and improving model accuracy compared to handling the features separately.
Common mistakes
A common mistake is neglecting to treat categorical features correctly, often leading to errors or suboptimal model performance. Some developers might apply no transformation to categorical data or use label encoding, which can introduce ordinal relationships that don't exist. Additionally, failing to include all necessary preprocessing steps in the pipeline can lead to data leakage or inconsistent results during model evaluation, as the transformations might not be applied in the same way to new data.
Follow-up questions
- What approaches would you take if you had missing data in both numerical and categorical features?
- How would you ensure that your pipeline is scalable for large datasets?
- Can you explain the role of FeatureUnion in a Scikit-learn pipeline?
- What strategies would you implement for hyperparameter tuning in this pipeline?

Want all 2,000 questions in one PDF?
- Short answers, in-depth explanations, common mistakes and follow-ups
- 89 topics, from Beginner to Architect, with a clickable contents list
- 226 extra questions that are not on this website
- Free Bonus Pack: 30-day study plan, behavioral questions, salary scripts
Includes 226 extra questions that are not on this site, plus a free Bonus Pack.
Get both books for $9.99 (save $2.99):
The material stays free to read online. This is the organised, offline, print-ready PDF edition. Secure payment by PayPal; your personal download link is emailed after payment is confirmed. Digital product, no shipping.