Skip to content

Latest commit

 

History

History
266 lines (190 loc) · 12.4 KB

File metadata and controls

266 lines (190 loc) · 12.4 KB

Feature-engine

A Python library for Feature Engineering and Selection

images/logo/FeatureEngine.png

Feature-engine rocks!

Feature-engine is a Python library with multiple transformers to engineer and select features to use in machine learning models. Feature-engine preserves Scikit-learn functionality with methods fit() and transform() to learn parameters from and then transform the data.

Feature-engine includes transformers for:

  • Missing data imputation
  • Categorical encoding
  • Discretisation
  • Outlier capping or removal
  • Variable transformation
  • Variable creation
  • Variable selection
  • Datetime features
  • Time series
  • Preprocessing

Feature-engine allows you to select the variables you want to transform within each transformer. This way, different engineering procedures can be easily applied to different feature subsets.

Feature-engine transformers can be assembled within the Scikit-learn pipeline, therefore making it possible to save and deploy one single object (.pkl) with the entire machine learning pipeline. Check :ref:`**Quick Start** <quick_start>` for an example.

What is unique about Feature-engine?

The following characteristics make Feature-engine unique:

  • Feature-engine contains the most exhaustive battery of feature engineering transformations.
  • Feature-engine can transform a specific group of variables in the dataframe.
  • Feature-engine returns dataframes, hence suitable for data exploration and model deployment.
  • Feature-engine is compatible with the Scikit-learn pipeline.
  • Feature-engine automatically recognizes numerical, categorical and datetime variables.
  • Feature-engine alerts you if a transformation is not possible, e.g., if applying logarithm to negative variables or divisions by 0.

If you want to know more about what makes Feature-engine unique, check this article.

Installation

Feature-engine is a Python 3 package and works well with 3.7 or later. Earlier versions are not compatible with the latest versions of Python numerical computing libraries.

The simplest way to install Feature-engine is from PyPI with pip:

$ pip install feature-engine

Note, you can also install it with a _ as follows:

$ pip install feature_engine

Feature-engine is an active project and routinely publishes new releases. To upgrade Feature-engine to the latest version, use pip like this:

$ pip install -U feature-engine

If you’re using Anaconda, you can install the Anaconda Feature-engine package:

$ conda install -c conda-forge feature_engine

Feature-engine features in the following resources

More learning resources in the :ref:`**Learning Resources** <learning_resources>`.

Feature-engine's Transformers

Feature-engine hosts the following groups of transformers:

Missing Data Imputation: Imputers

Categorical Encoders: Encoders

Variable Discretisation: Discretisers

Outlier Capping or Removal

Numerical Transformation: Transformers

Feature Creation:

Feature Selection:

Datetime:

Forecasting:

Preprocessing:

Scikit-learn Wrapper:

Getting Help

Can't get something to work? Here are places where you can find help.

  1. The :ref:`**User Guide** <user_guide>` in the docs.
  2. Stack Overflow. If you ask a question, please mention "feature_engine" in it.
  3. If you are enrolled in the Feature Engineering for Machine Learning course , post a question in a relevant section.
  4. If you are enrolled in the Feature Selection for Machine Learning course , post a question in a relevant section.
  5. Join our gitter community. You an ask questions here as well.
  6. Ask a question in the repo by filing an issue (check before if there is already a similar issue created :) ).

Contributing

Interested in contributing to Feature-engine? That is great news!

Feature-engine is a welcoming and inclusive project and we would be delighted to have you on board. We follow the Python Software Foundation Code of Conduct.

Regardless of your skill level you can help us. We appreciate bug reports, user testing, feature requests, bug fixes, addition of tests, product enhancements, and documentation improvements. We also appreciate blogs about Feature-engine. If you happen to have one, let us know!

For more details on how to contribute check the contributing page. Click on the :ref:`**Contribute** <contribute>` guide.

Sponsor us

Support Feature-engine financially via Github Sponsors and help further our mission to democratize machine learning tools through open-source software.

Open Source

Feature-engine's license is an open source BSD 3-Clause.

Feature-engine is hosted on GitHub. The issues and pull requests are tracked there.

Table of Contents

.. toctree::
   :maxdepth: 2

   quickstart/index
   user_guide/index
   api_doc/index
   resources/index
   contribute/index
   about/index
   whats_new/index
   donate