What Is Feature Engineering?
Feature engineering is the process of using domain knowledge and data manipulation to create input variables (features) that make patterns easier for a machine learning model to find. Raw data rarely arrives in the ideal form for learning: a timestamp on its own tells a model little, but 'hour of day', 'is_weekend', and 'days_since_last_purchase' derived from it can be highly predictive. The practical experience of many applied ML teams is that feature engineering often has a larger impact on final model quality than switching between reasonable algorithm choices, because it directly determines what information the model has access to in the first place.
Cricket analogy: A raw ball-by-ball log means little on its own, but deriving 'overs remaining', 'is_powerplay', and 'runs_since_last_wicket' from it turns the same data into signals a captain can actually act on for field placement.
Common Feature Engineering Techniques
Techniques vary by data type. For numeric data: creating ratios (price per square foot instead of separate price and area columns), binning continuous values into categories, and applying mathematical transforms (log, square root) to reduce skew. For datetime data: extracting components like day-of-week, month, or a boolean for holidays, and computing time deltas between events. For text: counting words, extracting keywords, or computing sentiment scores. For categorical data: combining rare categories into an 'other' bucket, or creating interaction features that combine two columns (e.g., 'city' x 'property_type') to capture effects that neither column captures alone.
Cricket analogy: For a batter's stats, computing 'strike rate per over phase' instead of separate runs and balls columns (a ratio), binning bowling speed into 'pace, medium, spin' categories, and log-transforming a skewed stat like sixes hit are all useful, alongside combining 'venue' with 'format' as an interaction feature to capture effects neither alone explains.
Feature Engineering vs. Feature Selection and Automated Approaches
Feature engineering (creating new, informative columns) is a distinct step from feature selection (choosing which existing columns to keep) — engineering typically happens first, expanding the feature space, and selection often follows to prune it back down. While deep learning has reduced the need for manual feature engineering in domains like images and raw text (where neural networks learn representations automatically from pixels or tokens), it remains essential for tabular data — the dominant format in business analytics, finance, and healthcare — where gradient-boosted trees and linear models still benefit enormously from well-constructed, domain-informed features.
Cricket analogy: Building new stats like 'pressure index' from raw ball data is a distinct step from deciding which existing stats a selector actually keeps on the scorecard; building comes first, then trimming happens, and while video analysis of raw footage has automated some scouting, manual stat-crafting still matters heavily for domestic-level team selection.
import pandas as pd
df = pd.DataFrame({
'purchase_date': pd.to_datetime(['2026-01-15', '2026-03-02', '2026-06-20']),
'price': [120.0, 340.0, 89.5],
'sqft': [800, 1500, 450],
})
# Datetime feature engineering
df['purchase_month'] = df['purchase_date'].dt.month
df['is_weekend'] = df['purchase_date'].dt.dayofweek >= 5
df['days_since_purchase'] = (pd.Timestamp('2026-07-08') - df['purchase_date']).dt.days
# Ratio feature — often more informative than the raw components
df['price_per_sqft'] = df['price'] / df['sqft']
print(df[['purchase_month', 'is_weekend', 'days_since_purchase', 'price_per_sqft']])A classic example: predicting house prices directly from 'latitude' and 'longitude' separately gives a model little to work with, but engineering a 'distance_to_city_center' feature from those two coordinates can dramatically improve predictions, because it encodes the actual geographic relationship that matters.
Be careful that engineered features don't leak information from the future or from the target itself. A feature like 'total_purchases_this_year' computed using data that includes events after the prediction point will make a model look artificially accurate during training/testing but fail in production, where future data isn't available at prediction time.
- Feature engineering creates new input variables from raw data to make underlying patterns easier for models to learn.
- It often has a bigger impact on model quality than choice of algorithm, especially for tabular data.
- Common techniques include ratios, binning, datetime decomposition, and categorical interaction features.
- Feature engineering (creating features) is distinct from feature selection (choosing among existing features).
- Deep learning reduces manual feature engineering for images/text but tabular models still benefit strongly from it.
- Watch for target/temporal leakage when engineering features from time-based or aggregate data.
Practice what you learned
1. What is the primary goal of feature engineering?
2. Which of the following is an example of a datetime feature engineering technique?
3. How does feature engineering differ from feature selection?
4. Why is feature engineering especially important for tabular data models like gradient-boosted trees?
5. What is a risk of engineering a feature like 'total purchases this year' without care?
Was this page helpful?
You May Also Like
Encoding Categorical Variables
Learn how to convert non-numeric categories into numeric representations models can use, and when to choose one-hot, ordinal, or target encoding.
Feature Selection Techniques
Discover filter, wrapper, and embedded methods for choosing the most useful subset of features, reducing overfitting and improving model interpretability.
Datasets, Features, and Labels
Explains the vocabulary and structure of ML data — datasets, samples, features, and labels — and how they are organized before a model can be trained.
Feature Scaling and Normalization
Learn why rescaling numeric features onto comparable ranges matters, and how standardization, min-max scaling, and robust scaling each affect model behavior.