Skip to content

Latest commit

 

History

History
204 lines (201 loc) · 31.7 KB

File metadata and controls

204 lines (201 loc) · 31.7 KB

Primitive coverage

Every primitive in featuretools 1.31.0 beside its tusk counterpart. Time-series primitives (rolling, expanding, lag) are out of scope and not listed.

Meaning
Same values, covered by a test
Both implement it, but no test yet
⚠️ Diverges on purpose
Diverges, or not implemented
tusk only
Group tusk featuretools Status Test Comment
Aggregation [count][tusk.primitives.Count] count test_values_match_featuretools
Aggregation [max][tusk.primitives.Max] max test_values_match_featuretools
Aggregation [mean][tusk.primitives.Mean] mean test_values_match_featuretools
Aggregation [median][tusk.primitives.Median] median test_median_matches_featuretools_on_every_parent_row
Aggregation [min][tusk.primitives.Min] min test_values_match_featuretools
Aggregation [n_unique][tusk.primitives.NUnique] num_unique ⚠️ test_n_unique_of_an_empty_group_diverges_from_featuretools An empty group is 0 in tusk and NaN in featuretools; null handling agrees.
Aggregation [percent_true][tusk.primitives.PercentTrue] percent_true test_percent_true_matches_featuretools_on_every_parent_row
Aggregation [quantiles][tusk.primitives.Quantiles] test_quantiles_defaults_to_the_quartiles featuretools has no quantiles counterpart.
Aggregation [std][tusk.primitives.Std] std test_stacked_values_match_featuretools
Aggregation [sum][tusk.primitives.Sum] sum test_values_match_featuretools
Aggregation all
Aggregation any
Aggregation average_count_per_unique
Aggregation avg_time_between
Aggregation count_above_mean
Aggregation count_below_mean
Aggregation count_greater_than
Aggregation count_inside_nth_std
Aggregation count_inside_range
Aggregation count_less_than
Aggregation count_outside_nth_std
Aggregation count_outside_range
Aggregation date_first_event
Aggregation entropy Needs per-group value counts.
Aggregation first
Aggregation first_last_time_delta
Aggregation has_no_duplicates
Aggregation is_monotonically_decreasing Needs an ordered pairwise scan.
Aggregation is_monotonically_increasing Needs an ordered pairwise scan.
Aggregation is_unique
Aggregation kurtosis
Aggregation last
Aggregation max_consecutive_false Needs a run-length scan.
Aggregation max_consecutive_negatives Needs a run-length scan.
Aggregation max_consecutive_positives Needs a run-length scan.
Aggregation max_consecutive_true Needs a run-length scan.
Aggregation max_consecutive_zeros Needs a run-length scan.
Aggregation max_count Needs per-group value counts.
Aggregation max_min_delta
Aggregation median_count Needs per-group value counts.
Aggregation min_count Needs per-group value counts.
Aggregation mode Length-changing inside a lazy group_by().agg().
Aggregation n_most_common Length-changing inside a lazy group_by().agg().
Aggregation n_most_common_frequency Length-changing inside a lazy group_by().agg().
Aggregation n_unique_days
Aggregation n_unique_days_of_calendar_year
Aggregation n_unique_days_of_month
Aggregation n_unique_months
Aggregation n_unique_weeks
Aggregation num_consecutive_greater_mean Needs a run-length scan.
Aggregation num_consecutive_less_mean Needs a run-length scan.
Aggregation num_false_since_last_true Needs a run-length scan.
Aggregation num_peaks Needs a windowed scan.
Aggregation num_true
Aggregation num_true_since_last_false Needs a run-length scan.
Aggregation num_zero_crossings Needs a windowed scan.
Aggregation percent_unique
Aggregation skew
Aggregation time_since_first Needs a reference clock.
Aggregation time_since_last Needs a reference clock.
Aggregation time_since_last_false Needs a reference clock.
Aggregation time_since_last_max Needs a reference clock.
Aggregation time_since_last_min Needs a reference clock.
Aggregation time_since_last_true Needs a reference clock.
Aggregation trend Needs a least-squares fit.
Binary transform [add_numeric][tusk.primitives.AddNumeric] add_numeric
Binary transform [divide_numeric][tusk.primitives.DivideNumeric] divide_numeric
Binary transform [multiply_numeric][tusk.primitives.MultiplyNumeric] multiply_numeric
Binary transform [subtract_numeric][tusk.primitives.SubtractNumeric] subtract_numeric
Binary transform add_numeric_scalar Scalar argument; tusk primitives take columns only.
Binary transform divide_by_feature Scalar argument; tusk primitives take columns only.
Binary transform divide_numeric_scalar Scalar argument; tusk primitives take columns only.
Binary transform equal
Binary transform equal_scalar Scalar argument; tusk primitives take columns only.
Binary transform greater_than
Binary transform greater_than_equal_to
Binary transform greater_than_equal_to_scalar Scalar argument; tusk primitives take columns only.
Binary transform greater_than_scalar Scalar argument; tusk primitives take columns only.
Binary transform less_than
Binary transform less_than_equal_to
Binary transform less_than_equal_to_scalar Scalar argument; tusk primitives take columns only.
Binary transform less_than_scalar Scalar argument; tusk primitives take columns only.
Binary transform modulo_by_feature Scalar argument; tusk primitives take columns only.
Binary transform modulo_numeric
Binary transform modulo_numeric_scalar Scalar argument; tusk primitives take columns only.
Binary transform multiply_boolean
Binary transform multiply_numeric_boolean
Binary transform multiply_numeric_scalar Scalar argument; tusk primitives take columns only.
Binary transform not_equal
Binary transform not_equal_scalar Scalar argument; tusk primitives take columns only.
Binary transform scalar_subtract_numeric_feature Scalar argument; tusk primitives take columns only.
Binary transform subtract_numeric_scalar Scalar argument; tusk primitives take columns only.
Boolean transform and
Boolean transform isin
Boolean transform not
Boolean transform or
Cumulative transform [cum_count][tusk.primitives.CumCount] cum_count featuretools counts every row; tusk counts only non-null values.
Cumulative transform [cum_max][tusk.primitives.CumMax] cum_max
Cumulative transform [cum_min][tusk.primitives.CumMin] cum_min
Cumulative transform [cum_sum][tusk.primitives.CumSum] cum_sum
Cumulative transform [diff][tusk.primitives.Diff] diff
Cumulative transform [time_since_previous][tusk.primitives.TimeSincePrevious] time_since_previous ⚠️ test_time_since_previous_is_a_timedelta Returns a Duration; featuretools returns float seconds.
Cumulative transform cum_mean
Cumulative transform cumulative_time_since_last_false Needs a conditional forward-fill; narwhals has none.
Cumulative transform cumulative_time_since_last_true Needs a conditional forward-fill; narwhals has none.
Cumulative transform diff_datetime
Datetime transform [day][tusk.primitives.Day] day
Datetime transform [hour][tusk.primitives.Hour] hour
Datetime transform [is_weekend][tusk.primitives.IsWeekend] is_weekend Agrees on real dates; a null datetime is null in tusk and False in featuretools.
Datetime transform [month][tusk.primitives.Month] month
Datetime transform [time_since][tusk.primitives.TimeSince] time_since ⚠️ test_time_since_matches_featuretools_on_every_row Returns a Duration; featuretools returns float seconds.
Datetime transform [weekday][tusk.primitives.Weekday] weekday ⚠️ test_row_wise_transforms tusk is ISO 1-7 (Monday = 1); featuretools is 0-6 (Monday = 0).
Datetime transform [year][tusk.primitives.Year] year
Datetime transform age Needs a reference clock.
Datetime transform date_to_holiday Needs the holidays package.
Datetime transform date_to_time_zone
Datetime transform day_of_year
Datetime transform days_in_month
Datetime transform distance_to_holiday Needs the holidays package.
Datetime transform is_federal_holiday Needs the holidays package.
Datetime transform is_first_week_of_month
Datetime transform is_leap_year
Datetime transform is_lunch_time
Datetime transform is_month_end
Datetime transform is_month_start
Datetime transform is_quarter_end
Datetime transform is_quarter_start
Datetime transform is_working_hours
Datetime transform is_year_end
Datetime transform is_year_start
Datetime transform minute
Datetime transform nth_week_of_month narwhals exposes no ISO week number.
Datetime transform part_of_day
Datetime transform quarter
Datetime transform season
Datetime transform second
Datetime transform week narwhals exposes no ISO week number.
Email and URL transform email_address_to_domain
Email and URL transform is_free_email_domain Needs a bundled domain list.
Email and URL transform url_to_domain Needs URL parsing.
Email and URL transform url_to_protocol Needs URL parsing.
Email and URL transform url_to_tld Needs URL parsing.
Exponential transform exponential_weighted_average
Exponential transform exponential_weighted_std narwhals exposes only ewm_mean.
Exponential transform exponential_weighted_variance narwhals exposes only ewm_mean.
General transform [absolute][tusk.primitives.Absolute] absolute
General transform [natural_log][tusk.primitives.NaturalLog] natural_logarithm
General transform absolute_diff
General transform cosine
General transform is_null
General transform negate
General transform percent_change
General transform percentile
General transform rate_of_change
General transform same_as_previous
General transform savgol_filter Needs SciPy.
General transform sine
General transform square_root
General transform tangent narwhals exposes no tan.
General transform variance
Location transform cityblock_distance featuretools' LatLong column has no narwhals equivalent.
Location transform geomidpoint featuretools' LatLong column has no narwhals equivalent.
Location transform haversine featuretools' LatLong column has no narwhals equivalent.
Location transform is_in_geobox featuretools' LatLong column has no narwhals equivalent.
Location transform latitude featuretools' LatLong column has no narwhals equivalent.
Location transform longitude featuretools' LatLong column has no narwhals equivalent.
Natural-language transform count_string
Natural-language transform file_extension
Natural-language transform full_name_to_first_name Needs name parsing.
Natural-language transform full_name_to_last_name Needs name parsing.
Natural-language transform full_name_to_title Needs name parsing.
Natural-language transform mean_characters_per_word
Natural-language transform median_word_length Needs a per-row list reduction.
Natural-language transform num_characters
Natural-language transform num_unique_separators Needs a regex count; narwhals has none.
Natural-language transform num_words
Natural-language transform number_of_common_words Needs tokenisation against a word list.
Natural-language transform number_of_hashtags Needs a regex count; narwhals has none.
Natural-language transform number_of_mentions Needs a regex count; narwhals has none.
Natural-language transform number_of_unique_words Needs a per-row list reduction.
Natural-language transform number_of_words_in_quotes Needs a regex count; narwhals has none.
Natural-language transform punctuation_count Needs a regex count; narwhals has none.
Natural-language transform title_word_count Needs a regex count; narwhals has none.
Natural-language transform total_word_length
Natural-language transform upper_case_count Needs a regex count; narwhals has none.
Natural-language transform upper_case_word_count Needs a regex count; narwhals has none.
Natural-language transform whitespace_count Needs a regex count; narwhals has none.
Postal-code transform one_digit_postal_code
Postal-code transform two_digit_postal_code