IP Library Granted Patent US 12,190,218
Granted Patent B2
US 12,190,218 · App. 18/583,205 · Granted Jan 7, 2025

System and method of operationalizing automated feature engineering

Inventors: James Max Kanter (Boston, MA); Kalyan Kumar Veeramachaneni (Watertown, MA)
G06N20/00G06F16/24578G06F16/285
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,190,218
App. No.
18/583,205
Filed
Feb 21, 2024
Granted
Jan 7, 2025
Kind
B2
Art Unit
3685
USPC
706/12
Abstract

A feature engineering tool automatically generates a group of features for training a machine learning model. The feature engineering tool selects primitives for a dataset and synthesizes a plurality of features based on the selective primitives and the dataset. The feature engineering tool iteratively applies the plurality of features to a different portion of the dataset to evaluate usefulness of the plurality of features. Based on the evaluation, it removes some of the plurality of features to obtain the group of features. The feature engineering tool also determines the importance factor for each feature in the group. The machine learning model is generated based on the features and their importance factors and can be used to make a prediction based on new data.

Claims (79)

1. A computer implemented method, comprising:

receiving a dataset from a data source;

selecting a subset of primitives from a plurality of primitives based on the received dataset, each of the selected primitives comprising a computation configured to be applied to at least a portion of the received dataset to synthesize one or more features, wherein the selecting includes:

generating a representative vector for the received dataset;

obtaining representative vectors for the plurality of primitives; and

selecting the subset of primitives by comparing the representative vector for the received dataset to the representative vectors for the plurality of primitives;

synthesizing a plurality of features by applying the selected subset of primitives to the received dataset, wherein synthesizing the plurality of features includes, for each primitive in the subset:

identifying one or more variables in the received dataset; and

applying the primitive to the one or more variables to generate one or more features of the plurality of features;

iteratively evaluating the plurality of features to remove one or more features from the plurality of features to obtain a subset of features, wherein iteratively evaluating the plurality of features includes:

applying the plurality of features to a first portion of the received dataset to determine a first usefulness score of each of the plurality of features;

removing one or more of the plurality of features based on the first usefulness score of each of the plurality of features to obtain a preliminary subset of features;

applying the preliminary subset of features to a second portion of the received dataset to determine a second usefulness score of each of the preliminary subset of features; and

removing one or more of the preliminary subset of features from the preliminary subset of features based on the second usefulness score of each of the preliminary subset of features; and

generating a machine learning model based on the subset of features, the machine learning model configured to be used to make a prediction based on new data.

2. The method of claim 1 , wherein selecting the subset of primitives from the plurality of primitives based on the received dataset further comprises:

inputting the representative vector into a second machine learning model, the second machine learning model outputting the selected subset of primitives based on the representative vector.

3. The method of claim 1 , further comprising determining an importance factor for each feature of the subset of features.

4. The method of claim 3 , wherein determining the importance factor for each of the subset of features comprises:

ranking the subset of features by inputting the subset of features and a portion of the received dataset into a machine learning model, the machine learning model outputting a first ranking score for each of the subset of features; and

determining the importance factors of the subset of features based on their ranking scores.

5. The method of claim 1 , wherein selecting the subset of primitives from the plurality of primitives based on the received dataset further includes:

generating a semantic representation of the received dataset; and

selecting primitives associated with attributes matching the semantic representation of the received dataset.

6. The method of claim 1 , wherein the representative vector for the received dataset encodes at least one or a combination of a number of tables in the received dataset, a number of columns per table, an average number of each column in a table, and an average number of each row in a table.

7. A system, comprising:

a computer processor for executing computer program instructions; and

a non-transitory computer-readable memory storing computer program instructions executable by the computer processor to perform operations comprising:

receiving a dataset from a data source;

selecting a subset of primitives from a plurality of primitives based on the received dataset, each of the selected primitives comprising a computation configured to be applied to at least a portion of the received dataset to synthesize one or more features, wherein the selecting includes:

generating a representative vector for the received dataset;

obtaining representative vectors for the plurality of primitives; and

selecting the subset of primitives by comparing the representative vector for the received dataset to the representative vectors for the plurality of primitives;

synthesizing a plurality of features by applying the selected subset of primitives to the received dataset, wherein synthesizing the plurality of features includes, for each primitive in the subset:

identifying one or more variables in the received dataset; and

applying the primitive to the one or more variables to generate one or more features of the plurality of features;

iteratively evaluating the plurality of features to remove one or more features from the plurality of features to obtain a subset of features, wherein iteratively evaluating the plurality of features includes:

applying the plurality of features to a first portion of the received dataset to determine a first usefulness score of each of the plurality of features;

removing one or more of the plurality of features based on the first usefulness score of each of the plurality of features to obtain a preliminary subset of features;

applying the preliminary subset of features to a second portion of the received dataset to determine a second usefulness score of each of the preliminary subset of features; and

removing one or more of the preliminary subset of features from the preliminary subset of features based on the second usefulness score of each of the preliminary subset of features; and

generating a machine learning model based on the subset of features, the machine learning model configured to be used to make a prediction based on new data.

8. The system of claim 7 , wherein selecting the subset of primitives from the plurality of primitives based on the received dataset further comprises:

inputting the representative vector into a second machine learning model, the second machine learning model outputting the selected subset of primitives based on the representative vector.

9. The system of claim 7 , the operations further comprising determining an importance factor for each feature of the subset of features.

10. The system of claim 9 , wherein determining the importance factor for each of the subset of features comprises:

ranking the subset of features by inputting the subset of features and a first portion of the received dataset into a machine learning model, the machine learning model outputting a first ranking score for each of the subset of features; and

determining the importance factors of the subset of features based on their ranking scores.

11. The system of claim 7 , wherein selecting the subset of primitives from the plurality of primitives based on the received dataset further includes:

generating a semantic representation of the received dataset; and

selecting primitives associated with attributes matching the semantic representation of the received dataset.

12. The system of claim 7 , wherein the representative vector for the received dataset encodes at least one or a combination of a number of tables in the received dataset, a number of columns per table, an average number of each column in a table, and an average number of each row in a table.

13. A non-transitory computer-readable memory storing executable computer program instructions for processing data blocks in a data analytics system, the instructions executable to perform operations comprising:

receiving a dataset from a data source;

selecting a subset of primitives from a plurality of primitives based on the received dataset, each of the selected primitives comprising a computation configured to be applied to at least a portion of the received dataset to synthesize one or more features, wherein the selecting includes:

generating a representative vector for the received dataset; dataset,

obtaining representative vectors for the plurality of primitives; and

selecting the subset of primitives by comparing the representative vector for the received dataset to the representative vectors for the plurality of primitives;

synthesizing a plurality of features by applying the selected subset of primitives to the received dataset, wherein synthesizing the plurality of features includes, for each primitive in the subset:

identifying one or more variables in the received dataset; and

applying the primitive to the one or more variables to generate one or more features of the plurality of features;

iteratively evaluating the plurality of features to remove one or more features from the plurality of features to obtain a subset of features, wherein iteratively evaluating the plurality of features includes:

applying the plurality of features to a first portion of the received dataset to determine a first usefulness score of each of the plurality of features;

removing one or more of the plurality of features based on the first usefulness score of each of the plurality of features to obtain a preliminary subset of features;

applying the preliminary subset of features to a second portion of the received dataset to determine a second usefulness score of each of the preliminary subset of features; and

removing one or more of the preliminary subset of features from the preliminary subset of features based on the second usefulness score of each of the preliminary subset of features; and

generating a machine learning model based on the subset of features, the machine learning model configured to be used to make a prediction based on new data.

14. The non-transitory computer-readable memory of claim 13 , wherein selecting the subset of primitives from the plurality of primitives based on the received dataset further comprises:

inputting the representative vector into a second machine learning model, the second machine learning model outputting the selected subset of primitives based on the representative vector.

15. The non-transitory computer-readable memory of claim 13 , the operations further comprising determining an importance factor for each feature of the subset of features.

16. The method of claim 1 , further comprising generating a natural language description of features in the plurality of features.

17. The method of claim 16 , wherein the natural language description of a feature describes at least one of: one or more algorithms included in the feature or results of applying the feature to at least a portion of the received dataset.

18. The non-transitory computer-readable memory of claim 15 , wherein determining the importance factor for each of the subset of features comprises:

ranking the subset of features by inputting the subset of features and a portion of the received dataset into a machine learning model, the machine learning model outputting a first ranking score for each of the subset of features; and

determining the importance factors of the subset of features based on their ranking scores.

19. The non-transitory computer-readable memory of claim 13 , wherein selecting the subset of primitives from the plurality of primitives based on the received dataset further includes:

generating a semantic representation of the received dataset; and

selecting primitives associated with attributes matching the semantic representation of the received dataset.

20. The non-transitory computer-readable memory of claim 13 , wherein the representative vector for the received dataset encodes at least one or a combination of a number of tables in the received dataset, a number of columns per table, an average number of each column in a table, and an average number of each row in a table.

Assignments (2)
INTELLECTUAL PROPERTY AGREEMENT SUPPLEMENT Recorded Dec 19, 2025
From: ALTERYX, INC.
To: SSLP LENDING, LLC
Reel/Frame 074007/0559 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 27, 2024
From: KANTER, JAMES MAX; VEERAMACHANENI, KALYAN KUMAR
To: ALTERYX, INC.
Reel/Frame 066914/0551 →
Continuity (2)
Continuation 17039428 · Sep 30, 2020
Related Publication 20240193485A1 · Jun 13, 2024
References Cited (85)
US 5182708A · Ejiri · 1993 [cited by examiner]
US 5371807A · Register · 1994 [cited by examiner]
US 6192360B1 · Dumais · 2001 [cited by examiner]
US 7366705B2 · Zeng · 2008 [cited by examiner]
US 7580742B2 · Tan · 2009 [cited by examiner]
US 7689531B1 · Diao · 2010 [cited by examiner]
US 7711673B1 · Diao · 2010 [cited by examiner]
US 7853599B2 · Liu · 2010 [cited by examiner]
US 8023974B1 · Diao · 2011 [cited by examiner]
US 8095521B2 · Chan · 2012 [cited by examiner]
US 8498986B1 · Botros · 2013 [cited by examiner]
US 8560466B2 · Diao · 2013 [cited by examiner]
US 8655803B2 · Lecerf · 2014 [cited by examiner]
US 9171057B2 · Botros · 2015 [cited by examiner]
US 9189750B1 · Narsky · 2015 [cited by examiner]
US 9249287B2 · Muraoka · 2016 [cited by examiner]
US 9292493B2 · Chandramouli · 2016 [cited by examiner]
US 9524469B1 · Mathew · 2016 [cited by examiner]
US 9552393B2 · Botros · 2017 [cited by examiner]
US 9645999B1 · Ciulla · 2017 [cited by examiner]
US 9715495B1 · Tacchi · 2017 [cited by examiner]
US 9740368B1 · Love · 2017 [cited by examiner]
US 9787705B1 · Love · 2017 [cited by examiner]
US 9836183B1 · Love · 2017 [cited by examiner]
US 9911211B1 · Damaraju · 2018 [cited by examiner]
US 9996800B2 · Mathew · 2018 [cited by examiner]
US 10318669B2 · Freeman · 2019 [cited by examiner]
US 10325212B1 · Paliwal · 2019 [cited by examiner]
US 10467533B2 · Kumar · 2019 [cited by examiner]
US 10482118B2 · Zheng · 2019 [cited by examiner]
US 10504035B2 · Shteingart · 2019 [cited by examiner]
US 10885463B2 · Hansen · 2021 [cited by examiner]
US 10963806B2 · Mathew · 2021 [cited by examiner]
US 11087088B2 · Chatterjee · 2021 [cited by examiner]
US 11257000B2 · Mathew · 2022 [cited by examiner]
US 11429899B2 · Kartoun · 2022 [cited by examiner]
US 11568314B2 · Wan · 2023 [cited by examiner]
US 11636367B2 · Manouchehri · 2023 [cited by examiner]
US 11663280B2 · Ahmadvand · 2023 [cited by examiner]
US 11693637B1 · Singh · 2023 [cited by examiner]
US 11698205B2 · Brown · 2023 [cited by examiner]
US 11727284B2 · Le Biannic · 2023 [cited by examiner]
US 20030101181A1 · Al-Kofahi · 2003 [cited by examiner]
US 20030208399A1 · Basak · 2003 [cited by examiner]
US 20090282012A1 · Konig · 2009 [cited by examiner]
US 20100150448A1 · Lecerf · 2010 [cited by examiner]
US 20100185568A1 · Bates · 2010 [cited by examiner]
US 20110213655A1 · Henkin · 2011 [cited by examiner]
US 20110224913A1 · Cui · 2011 [cited by examiner]
US 20120278263A1 · Borthwick · 2012 [cited by examiner]
US 20130097103A1 · Chari · 2013 [cited by examiner]
US 20130184538A1 · Lee · 2013 [cited by examiner]
US 20130185306A1 · Botros · 2013 [cited by examiner]
US 20130198187A1 · Botros · 2013 [cited by examiner]
US 20130304740A1 · Botros · 2013 [cited by examiner]
US 20140228714A1 · Chau · 2014 [cited by examiner]
US 20140236941A1 · Johns · 2014 [cited by examiner]
US 20140337820A1 · Km · 2014 [cited by examiner]
US 20160147891A1 · Chhichhia · 2016 [cited by examiner]
US 20170185902A1 · Kumar · 2017 [cited by examiner]
US 20180000403A1 · Chau · 2018 [cited by examiner]
US 20180018585A1 · Marin · 2018 [cited by examiner]
US 20180039911A1 · Bezzubtseva · 2018 [cited by examiner]
US 20180052932A1 · Catalano · 2018 [cited by examiner]
US 20180365248A1 · Zheng · 2018 [cited by examiner]
US 20190108276A1 · Kovács · 2019 [cited by examiner]
US 20190236206A1 · Chowdhury · 2019 [cited by examiner]
US 20190377784A1 · King · 2019 [cited by examiner]
US 20200079545A1 · Soehnlen et al. · 2020 [cited by applicant]
US 20200082810A1 · Kneller · 2020 [cited by examiner]
US 20200097545A1 · Chatterjee et al. · 2020 [cited by applicant]
US 20200311576A1 · Yamaguchi · 2020 [cited by examiner]
US 20210110208A1 · Ahmadvand · 2021 [cited by examiner]
US 20220253725A1 · Feng · 2022 [cited by examiner]
WO WO2019090023A1 · 2019 [cited by applicant]
Gangemi, 2018, Springer, pp. 128-144. [cited by examiner]
Kurkova, Springer, 2018, pp. 1-846. [cited by examiner]
Gangemi, A., et al. “The Semantic Web,” Proceedings of the 15 [cited by applicant]
IP Australia, Australian Examination Report, Australian Patent Application No. 2021353828, Jul. 4, 2023, 3 pages. [cited by applicant]
Kanter, M., “Feature Engineering: Secret to Data Science Success,” Mar. 23, 2020, five pages, [Online] [Retrieved on Nov. 4, 2020] Retrieved from the Internet <URL: https://community.alteryx.com/t5/Data-Science/Feature-… [cited by applicant]
Koehrsen, W., “Why Automated Feature Engineering Will Change the Way You Do Machine Learning,” Aug. 9, 2018, 11 pages, [Online] [Retrieved on Nov. 4, 2020] Retrieved from the Internet <URL: https://innovation.alteryx.co… [cited by applicant]
Kurkova, V., et al. “Artificial Neural Networks and Machine Learning—ICANN 2018,” Proceedings of the International Conference on Artificial Neural Networks, Rhodes, Greece, Oct. 4-7, 2018, pp. 1-846. [cited by applicant]
PCT International Search Report and Written Opinion, PCT Application No. PCT/US21/50752, Dec. 27, 2021, 19 pages. [cited by applicant]
Primitives, “Age,” Date Unknown, one page, [Online] [Retrieved on Nov. 4, 2020] Retrieved from the Internet <URL: https://primitives.featurelabs.com/#Age>. [cited by applicant]
Schreck, B., “Feature Engineering vs Feature Selection,” Jan. 4, 2018, 11 pages, [Online] [Retrieved on Nov. 4, 2020] Retrieved from the Internet <URL: https://innovation.alteryx.com/feature-engineering-vs-feature-selec… [cited by applicant]
Cited By (1)
US 12,639,634