A method of generating a decision tree is provided. A leaf assignment for each proposed split in generating the decision tree is incremented using a Gray code.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A non-transitory computer-readable medium having stored thereon computer-readable instructions that when executed by a computing device cause the computing device to: (a) receive a target indicator of a target variable to evaluate from a dataset; (b) receive an input indicator of an input variable to evaluate from the dataset, wherein the dataset includes a plurality of values of the input variable and a plurality of target values of the target variable, wherein a value of the input variable is associated with a target value of the target variable; (c) determine a number of levels of the input variable to evaluate; (d) define a level value for each of the determined number of levels based on the plurality of values of the input variable; (e) assign the plurality of values of the input variable to a level of the determined number of levels based on the defined level value; (f) identify a maximum number of leaves of a plurality of leaves to evaluate, wherein the identified maximum number of leaves is less than or equal to the determined number of levels; (g) define a leaf assignment value for each level of the determined number of levels, wherein the leaf assignment value is less than or equal to the identified maximum number of leaves; (h) compute a decision metric for splitting data in the dataset based on the defined leaf assignment value and the assigned plurality of values of the input variable; (i) store the defined leaf assignment value and the computed decision metric; (j) increment a leaf assignment of the determined number of levels using a Gray code to define the leaf assignment value for each level of the determined number of levels, wherein the leaf assignment value for each level varies between zero and the identified maximum number of leaves; (k) repeat (h) to (j) for each valid Gray code value; and (l) select a best leaf assignment for the plurality of values of the input variable and the plurality of target values of the target variable based on the computed decision metric. 2. The computer-readable medium of claim 1, wherein the decision metric is computed using a statistical equation. 3. The computer-readable medium of claim 1, wherein the defined leaf assignment and the computed decision metric are stored when the computed decision metric is better than a previous best decision metric. 4. The computer-readable medium of claim 3, wherein the computed decision metric is better than the previous best decision metric when the computed decision metric is less than the previous best decision metric. 5. The computer-readable medium of claim 3, wherein the computed decision metric is better than the previous best decision metric when the computed decision metric is greater than the previous best decision metric. 6. The computer-readable medium of claim 1, wherein, after (j) and before (k), the computer-readable instructions further cause the computing device to determine whether or not to skip the incremented leaf assignment of the determined number of levels; and to repeat (j) when the determination is to skip the incremented leaf assignment of the determined number of levels. 7. The computer-readable medium of claim 1, wherein the Gray code is implemented as a mirroring, variable-base Gray code. 8. The computer-readable medium of claim 1, wherein the variable-base of the Gray code is the identified maximum number of bins. 9. The computer-readable medium of claim 1, wherein, after (k), the computer-readable instructions further cause the computing device to repeat (b) to (k) with a second input variable as the input variable to evaluate from the dataset. 10. The computer-readable medium of claim 1, wherein, after (l), the computer-readable instructions further cause the computing device to assign the plurality of values of the input variable and the respective plurality of target values of the target variable to a leaf of the plurality of leaves based on the selected best leaf assignment. 11. The computer-readable medium of claim 10, wherein the plurality of values of the input variable and the respective plurality of target values of the target variable are assigned when the computed decision metric associated with the selected best leaf assignment satisfies a criterion. 12. The computer-readable medium of claim 10, wherein, before (g), the computer-readable instructions further cause the computing device to distribute the plurality of values of the input variable and the respective plurality of target values of the target variable into memory blocks of the computer-readable medium. 13. The computer-readable medium of claim 12, wherein the memory blocks include a child leaf value that indicates the leaf assignment value for each iteration of (j). 14. The computer-readable medium of claim 13, wherein assigning the plurality of values of the input variable and the respective plurality of target values of the target variable to the leaf comprises updating the memory blocks to include a new leaf indicator equal to the child leaf value for the selected best leaf assignment. 15. The computer-readable medium of claim 12, wherein a memory block is created for each distinct value of the plurality of target values of the target variable when the target variable is represented by a nominal value or an ordinal value. 16. The computer-readable medium of claim 12, wherein each memory block of the memory blocks includes a pointer to a next memory block to form a linked list. 17. The computer-readable medium of claim 12, wherein each memory block of the memory blocks includes the plurality of values of the input variable associated with the respective distinct value of the plurality of target values stored contiguously into the memory block. 18. The computer-readable medium of claim 12, wherein each memory block of the memory blocks includes a missing flag that indicates whether or not a respective memory block includes an input variable having a missing value. 19. The computer-readable medium of claim 12, wherein each memory block of the memory blocks includes a numerical value indicating a number of input variables stored in the memory block. 20. A system comprising: a processor; and a computer-readable medium operably coupled to the processor, the computer-readable medium having computer-readable instructions stored thereon that, when executed by the processor, cause the computing device to (a) receive a target indicator of a target variable to evaluate from a dataset; (b) receive an input indicator of an input variable to evaluate from the dataset, wherein the dataset includes a plurality of values of the input variable and a plurality of target values of the target variable, wherein a value of the input variable is associated with a target value of the target variable; (c) determine a number of levels of the input variable to evaluate; (d) define a level value for each of the determined number of levels based on the plurality of values of the input variable; (e) assign the plurality of values of the input variable to a level of the determined number of levels based on the defined level value; (f) identify a maximum number of leaves of a plurality of leaves to evaluate, wherein the identified maximum number of leaves is less than or equal to the determined number of levels; (g) define a leaf assignment value for each level of the determined number of levels, wherein the leaf assignment value is less than or equal to the identified maximum number of leaves; (h) compute a decision metric for splitting data in the dataset based on the defined leaf assignment value and the assigned plurality of values of the input variable; (i) store the defined leaf assignment value and the computed decision metric; (j) increment a leaf assignment of the determined number of levels using a Gray code to define the leaf assignment value for each level of the determined number of levels, wherein the leaf assignment value for each level varies between zero and the identified maximum number of leaves; (k) repeat (h) to (j) for each leaf assignment possibility of the determined number of levels; and (l) select a best leaf assignment for the plurality of values of the input variable and the plurality of target values of the target variable based on the computed decision metric. 21. A method of generating a decision tree, the method comprising: (a) receiving, by a computing device, a target indicator of a target variable to evaluate from a dataset; (b) receiving, by the computing device, an input indicator of an input variable to evaluate from the dataset, wherein the dataset includes a plurality of values of the input variable and a plurality of target values of the target variable, wherein a value of the input variable is associated with a target value of the target variable; (c) determining, by the computing device, a number of levels of the input variable to evaluate; (d) defining, by the computing device, a level value for each of the determined number of levels based on the plurality of values of the input variable; (e) assigning, by the computing device, the plurality of values of the input variable to a level of the determined number of levels based on the defined level value; (f) identifying, by the computing device, a maximum number of leaves of a plurality of leaves to evaluate, wherein the identified maximum number of leaves is less than or equal to the determined number of levels; (g) defining, by the computing device, a leaf assignment value for each level of the determined number of levels, wherein the leaf assignment value is less than or equal to the identified maximum number of leaves; (h) computing, by the computing device, a decision metric for splitting the data in the dataset based on the defined leaf assignment and the assigned plurality of values of the input variable; (i) storing, by the computing device, the defined leaf assignment and the computed decision metric; (j) incrementing, by the computing device, a leaf assignment of the determined number of levels using a Gray code to define the leaf assignment value for each level of the determined number of levels, wherein the leaf assignment value for each level varies between zero and the identified maximum number of leaves; (k) repeating, by the computing device, (h) to (j) for each leaf assignment possibility of the determined number of levels; and (l) selecting, by the computing device, a best leaf assignment for the plurality of values of the input variable and the plurality of target values of the target variable based on the computed decision metric.