IP Library Granted Patent US 12,406,209
Granted Patent B1
US 12,406,209 · App. 16/457,884 · Granted Sep 2, 2025

Decision tree training using a database system

Inventors: Samir Shah (San Francisco, CA); Bei Zhang (San Jose, CA); Kenton Miller (Sunnyvale, CA)
Assignee: Shape Security, Inc.
G06N20/20G06N5/01G06N20/00
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,406,209
App. No.
16/457,884
Filed
Jun 28, 2019
Granted
Sep 2, 2025
Kind
B1
Examiner
KIM, SEHWAN
Art Unit
2129
USPC
706/12
Abstract

In an embodiment, a computer-implemented method for training a decision tree using a database system, the decision tree comprising a plurality nodes, comprises, by one or more computing devices: storing in a database input data for training the decision tree, the input data comprising a plurality of feature values corresponding to a plurality of features; generating a particular node of the plurality of decision nodes by: selecting a subset of the plurality of features and a subset of the input data; using one or more queries to the database system, for each feature of the subset of the plurality of features, calculating a variance value associated with the feature based on the subset of the input data; identifying a particular feature of the subset of the plurality of features associated with the highest variance value; associating the particular node with the particular feature, wherein the particular node causes the decision tree to branch based on the particular feature.

Claims (70)

1. A computer-implemented method for training a decision tree using a database system, the decision tree comprising a plurality of decision nodes, the computer-implemented method implemented by a network traffic management system comprising one or more network traffic apparatuses, one or more computing devices, or server devices, the method comprising:

storing in a database input data for training the decision tree, the input data comprising a plurality of feature values corresponding to a plurality of features, wherein the input data is stored in a columnar format, wherein rows of columnar format correspond to input sets of the input data in the database and columns correspond to at least one of the plurality of features, wherein the decision tree is trained using a set of training data comprising the input data, and wherein the set of training data does not comprise output data; and

generating a particular node of the plurality of decision nodes by:

selecting a subset of the plurality of features and a subset of the input data;

using one or more queries to the database system, for each feature of the subset of the plurality of features, calculating a variance value associated with the feature based on the subset of the input data, wherein the calculated variance value is based on aggregate label output values of partitioned subsets of the input data that are generated based on identified patterns relating to legitimacy of requests to one of the server devices, wherein the partitioned subsets of the input data are based on one or more conditions, wherein the aggregate label output values provide status information on conformity of the partitioned subsets to the identified patterns relating to legitimacy of the requests;

identifying a particular feature of the subset of the plurality of features associated with a highest variance value; and

associating the particular node with the particular feature, wherein the particular node causes the decision tree to branch based on the particular feature associated with the highest variance value.

2. The method of claim 1 further comprising generating a random forest comprising a plurality of decision trees by generating, for each decision tree of the plurality of decision trees, a respective plurality of decision nodes.

3. The method of claim 2 further comprising generating a second query to the database system corresponding to the random forest, wherein the second query, when executed using the database system, applies each decision tree of the plurality of decision trees to a set of input data.

4. The method of claim 1 wherein the selecting the subset of the plurality of features comprises randomly selecting the subset of the plurality of features.

5. The method of claim 1 wherein calculating the variance value associated with the feature comprises:

identifying the one or more conditions for partitioning the subset of the input data;

partitioning the subset of the input data based on the one or more conditions;

applying an aggregate label to each partition of the subset of the input data;

calculating a respective variance value for each condition of the one or more conditions based on applying the aggregate label to each partition of the subset of the input data; and

selecting a highest respective variance value as the variance value associated with the feature.

6. A system for training a decision tree using a database system, the decision tree comprising a plurality of decision nodes, the system comprising:

one or more processors; and

non-transitory computer-readable media storing instructions which, when executed by the one or more processors, cause:

storing in a database input data for training the decision tree, the input data comprising a plurality of feature values corresponding to a plurality of features, wherein the input data is stored in a columnar format, wherein rows of columnar format correspond to input sets of the input data in the database and columns correspond to at least one of the plurality of features, wherein the decision tree is trained using a set of training data comprising the input data, and wherein the set of training data does not comprise output data; and

generating a particular node of the plurality of decision nodes by:

selecting a subset of the plurality of features and a subset of the input data;

using one or more queries to the database system, for each feature of the subset of the plurality of features, calculating a variance value associated with the feature based on the subset of the input data, wherein the calculated variance value is based on aggregate label output values of partitioned subsets of the input data that are generated based on identified patterns relating to legitimacy of requests to one of the server devices, wherein the partitioned subsets of the input data are based on one or more conditions, wherein the aggregate label output values provide status information on conformity of the partitioned subsets to the identified patterns relating to legitimacy of the requests;

identifying a particular feature of the subset of the plurality of features associated with a highest variance value; and

associating the particular node with the particular feature, wherein the particular node causes the decision tree to branch based on the particular feature associated with the highest variance value.

7. The system of claim 6 wherein the instructions, when executed by the one or more processors, further cause generating a random forest comprising a plurality of decision trees by generating, for each decision tree of the plurality of decision trees, a respective plurality of decision nodes.

8. The system of claim 7 wherein the instructions, when executed by the one or more processors, further cause generating a second query to the database system corresponding to the random forest, wherein the second query, when executed using the database system, applies each decision tree of the plurality of decision trees to a set of input data.

9. The system of claim 6 wherein the subset of the plurality of features comprises randomly selecting the subset of the plurality of features.

10. The system of claim 6 wherein calculating the variance value associated with the feature comprises:

identifying the one or more conditions for partitioning the subset of the input data;

partitioning the subset of the input data based on the one or more conditions;

applying an aggregate label to each partition of the subset of the input data;

calculating a respective variance value for each condition of the one or more conditions based on applying the aggregate label to each partition of the subset of the input data; and

selecting a highest respective variance value as the variance value associated with the feature.

11. A non-transitory computer readable medium having stored thereon instructions for training a decision tree using a database system, the decision tree comprising a plurality of decision nodes, the non-transitory computer readable medium comprising executable code which when executed by one or more processors, causes the one or more processors to:

store in a database input data for training the decision tree, the input data comprising a plurality of feature values corresponding to a plurality of features, wherein the input data is stored in a columnar format, wherein rows of columnar format correspond to input sets of the input data in the database and columns correspond to at least one of the plurality of features, wherein the decision tree is trained using a set of training data comprising the input data, and wherein the set of training data does not comprise output data; and

generate a particular node of the plurality of decision nodes by:

selecting a subset of the plurality of features and a subset of the input data;

using one or more queries to the database system, for each feature of the subset of the plurality of features, calculating a variance value associated with the feature based on the subset of the input data, wherein the calculated variance value is based on aggregate label output values of partitioned subsets of the input data that are generated based on identified patterns relating to legitimacy of requests to one of the server devices, wherein the partitioned subsets of the input data are based on one or more conditions, wherein the aggregate label output values provide status information on conformity of the partitioned subsets to the identified patterns relating to legitimacy of the requests;

identifying a particular feature of the subset of the plurality of features associated with a highest variance value; and

associating the particular node with the particular feature, wherein the particular node causes the decision tree to branch based on the particular feature associated with the highest variance value.

12. The medium as set forth in claim 11 , wherein the executable code which when executed by the one or more processors, further causes the processors to:

generate a random forest comprising a plurality of decision trees by generating, for each decision tree of the plurality of decision trees, a respective plurality of decision nodes.

13. The medium as set forth in claim 12 , wherein the executable code which when executed by the one or more processors, further causes the processors to:

generate a second query to the database system corresponding to the random forest, wherein the second query, when executed using the database system, applies each decision tree of the plurality of decision trees to a set of input data.

14. The medium as set forth in claim 11 , wherein the selecting the subset of the plurality of features comprises randomly selecting the subset of the plurality of features.

15. The medium as set forth in claim 11 , wherein calculating the variance value associated with the feature comprises:

identifying the one or more conditions for partitioning the subset of the input data;

partitioning the subset of the input data based on the one or more conditions;

applying an aggregate label to each partition of the subset of the input data;

calculating a respective variance value for each condition of the one or more conditions based on applying the aggregate label to each partition of the subset of the input data; and

selecting a highest respective variance value as the variance value associated with the feature.

16. A network traffic manager apparatus for training a decision tree using a database system, comprising memory comprising programmed instructions stored in the memory and one or more processors configured to be capable of executing the programmed instructions stored in the memory to:

store in a database input data for training a decision tree, the decision tree comprising a plurality of decision nodes, the input data comprising a plurality of feature values corresponding to a plurality of features, wherein the input data is stored in a columnar format, wherein rows of columnar format correspond to input sets of the input data in the database and columns correspond to at least one of the plurality of features, wherein the decision tree is trained using a set of training data comprising the input data, and wherein the set of training data does not comprise output data; and

generate a particular node of the plurality of decision nodes by:

selecting a subset of the plurality of features and a subset of the input data;

using one or more queries to the database system, for each feature of the subset of the plurality of features, calculating a variance value associated with the feature based on the subset of the input data, wherein the calculated variance value is based on aggregate label output values of partitioned subsets of the input data that are generated based on identified patterns relating to legitimacy of requests to one of the server devices, wherein the partitioned subsets of the input data are based on one or more conditions, wherein the aggregate label output values provide status information on conformity of the partitioned subsets to the identified patterns relating to legitimacy of the requests;

identifying a particular feature of the subset of the plurality of features associated with a highest variance value; and

associating the particular node with the particular feature, wherein the particular node causes the decision tree to branch based on the particular feature associated with the highest variance value.

17. The network traffic manager apparatus as set forth in claim 16 , wherein the one or more processors are further configured to be capable of executing the programmed instructions stored in the memory to:

generate a random forest comprising a plurality of decision trees by generating, for each decision tree of the plurality of decision trees, a respective plurality of decision nodes.

18. The network traffic manager apparatus as set forth in claim 17 , wherein the one or more processors are further configured to be capable of executing the programmed instructions stored in the memory to:

generate a second query to the database system corresponding to the random forest, wherein the second query, when executed using the database system, applies each decision tree of the plurality of decision trees to a set of input data.

19. The network traffic manager apparatus as set forth in claim 16 , wherein the selecting the subset of the plurality of features comprises randomly selecting the subset of the plurality of features.

20. The network traffic manager apparatus as set forth in claim 16 , wherein calculating the variance value associated with the feature comprises:

identifying the one or more conditions for partitioning the subset of the input data;

partitioning the subset of the input data based on the one or more conditions;

applying an aggregate label to each partition of the subset of the input data;

calculating a respective variance value for each condition of the one or more conditions based on applying the aggregate label to each partition of the subset of the input data; and

selecting a highest respective variance value as the variance value associated with the feature.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 18, 2019
From: SHAH, SAMIR; ZHANG, BEI; MILLER, KENTON
To: SHAPE SECURITY, INC.
Reel/Frame 049795/0877 →
References Cited (52)
US 6108648A · Lakshmi et al. · 2000 [cited by applicant]
US 10733320B2 · Nerurkar · 2020 [cited by applicant]
US 11061902B2 · Idicula · 2021 [cited by applicant]
US 20020120435A1 · Frazier · 2002 [cited by applicant]
US 20060003419A1 · Pan · 2006 [cited by applicant]
US 20060034194A1 · Kahan · 2006 [cited by applicant]
US 20060230006A1 · Buscema · 2006 [cited by applicant]
US 20070017996A1 · Xia · 2007 [cited by applicant]
US 20070179966A1 · Li et al. · 2007 [cited by applicant]
US 20090281981A1 · Chen et al. · 2009 [cited by applicant]
US 20140172753A1 · Nowozin · 2014 [cited by applicant]
US 20150278635A1 · Poggio et al. · 2015 [cited by applicant]
US 20150310044A1 · Isaacson et al. · 2015 [cited by applicant]
US 20170022822A1 · Taffet et al. · 2017 [cited by applicant]
US 20170126627A1 · Yang · 2017 [cited by examiner]
US 20170228224A1 · Dunn et al. · 2017 [cited by applicant]
US 20180032870A1 · Liu · 2018 [cited by applicant]
US 20180082172A1 · Patel et al. · 2018 [cited by applicant]
US 20180306609A1 · Agarwal · 2018 [cited by examiner]
US 20190026489A1 · Nerurkar · 2019 [cited by applicant]
US 20190057356A1 · Larsen · 2019 [cited by examiner]
US 20190188000A1 · Chen · 2019 [cited by applicant]
US 20190318104A1 · Yoshino · 2019 [cited by examiner]
US 20190347327A1 · Patil · 2019 [cited by examiner]
US 20200073953A1 · Kulkarni · 2020 [cited by examiner]
Sugumaran, V., and K. I. Ramachandran. “Effect of No. of features on classification of roller bearing faults using SVM and PSVM.” Expert Systems with Applications 38.4 (2011): 4088-4096. (Year: 2011). [cited by examiner]
Bentayeb, Fadila, and Jérôme Darmont. “Decision tree modeling with relational views.” International Symposium on Methodologies for Intelligent Systems. Springer, Berlin, Heidelberg, 2002. (Year: 2002). [cited by examiner]
Chen, Engu, and Xin James He. “Crude oil price prediction with decision tree based regression approach.” Journal of International Technology and Information Management 27.4 (2019): 2-16. (Year: 2019). [cited by examiner]
Sugumaran, V., and K. I. Ramachandran. “Effect of number of features on classification of roller bearing faults using SVM and PSVM.” Expert Systems with Applications 38.4 (2011): 4088-4096. (Year: 2011). [cited by examiner]
Doyle, Michelle, and Padraig Cunningham. “A dynamic approach to reducing dialog in on-line decision guides.” European Workshop on Advances in Case-Based Reasoning. Springer, Berlin, Heidelberg, 2000. (Year: 2000). [cited by examiner]
McClean, Sally I. “Data mining and knowledge discovery.” (2003): 229-246. (Year: 2003). [cited by examiner]
Zaklouta, Fatin, and Bogdan Stanciulescu. “Real-time traffic-sign recognition using tree classifiers.” IEEE Transactions on Intelligent Transportation Systems 13.4 (2012): 1507-1514. (Year: 2012). [cited by examiner]
Basak, Jayanta, and Raghu Krishnapuram. “Interpretable hierarchical clustering by constructing an unsupervised decision tree.” IEEE transactions on knowledge and data engineering 17.1 (2005): 121-132. (Year: 2005). [cited by examiner]
Von Hacht, August, “Implementation of Deep Feedforward Neural Network with CUDA Backend for Efficient and Accurate Natural Image Classification,” Department of Physics, Chalmers University of Technology, 69 pp, Jun. 201… [cited by applicant]
International Search Report and Written Opinion for International Application No. PCT/US2019/064552, filed Dec. 4, 2019, mailed Mar. 17, 2020. [cited by applicant]
International Preliminary Report on Patentability for PCT/US2019/064552, dated m Jun. 2021. [cited by applicant]
Dabbura, Imad, “Coding Neural Network—Forward Propagation and Backpropagtion,” https://towardsdatascience.com,coding-neural-network-forward-propagation-and-backpropagtion-ccf8cf369f76, 19 pp, Mar. 31, 2018. [cited by applicant]
International Seach Report and Written Opinion for International Application No. PCT/US2019/064550, filed Dec. 4, 2019, mailed Feb. 12, 2020. [cited by applicant]
Von Hach!, August, “Implementation of Deep Feedforward Neural Network with CUDA Backend for Efficient and Accurate Natural Image Classification,” Department of Physics, Chalmers University of Technology, 69 pp, Jun. 201… [cited by applicant]
Search Report and the Written Opinion of corresponding PCT Application Serial No. PCT /US 19/64552, mailed Mar. 17, 2020. [cited by applicant]
Imani, Mohsen et al. “RAPI DN N: In-memory Deep Neural Network Acceleration Framework” arXiv [Version 3 published 2018] [Retrieved Apr. 2022] <U RL:https://arxiv.org/abs/1806.05794> (Year: 2018). [cited by applicant]
Haridas, Harisanker “Deep Neural Network implemented in pure SOL over BigQuery”. Towards DataScience [Published Mar. 2018] [Retrieved Apr. 2022] <URL: https://towardsdatascience.com/deep-neural-network-implemented-in-pu… [cited by applicant]
Carlile, Brad et al. “Columnar Database Techniques for Creating AI Features” arXiv [Published 2017] [Retrieved Apr. 2022] <URL: https://arxiv.org/abs/1712.02882> (Year: 2017). [cited by applicant]
M. S. Razlighi, M. Imani, F. Koushanfar and T. Rosing, “LookNN: Neural network with no multiplication,” Design, Automation & Test in Europe Conference & Exhibition (DATE), 2017, 2017, pp. 1775-1780, doi: 10.23919/DATE.2… [cited by applicant]
Sergio Fernandes and Jorge Bernardino. 2015. What is BigQuery? In <i >Proceedings of the 19th International Database Engineering Applications Symposium</i> (<i>IDEAS '15</i>}. Association for Computing Machinery, New Yo… [cited by applicant]
Bagherinezhad, Hessam et al. “LCNN: Lookup-based Convolutional Neural Network” arXiv [Published 2017] [Retrieved Apr. 2022] <URL: https:/arxiv.org/abs/1611.06473> (Year: 2017). [cited by applicant]
SQL Server Team, “How six lines of code+ SQL Server can bring Deep Learning to ANY App”, 2017, Microsoft, retrieved from https://www.microsoft.com/en-us/sql-server/blog/2017/01/05/how-six-lines-of-code-sql-server-can-br… [cited by applicant]
Canali, Luca, “How to Build a Neural Network Scoring Engine in PUSQL”, 2016, retrieved from https://externaltable.blogspot.com/2016/07/a-neural-network-scoring-engine-in-plsql.html on Jun. 20, 2024 (Year: 2016). [cited by applicant]
Shevchuk, Yurii, “Neural Networks in MySQL”, 2016, retrieved from http://blog.itdxer.com/2016/07/01/neural-networs-in-mysql.html on Jun. 20, 2024 (Year: 2016). [cited by applicant]
Chen, “Design of Resistive Synaptic Devices and Array Architectures for Neuromorphic Computing”, May 2018, Arizona State University (Year: 2018). [cited by applicant]
Kim et al., “Input-Splitting of Large Neural Networks for Power-Efficient Accelerator with Resistive Crossbar Memory Array”, Jul. 23, 2018, ISLPED '18: Proceedings of the International Symposium on Low Power Electronics… [cited by applicant]
Gao et al., “Fully parallel write/read in resistive synaptic array for accelerating on-chip learning”, 2015, Nanotechnology, vol. 26, pp. 1-9 (Year: 2015). [cited by applicant]
Cited By (1)
US 12,526,289