Skip to main content

Ensemble dataset generator for tabular data prediction and modeling projects.

Project description

EnsembleSet

PyPI release Python CIDevcontainer

EnsembleSet generates dataset ensembles by applying a randomized sequence of feature engineering methods to a randomized subset of input features.

1. Installation

Install the pre-release alpha from PyPI with:

pip install ensembleset

2. Usage

See the example usage notebook.

Initialize an EnsembleSet class instance, passing in the label name and training DataFrame. Optionally, include a test DataFrame and/or list of any string features and the path where you want EnsembleSet to put data. Then call the make_datasets() to generate an EnsembleSet, specifying:

  1. The number of individual datasets to generate.
  2. The fraction of features to randomly select for each feature engineering step.
  3. The number of feature engineering steps to run.
import ensembleset.dataset as ds

data_ensemble=ds.DataSet(
    label='label_column_name',                       # Required
    train_data=train_df,                             # Required
    test_data=test_df,                               # Optional, defaults to None
    string_features=['string_feature_column_names'], # Optional, defaults to None
    data_directory='path/to/ensembleset/data'        # Optional, defaults to ./data
)

data_ensemble.make_datasets(
    n_datasets=10,         # Required
    fraction_features=0.1, # Required
    n_steps=5              # Required
)

The above call to make_datasets() will generate 10 different datasets using a random sequence of 5 feature engineering techniques applied to a randomly selected 10% of features. The feature selection is re-calculated after each feature engineering step. Each feature engineering step is applied to the test set if one is provided with a minimum of data leakage (e.g. gaussian KDE is calculated from training data only and then applied to training and testing data).

By default, generated datasets will be saved to HDF5 in data/dataset.h5 using the following structure:

dataset.h5
├──train
│   ├── labels
|   ├── 1
|   ├── .
|   ├── .
|   ├── .
|   └── n
│
└──test
    ├── labels
    ├── 1
    ├── .
    ├── .
    ├── .
    └── n

3. Feature engineering

The currently implemented pool of feature engineering methods are:

  1. One-hot encoding for string features
  2. Ordinal encoding for string features
  3. Log features with bases 2, e or 10
  4. Ratio features
  5. Exponential features with base 2 or e
  6. Sum features with 2, 3, or 4
  7. Difference features with 2, 3 or 4 subtrahends
  8. Polynomial features with degree 2 or 3
  9. Spline features with degree 2, 3 or 4
  10. Quantized features with using randomly selected k-bins
  11. Smoothed features with gaussian kernel density estimation

Major feature engineering parameters are also randomly selected for each step.

Project details


Download files

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

Source Distribution

ensembleset-1.0a17.tar.gz (8.6 MB view details)

Uploaded Source

Built Distribution

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

ensembleset-1.0a17-py3-none-any.whl (23.6 kB view details)

Uploaded Python 3

File details

Details for the file ensembleset-1.0a17.tar.gz.

File metadata

  • Download URL: ensembleset-1.0a17.tar.gz
  • Upload date:
  • Size: 8.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for ensembleset-1.0a17.tar.gz
Algorithm Hash digest
SHA256 19bee7bb8136d3def2dbf6a62161b530533553fe1ebf51f6c79aee88fe7a60b1
MD5 98b207a10b2b00d73e47c1033ec8f063
BLAKE2b-256 324bec32d5e1493b85c6b3af0b99c7bbecd44881b7524ea6fa4f17e63a3cd9ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for ensembleset-1.0a17.tar.gz:

Publisher: publish_pypi.yml on gperdrizet/ensembleset

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ensembleset-1.0a17-py3-none-any.whl.

File metadata

  • Download URL: ensembleset-1.0a17-py3-none-any.whl
  • Upload date:
  • Size: 23.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for ensembleset-1.0a17-py3-none-any.whl
Algorithm Hash digest
SHA256 cfc90776b7e59204dab0a1b8d2f2a74f67fd2d38b59e20ff5b8774f0deccfc0b
MD5 5e1ad9748ac5c7bfaf07994bd4cd40e4
BLAKE2b-256 165888aa3dcf24aa07e3ed5b3f57d9a27218f03833383c70b0d6a60c0bba33d3

See more details on using hashes here.

Provenance

The following attestation bundles were made for ensembleset-1.0a17-py3-none-any.whl:

Publisher: publish_pypi.yml on gperdrizet/ensembleset

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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