Skip to main content

Featransform is an automated feature engineering framework for supervised machine learning

Project description

LinkedIn Contributors Stargazers MIT License Downloads Month Downloads


Featransform: Automated Feature Engineering Framework for Supervised Machine Learning

Framework Contextualization

The Featransform project constitutes an objective and modern proposition to automate feature engineering framework through the integration of various approachs of input pattern recognition known in Machine Learning such as dimensionality reduction, anomaly detection, clustering approaches and datetime feature constrution. Built with advanced design patterns and a modular architecture, it seamlessly orchestrates multiple feature engineering techniques including anomaly detection, clustering, dimensionality reduction, and temporal feature extraction—all optimized through intelligent validation-driven feature selection.

In order to avoid generation of noisy data for predictive consumption, after the engineered features ensemble are concatenated with the original features, a backwards wrapper feature selection also known as backward elimination is implemented to iteratively remove features based on evaluation of relevance, maintaining only valuable columns available for future models performance improvement purposes.

The architecture design includes three main sections, these being: data preprocessing, diverse feature engineering ensembles and optimized feature selection validation.

This project aims at providing the following application capabilities:

  • General applicability on tabular datasets: The developed feature engineering procedures are applicable on any data table associated with any Supervised ML scopes, based on input data columns to be built up on.

  • Improvement of predictive results: The application of the Featransform aims at improve the predictive performance of future applied Machine Learning models through added feature construction, increased pattern recognition and optimization of existing input features.

  • Continuous integration: After the train data is fitted, the created object can be saved and implemented in future data with the same structure.

Main Development Tools

Major frameworks used to built this project:

Where to get it

Binary installer for the latest released version is available at the Python Package Index (PyPI).

GitHub Project Link: https://github.com/TsLu1s/Featransform

Installation

To install this package from Pypi repository run the following command:

pip install featransform

Usage Example

Featransform - Automated Feature Engineering Pipeline

In order to be able to apply the automated feature engineering featransform pipeline you need first to import the package. The following needed step is to load a dataset and define your to be predicted target column name into the variable target. You can customize the fit_engineering method by altering the following running pipeline parameters:

  • configs: Nested dictionary in which are contained all methods specific parameters configurations. Feel free to customize each method as you see fit (customization example shown bellow);
  • optimize_iters: Number of iterations generated for backwards feature selection optimization.
  • validation_split: Division ratio in which the feature engineering methods will be evaluated within the loaded Dataset (range: [0.05, 0.45]).
    
import pandas as pd
from sklearn.model_selection import train_test_split
from featransform.pipeline import (Featransform,
                                   configurations)
import warnings
warnings.filterwarnings("ignore", category=Warning) # -> For a clean console
    
data = pd.read_csv('csv_directory_path') # Dataframe Loading Example

train,test = train_test_split(data, train_size=0.8)
train,test = train.reset_index(drop=True), test.reset_index(drop=True) # -> Required 


# Load and Customize Parameters

configs = configurations()
print(configs)

configs['Unsupervised']['Isolation_Forest']['n_estimators'] = 300
configs['Clustering']['KMeans']['n_clusters'] = 3
configs['DimensionalityReduction']['TruncatedSVDStrategy']['n_components'] = 5

## Fit Data

ft = Featransform(configs = configs,        # validation_split:float, optimize_iters:int 
                  optimize_iters = 10,
                  validation_split = 0.30) 

ft.fit_engineering(X = train,              # X:pd.DataFrame, target:str="Target_Column"
                   target = "Target_Column_Name")

## Transform Data 

train = ft.transform(X=train)
test = ft.transform(X=test)

# Export Featransform Metadata

import pickle
output = open("ft_eng.pkl", 'wb')
pickle.dump(ft, output)
    

Usage Examples

Further automated and customizable feature engineering applications:

  • Baseline Example - Get started right way with intelligent preset configurations, synthetic dataset generation, and seamless pipeline serialization for production deployment
  • Advanced Configuration - Build fully customized pipelines from scratch with complete control over preprocessing strategies, feature engineering components, and optimization parameters
  • Component Testing - Deep-dive into individual components with comprehensive train-test evaluation across encoding, imputation, anomaly detection, clustering, and dimensionality reduction methods

Core Capabilities

Feature Engineering Methods:

  • Anomaly Detection (Isolation Forest, LOF, One-Class SVM, Elliptic Envelope)
  • Clustering (KMeans, Birch, DBSCAN, Gaussian Mixture)
  • Dimensionality Reduction (PCA, SVD, FastICA)
  • Temporal Features (Cyclic encoding, datetime decomposition)

Intelligent Processing:

  • Advanced Imputation (Mean, Median, Iterative, KNN)
  • Categorical Encoding (Label)
  • Automated Feature Selection (Importance-based)

Built With

Major frameworks used to build this project:

@software{featransform2023,
  author = {Luis Fernando Santos},
  title = {Featransform: Automated Feature Engineering Framework for Supervised Machine Learning},
  year = {2023},
  publisher = {PyPI},
  url = {https://pypi.org/project/segmentae/}
}

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Luis Santos - LinkedIn

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

featransform-1.6.5-py3-none-any.whl (38.3 kB view details)

Uploaded Python 3

File details

Details for the file featransform-1.6.5-py3-none-any.whl.

File metadata

  • Download URL: featransform-1.6.5-py3-none-any.whl
  • Upload date:
  • Size: 38.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.13

File hashes

Hashes for featransform-1.6.5-py3-none-any.whl
Algorithm Hash digest
SHA256 29a4b898e8343b93ab63f2cdae7af185809008843d9e17796c1033552f2c80ed
MD5 9e3d09a82ea4e3d9dd6be957b123eb1d
BLAKE2b-256 a8e84c4c44458dbe159b016257d5b4c4f8b134988cfd9a7026bec96cd0905409

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page