Install#
Featuretools is available for Python 3.9 - 3.11. It can be installed from pypi, conda-forge, or from source.
To install Featuretools, run the following command:
$ python -m pip install featuretools
$ conda install -c conda-forge featuretools
Add-ons#
Featuretools allows users to install add-ons individually or all at once:
Hint
Be sure to install Scala and Spark if you want to use Spark
$ python -m pip install "featuretools[complete]"
$ python -m pip install "featuretools[premium]"
$ python -m pip install "featuretools[dask]"
$ python -m pip install "featuretools[spark]"
$ python -m pip install "featuretools[tsfresh]"
$ python -m pip install "featuretools[autonormalize]"
$ python -m pip install "featuretools[updater]"
$ python -m pip install "featuretools[sql]"
$ python -m pip install "featuretools[sklearn]"
$ conda install -c conda-forge nlp-primitives featuretools-tsfresh-primitives pyspark alteryx-open-src-update-checker
$ conda install -c conda-forge featuretools-tsfresh-primitives
$ conda install -c conda-forge dask distributed
$ conda install -c conda-forge pyspark
$ conda install -c conda-forge featuretools_sql
$ conda install -c conda-forge alteryx-open-src-update-checker
NLP Primitives: Use Natural Language Processing Primitives in Featuretools
TSFresh Primitives: Use 60+ primitives from tsfresh in Featuretools
Dask: Use Woodwork with Dask DataFrames and run
calculate_feature_matrix
in parallel withn_jobs
Spark: Use Woodwork with Spark DataFrames
AutoNormalize: Automated creation of normalized
EntitySet
from denormalized dataUpdate Checker: Receive automatic notifications of new Featuretools releases
SQL: Automated
EntitySet
creation from relational data stored in a SQL databasescikit-learn Transformer: Featuretools’ DFS as a scikit-learn transformer
Installing Graphviz#
In order to use EntitySet.plot
or featuretools.graph_feature
you will need to install the graphviz library.
$ brew install graphviz
$ python -m pip install graphviz
$ brew install graphviz
$ conda install -c conda-forge python-graphviz
$ sudo apt install graphviz
$ python -m pip install graphviz
$ sudo apt install graphviz
$ conda install -c conda-forge python-graphviz
$ python -m pip install graphviz
$ conda install -c conda-forge python-graphviz
If you installed graphviz for Windows with pip
, install graphviz.exe from the official source.
Source#
To install Featuretools from source, clone the repository from GitHub, and install the dependencies.
Hint
Be sure to install Scala and Spark if you want to run all unit tests
git clone https://github.com/alteryx/featuretools.git
cd featuretools
python -m pip install .
Scala and Spark#
$ brew tap AdoptOpenJDK/openjdk
$ brew install --cask adoptopenjdk11
$ brew install scala apache-spark
$ echo 'export JAVA_HOME=$(/usr/libexec/java_home)' >> ~/.zshrc
$ echo 'export PATH="/usr/local/opt/openjdk@11/bin:$PATH"' >> ~/.zshrc
$ brew install openjdk@11 scala apache-spark graphviz
$ echo 'export PATH="/opt/homebrew/opt/openjdk@11/bin:$PATH"' >> ~/.zshrc
$ echo 'export CPPFLAGS="-I/opt/homebrew/opt/openjdk@11/include:$CPPFLAGS"' >> ~/.zprofile
$ sudo ln -sfn /opt/homebrew/opt/openjdk@11/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-11.jdk
$ sudo apt install openjdk-11-jre openjdk-11-jdk scala -y
$ echo "export SPARK_HOME=/opt/spark" >> ~/.profile
$ echo "export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin" >> ~/.profile
$ echo "export PYSPARK_PYTHON=/usr/bin/python3" >> ~/.profile
$ sudo amazon-linux-extras install java-openjdk11 scala -y
$ amazon-linux-extras enable java-openjdk11
Docker#
It is also possible to run Featuretools inside a Docker container.
You can do so by installing it as a package inside a container (following the normal install guide) or
creating a new image with Featuretools pre-installed, using the following commands in your Dockerfile
:
FROM --platform=linux/x86_64 python:3.9-slim-buster
RUN apt update && apt -y update
RUN apt install -y build-essential
RUN pip3 install --upgrade --quiet pip
RUN pip3 install featuretools
Development#
To make contributions to the codebase, please follow the guidelines here.