Is there any resource with a list of feature engineering techniques? A mapping of type of data, model and feature engineering technique would be a gold mine
There is no definite source on how to do feature engineering. It is often dependent on the problem you are trying to solve. Some say it is more of an art than it is science.
But I would go through some of the high scoring kaggle kernels / winning solutions if available. Just head over to kaggle and browse through the competitions. There is a lot of very useful material in there.
Also the journal of machine learning research has a lot of papers about feature engineering. Just search on their site http://www.jmlr.org/.
The following links are useful and to long to paraphrase:
Missing Data Imputation:
Complete case analysis
Mean / Median / Mode imputation
Random Sample Imputation
Replacement by Arbitrary Value
Missing Value Indicator
One hot encoding
Count and Frequency encoding
Target encoding / Mean encoding
Weight of Evidence
Rare label encoding
BaseN, feature hashing and others
Equal frequency discretisation
Equal length discretisation
Discretisation with trees
Discretisation with ChiMerge
Treating outliers as NaN
Max Absolute Scaling
Date and Time Engineering:
- Extracting days, months, years, quarters, time elapsed
- Sum, subtraction, mean, min, max, product, quotient of group of features
Aggregating Transaction Data:
- Same as above but in same feature over time window
Extracting features from text:
Bag of words
And finally extracting features from images.
A good article describing most of the above techniques: Feature Engineering a comprehensive overview
A good list of resources to learn more about feature engineering: Best Resources to learn about feature engineering
Python tools for feature engineering can be found in this thread
DISCLAIMER: I wrote the 2 articles, and am also the creator of 1 of the recommended courses to learn about feature engineering.