alteryx / alteryx/evalml

Define separate pipeline paths for each feature type

Open
#1,728 0 comments 0 reactions 1 assignee Claimed by @asniyaz View on GitHub
enhancement
Dominant language
Python
Stars
850
Forks
96
PR merge metrics
No merged PRs in 30d

Description

Currently, automl will construct pipelines as linear sequences of components, each of which operates on a subset of features (i.e. only cateogrical), deletes/adds/modifies features and passes the results to the next component.

Now that our pipeline datastructure supports DAGs, we should update our pipelines to define separate paths for each supported feature type:
* Numeric
* Categorical
* Text
* Datetime

We should also update our pipeline graph method to represent "numeric", "categorical" etc inputs on the graph output, to indicate which pathway corresponds to which data type.

Advantages:
* Easier for users to understand the pipeline graph.
* Rather than having each component do a woodwork `select` call to get the columns it operates on, the `select` can be done beforehand. I think this will simplify our implementation.
* It could even result in a performance boost, because by doing the `select` up front we could pass pandas dataframes along during pipeline evaluation instead of passing a woodwork dataframe and having to re-convert each component's output at each step. This would reverse some of the work we did to update all our components to work with woodwork, but we're already going to have to update this implementation when the new woodwork API comes out, so incurring a cost there is unavoidable.
* I think it would make it easier to add support for more datatypes or separate paths in the future, for things like target transformation.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.