Skip to main content

No project description provided

Project description

Deep Feature Synthesis in Rust

This is a project to implement the Deep Feature Synthesis algorithm in Rust.

Running in Python

Create virtualenv

python -m venv .env
source .env/bin/activate
pip install maturin
pip install featuretools
pip install pandas

Ensure Cargo.toml is configured

[lib]
name = "rust_dfs"
crate-type = ["cdylib"]

Run maturin

maturin develop

Using from python

# Import Featuretools, rust_dfs, and some other utility functions
import featuretools as ft
from py.utils import *
import rust_dfs

# Generate a fake dataset with 2 Integer columns
df = generate_fake_dataframe(
    n_rows=10,
    col_defs=[
        ("Integer", 2),
        # ("Boolean", 2),
    ]
)

# pick some primitives
f_primitives = [
    ft.primitives.GreaterThan,
    ft.primitives.LessThan
]

# or use all of them
# f_primitives = list(ft.primitives.utils.get_transform_primitives().values())

# convert datafame to an entityset
es = df_to_es(df)

# run dfs with features_only=True
ft_feats = ft.dfs(
    entityset=es, 
    target_dataframe_name="nums", 
    trans_primitives=f_primitives, 
    features_only=True,
    max_depth=1
)

# ft_feats = [<Feature: F_0>, <Feature: F_1>, <Feature: F_0 > F_1>, <Feature: F_1 > F_0>]

# Convert back into a format that we can use to compare with rust
c_feats = convert_features(ft_feats)

# Now run using Rust

# convert featuretools primitives to rust primitives
r_primitives = convert_primitives(f_primitives)

# convert dataframe to rust features
r_features = dataframe_to_features(es.dataframes[0])

# generate engineered features using Rust (create new features only)
r_derived_feats = rust_dfs.generate_features(r_features, r_primitives)

# r_derived_feats = [GreaterThan_F_0_F_1 : Unknown : Unknown, GreaterThan_F_1_F_0 : Unknown : Unknown]

Run main.rs

To run as a rust binary:

cargo run --no-default-features

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

rust_dfs-0.1.2.tar.gz (1.4 MB view details)

Uploaded Source

Built Distributions

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

rust_dfs-0.1.2-cp39-cp39-macosx_11_0_arm64.whl (296.9 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

rust_dfs-0.1.2-cp38-cp38-macosx_11_0_arm64.whl (296.8 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

File details

Details for the file rust_dfs-0.1.2.tar.gz.

File metadata

  • Download URL: rust_dfs-0.1.2.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/0.12.20

File hashes

Hashes for rust_dfs-0.1.2.tar.gz
Algorithm Hash digest
SHA256 490d1c28137d4f388ac97cb723138dc0861c625bf26132d812603f4b5c571066
MD5 82ebfc337818f5ecad36f3da964c2bde
BLAKE2b-256 daae512d6d8f1045a61ea9a031840a9e08ca6705d38d26e10f077676e1f0c28e

See more details on using hashes here.

File details

Details for the file rust_dfs-0.1.2-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rust_dfs-0.1.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 11a02dd3ae2f18e158bcc8c6bae56f7b5517e633633c1f96a6b7a43613710950
MD5 9eb55940dc7e72f3caaa5ce130a223b6
BLAKE2b-256 ca0bd3c8ff7dd91b7721da1d60f23a1070f3f97101d11469135b7b417adefb08

See more details on using hashes here.

File details

Details for the file rust_dfs-0.1.2-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rust_dfs-0.1.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 23b75960f6d59d8c6f3c092b8f5372774aefc0fb18aa28c3e32b1edad03e751b
MD5 ad30d281df721aeca994066d536abe47
BLAKE2b-256 d3c5cb01c721534a7e6c58b0d1bcd1ae04f3e4be5718fd8fecbb2ccec45266e5

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