EpistasisLab / EpistasisLab/tpot

FeatureSetSelector does not work when not set as the first item in a template.

Open
#1,250 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Jupyter Notebook
Stars
10.1k
Forks
1.6k
PR merge metrics
No merged PRs in 30d

Description

FeatureSetSelector only works when set as the first step of a template. When no template is used, or when it is set to be in the middle of a template, the behavior is not well defined. It would be helpful if the FSS could be used without a template. For example, TPOT can set the FSS to be the first step of the pipeline, but then have the rest of the pipeline be unrestricted.

for example the following works normally.
template='FeatureSetSelector-Transformer-Classifier')
However "Transformer-FeatureSetSelector-Classifier" does not work, nor will the base model without a template. There are two issues with that:
When using string column names: those are not preserved in the other transformations so when FSS is not first, it cannot use the feature names and crashes.
2. When using indexes of columns, the ordering is not guaranteed to be preserved with transformations in the other steps. This leads to FSS picking out a different subset than indented while also discarding the rest of the data up to that point.
for example lets say subset 1 is indexes 0 and 1. and our pipeline is Some Transformer-FSS-Classifier
out data is [0,1,8,9]
the first transformation adds two columns
data is now [7, 7, 0, 1, 8, 9]
FSS will now select [7,7], and discard the rest (including the added transformation in the last step).

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.