Feature Engine
Feature-engine is a Python library with multiple transformers to engineer features for use in machine learning models. Feature-engine's transformers follow Scikit-learn functionality with fit() and transform() methods to first learn the transforming paramenters from data and then transform the data.
Feature-engine features in the following resources:
Blogs about Feature-engine:
-
Feature-engine: A new open source Python package for feature engineering
-
Open Source Python libraries for Feature Engineering: Comparisons and Walkthroughs
Documentation
- Documentation: http://feature-engine.readthedocs.io
- Home page: https://www.trainindata.com/feature-engine
Current Feature-engine's transformers include functionality for:
- Missing data imputation
- Categorical variable encoding
- Outlier removal
- Discretisation
- Numerical Variable Transformation
Imputing Methods
- MeanMedianImputer
- RandomSampleImputer
- EndTailImputer
- AddNaNBinaryImputer
- CategoricalVariableImputer
- FrequentCategoryImputer
- ArbitraryNumberImputer
Encoding Methods
- CountFrequencyCategoricalEncoder
- OrdinalCategoricalEncoder
- MeanCategoricalEncoder
- WoERatioCategoricalEncoder
- OneHotCategoricalEncoder
- RareLabelCategoricalEncoder
Outlier Handling methods
- Winsorizer
- ArbitraryOutlierCapper
- OutlierTrimmer
Discretisation methods
- EqualFrequencyDiscretiser
- EqualWidthDiscretiser
- DecisionTreeDiscretiser
- UserInputDiscreriser
Variable Transformation methods
- LogTransformer
- ReciprocalTransformer
- PowerTransformer
- BoxCoxTransformer
- YeoJohnsonTransformer
Scikit-learn Wrapper:
- SklearnTransformerWrapper
Installing
pip install feature_engine
or
git clone https://github.com/solegalli/feature_engine.git
Usage
>>> from feature_engine.categorical_encoders import RareLabelCategoricalEncoder
>>> import pandas as pd
>>> data = {'var_A': ['A'] * 10 + ['B'] * 10 + ['C'] * 2 + ['D'] * 1}
>>> data = pd.DataFrame(data)
>>> data['var_A'].value_counts()
Out[1]:
A 10
B 10
C 2
D 1
Name: var_A, dtype: int64
>>> rare_encoder = RareLabelCategoricalEncoder(tol=0.10, n_categories=3)
>>> data_encoded = rare_encoder.fit_transform(data)
>>> data_encoded['var_A'].value_counts()
Out[2]:
A 10
B 10
Rare 3
Name: var_A, dtype: int64
See more usage examples in the jupyter notebooks in the example folder of this repository, or in the documentation: http://feature-engine.readthedocs.io
Contributing
Local Setup Steps
- Clone the repo and cd into it
- Run
pip install tox - Run
toxif the tests pass, your local setup is complete
Opening Pull Requests
PR's are welcome! Please make sure the CI tests pass on your branch.
License
BSD 3-Clause
Authors
- Soledad Galli - Initial work - Feature Engineering for Machine Learning, Online Course.
References
Many of the engineering and encoding functionality is inspired by this series of articles from the 2009 KDD competition.
To learn more about the rationale, functionality, pros and cos of each imputer, encoder and transformer, refer to the Feature Engineering for Machine Learning, Online Course
For a summary of the methods check this presentation and this article
To stay alert of latest releases, sign up at trainindata
Metadata
Release files for feature-engine 0.5.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| feature_engine-0.5.2.tar.gz | 24.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| feature_engine-0.5.2-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 55.0 kB
Release files / feature_engine-0.5.2.tar.gz
| Download URL | feature_engine-0.5.2.tar.gz |
|---|---|
| Size | 24.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0b8d26cc3642c05fc19ccf2a4caee81862af467a74560621ce71a9da90d1139b
|
|
BLAKE2b-256 checksum How to use checksums |
7db75d37a1b04235405e4051f01acabed754e7eb860eec311146030fc73724e2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.7.2
|
Release files / feature_engine-0.5.2-py2.py3-none-any.whl
| Download URL | feature_engine-0.5.2-py2.py3-none-any.whl |
|---|---|
| Size | 30.2 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
49e7eaf9d12893d3d1bf843b2c38271b21ccdeed06b71ade508d3160aa93f135
|
|
BLAKE2b-256 checksum How to use checksums |
793367a2d0c0e91f786b33b6cd29f5c217343ccda63f1304e1f6cac069e05f40
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.7.2
|
Security for feature-engine 0.5.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.