Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multi output primitive stackability #679

Merged
merged 45 commits into from Aug 13, 2019
Merged

Multi output primitive stackability #679

merged 45 commits into from Aug 13, 2019

Conversation

ctduffy
Copy link
Contributor

@ctduffy ctduffy commented Jul 22, 2019

Adding support for multi output primitive stacking

Closes #593

@codecov
Copy link

codecov bot commented Jul 25, 2019

Codecov Report

Merging #679 into master will decrease coverage by 0.03%.
The diff coverage is 97.59%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #679      +/-   ##
==========================================
- Coverage   97.51%   97.48%   -0.04%     
==========================================
  Files         118      118              
  Lines       10035    10214     +179     
==========================================
+ Hits         9786     9957     +171     
- Misses        249      257       +8
Impacted Files Coverage Δ
featuretools/feature_base/api.py 100% <ø> (ø) ⬆️
featuretools/feature_base/features_deserializer.py 98.24% <ø> (ø) ⬆️
featuretools/synthesis/deep_feature_synthesis.py 96.07% <100%> (-0.19%) ⬇️
...aturetools/tests/primitive_tests/test_agg_feats.py 99.4% <100%> (+0.02%) ⬆️
...imitive_tests/test_groupby_transform_primitives.py 100% <100%> (ø) ⬆️
.../tests/primitive_tests/test_features_serializer.py 100% <100%> (ø) ⬆️
featuretools/computational_backends/feature_set.py 100% <100%> (ø) ⬆️
featuretools/feature_base/features_serializer.py 98.03% <100%> (ø) ⬆️
featuretools/feature_base/feature_base.py 97.87% <100%> (+0.24%) ⬆️
...utational_backend/test_calculate_feature_matrix.py 99.34% <100%> (ø) ⬆️
... and 9 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 2d60511...3b63a3f. Read the comment docs.

@ctduffy ctduffy requested review from rwedge and kmax12 July 26, 2019 20:48
@ctduffy ctduffy requested a review from rwedge August 6, 2019 20:22
Copy link
Contributor

@rwedge rwedge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should test serializing stacked multi-output features

Also test GroupByTransformFeatures stacking on multi-output features

@ctduffy ctduffy requested a review from rwedge August 8, 2019 16:20
@ctduffy ctduffy requested a review from rwedge August 8, 2019 19:45
@ctduffy ctduffy requested a review from rwedge August 8, 2019 21:48
Copy link
Contributor

@kmax12 kmax12 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looking good. here are a few comments

@@ -135,6 +136,8 @@ def _add_feature_to_trie(self, trie, feature, approximate_feature_trie,
sub_ignored_trie = approximate_feature_trie.get_node(feature.relationship_path)

for dep_feat in feature.get_dependencies():
if isinstance(dep_feat, MultiOutputFeature):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

would it be possible/make sense to have this conversion to the base feature happen in the get dependencies call or would that break other usages of get_dependcies?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that would break other usages of get_dependencies, particularly in the from_dictionary usages, for that function should return a specific slice or multi output feature with the associated column number, not just the base feature of the multi output without the column

featuretools/feature_base/feature_base.py Outdated Show resolved Hide resolved
featuretools/synthesis/deep_feature_synthesis.py Outdated Show resolved Hide resolved
featuretools/computational_backends/feature_set.py Outdated Show resolved Hide resolved
featuretools/synthesis/deep_feature_synthesis.py Outdated Show resolved Hide resolved
Copy link
Contributor

@kmax12 kmax12 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good to me. Nice work!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Allow users to specify names of multioutput custom primitives
3 participants