Computerized classification system with dynamic variable and constraint adjustment and function assignment
A classification engine comprises a plurality of processing layers, each with a processing node that performs a selected function which comprises a utility function. The processing nodes comprise multiple types of utility functions. The classification receives features corresponding to an entity to be classified and provides a classification result. The processing nodes in the processing layers other than the first processing layer weight the inputs. The engine automatically adjusts the weights and the functions in the processing nodes to improve the classification.
1 . A computer-implemented method for processing data that represents one or more entities to be classified for a computerized application characterized by one or more features, the computer-implemented method, comprising:
receiving data provided by the computerized application from computerized data storage, the data organized as a plurality of first layer inputs, wherein data corresponding to each first layer input represents a different feature of an entity to be classified;
processing each of the plurality of first layer inputs with one or more processing layers wherein each processing layer comprises one or more computerized processing nodes wherein each of the computerized processing nodes executes a function;
the processing layers comprising a first processing layer comprising a plurality of the computerized processing nodes wherein each of the first layer inputs is provided to a predetermined one of the computerized processing nodes in the first processing layer wherein each of the computerized processing nodes in the first processing layer processes its first layer input in accordance with a set of predefined functions that is contextual with respect to the first layer input, wherein at least a subset of the set of predefined functions is specific to relationships exhibited by the data provided by the computerized application, and wherein the at least the subset of functions is separate from mathematical relationships between inputs to the at least the subset of functions and outputs of the at least the subset of functions, each of the computerized processing nodes in the first processing layer providing a first layer output to each processing node in a second processing layer;
each of the computerized processing nodes in the second processing layer
accepting as second layer inputs each first layer output of the computerized processing nodes of the first processing layer,
weighting each second layer input with a corresponding initial weighting,
processing the second layer inputs as weighted with the corresponding initial weighting in accordance with a predefined function which varies among the computerized processing nodes in the second processing layer, and
providing a second layer output; and
providing the second layer output of each of the computerized processing nodes in the second processing layer to each processing node in a third processing layer;
each of the computerized processing node in the third processing layer accepting as third layer inputs each second layer output of the computerized processing nodes of the second processing layer,
weighting each third layer input with a corresponding third layer weighting,
processing the third layer inputs as weighted with the corresponding initial third layer weighting in accordance with a predefined function which varies among the computerized processing nodes in the third processing layer, and
providing a third layer output; and
providing the third layer output of each computerized processing node in the third processing layer as a result that provides for the computerized application a classification of the entity to be classified, wherein processing speed and efficiency of the computerized application and the classification are improved.
2 . A computerized decision engine, comprising a processor that executes instructions that when executed comprise:
a receiving layer comprising one or more computerized processing nodes that execute computer-executable instructions to receive one or more sets of data organized as a plurality of inputs as generated by a computerized application characterized by one or more features, wherein each input of the plurality of inputs comprises one or more of the features and wherein each of the computerized processing nodes in the receiving layer processes one of the plurality of inputs in accordance with a function that has a contextual relationship with the one or more features of the one of the plurality of inputs processed by the function, wherein each contextual relationship is specific to a feature of the computerized application; and
a second layer comprising one or more computerized processing nodes that each execute computer-executable instructions to provide a set of context specific functions, responsive to the inputs, wherein each function of the set of context specific functions provides a known normalized output in response to one or more weighted inputs, wherein at least one computerized processing node of the second layer executes a context specific function that remains unchanged during learning by the computerized decision engine and that differs from the context specific function executed by each other computerized processing node of the second layer, wherein each context specific function exhibits a relationship between an input to the context specific function and an output of the context specific function that is separate from a mathematical relationship between the input to the context specific function and the output of the context specific function, the computerized processing nodes of the second layer providing in response to the inputs output data of the computerized decision engine to the computerized application in the form of a set of outputs, wherein processing speed and efficiency of the computerized decision engine and the classification are improved.
3 . The computerized decision engine of claim 2 wherein the processor further executes instructions that perform dynamic assignment by:
for each selected node of the computerized processing nodes of the second layer, dynamically selecting the context specific function, from a function library by selecting a first selected context specific function and successively adjusting the first selected context specific function until the first selected context specific function fits factors that impact the selected node, for each set of data, wherein the function library is available to all computerized processing nodes.
4 . The computerized decision engine of claim 2 wherein the context specific function corresponding to at least one computerized processing node of the second layer is maintained for more than one set of data processed by the computerized decision engine.
5 . A computerized decision engine responsive to a computerized application characterized by a plurality of features, the computerized decision engine comprising:
data storage having stored therein, data corresponding to a plurality of entities, each entity of the plurality of entities comprising data corresponding to the plurality of features; and
a plurality of utility functions;
one or more server processors operatively coupled to the data storage and configured to execute instructions that when executed cause the one or more server processors to:
implement a plurality of data processing layers, each data processing layer comprising a plurality of computerized processing nodes, the data processing layers comprising a receiving layer, a first intermediate layer and a final layer;
receive at each of the computerized processing nodes in the receiving layer an input in the form of a feature corresponding to an entity for classification and process each input in accordance with a function executed by one of the computerized processing nodes in the receiving layer where the function has a contextual relationship with features of the input processed by the function and where the function is specific to characteristics of the data corresponding to the plurality of entities wherein the function is separate from mathematical relationships between inputs to the function and outputs of the function;
at each of the computerized processing nodes in the first intermediate layer receive each output of each of the computerized processing nodes in the receiving layer,
execute a utility function selected from among the utility functions stored in the data storage such that of the computerized processing nodes in the first intermediate layer, at least one computerized processing node executes a utility function that is different from the utility function executed by each other computerized processing node in the first intermediate layer and wherein the utility function executed by the at least one computerized processing node, and
weight each input in accordance with a corresponding predefined weight;
and receive at each of the computerized processing nodes in the final layer an output of each of the computerized processing nodes of the first intermediate layer and provide to the computerized application a classification result to classify the entity for classification, wherein processing speed and efficiency of the computerized decision engine and the classification are improved.
6 . The computerized decision engine of claim 5 wherein the operation to weight each input in accordance with a corresponding predefined weight comprises:
automatically modifying certain weights corresponding to certain inputs of one or more of the computerized processing nodes in the first intermediate layer.
7 . The computerized decision engine of claim 5 wherein the operation to execute a utility function selected from among the utility functions stored in the data storage comprises:
automatically modifying certain functions in certain of the computerized processing nodes of the first intermediate layer.
8 . The computerized decision engine of claim 3 wherein the processor further executes instructions that when executed cause the dynamic assignment to:
(i) generate a data structure that identifies a function performed by each computerized processing node and that identifies a source of each input for the function performed by each computerized processing node and a weight assigned to the source;
(ii) determine edge relevance for each input by comparing a value of each input to an adjustable edge relevance threshold value;
(iii) store the value of each input that is greater than the adjustable edge relevance threshold value; and
(iv) evaluate each computerized processing node containing a function having a value of an input that is less than the adjustable edge relevance threshold value to modify the function performed by the computerized processing node.
9 . The computerized decision engine of claim 8 wherein the processor further executes instructions that when executed cause the dynamic assignment to repeat operations (ii), (iii) and (iv) a plurality of times to iteratively modify the function performed by the computerized processing node.
10 . The computerized decision engine of claim 3 wherein the processor further executes instructions that when executed cause the dynamic assignment to:
(i) determine if an input number value corresponding to the number of the inputs is less than an adjustable variable threshold and if the input number value is less than the adjustable variable threshold then calculating a weight for each input in accordance with square optimization; and
(ii) if the input number value is greater than the adjustable variable threshold then determining an input/constraint ratio of the input number value to a constraint value corresponding to a number of constraints imposed on the inputs and if the input-constraint ratio is below a lower adjustable input/constraint ratio then increasing the input/constraint ratio.
11 . The computerized decision engine of claim 10 wherein the processor further executes instructions that when executed cause the dynamic assignment to repeat operations (i) and (ii) until the input/constraint ratio is between the lower adjustable input/constraint ratio and an upper adjustable input/constraint ratio.
12 . The computerized-implemented method of claim 1 further comprising performing operations to:
(i) generate a data structure that identifies a function performed by each computerized processing node and that identifies a source of each input for the function performed by each computerized processing node and a weight assigned to the source;
(ii) determine edge relevance for each input by comparing a value of each input to an adjustable edge relevance threshold value;
(iii) store the value of each input that is greater than the adjustable edge relevance threshold value; and
(iv) evaluate each computerized processing node containing a function having a value of an input that is less than the adjustable edge relevance threshold value to modify the function performed by the computerized processing node.
13 . The computerized-implemented method of claim 12 further comprising performing operations to: repeat operations (ii), (iii) and (iv) a plurality of times to iteratively modify the function performed by the computerized processing node.
14 . The computerized-implemented method of claim 1 further comprising performing operations to:
(i) determine if an input number value corresponding to the number of the inputs is less than an adjustable variable threshold and if the input number value is less than the adjustable variable threshold then calculating a weight for each input in accordance with square optimization; and
(ii) if the input number value is greater than the adjustable variable threshold then determining an input/constraint ratio of the input number value to a constraint value corresponding to a number of constraints imposed on the inputs and if the input-constraint ratio is below a lower adjustable input/constraint ratio then increasing the input/constraint ratio.
15 . The computerized-implemented method of claim 14 further comprising performing operations to: repeat operations (i) and (ii) until the input/constraint ratio is between the lower adjustable input/constraint ratio and an upper adjustable input/constraint ratio.
16 . The computerized decision engine of claim 5 wherein the one or more server processors are configured to execute instructions that when executed cause the one or more server processors to:
(i) generate a data structure that identifies a function performed by each of the computerized processing nodes and that identifies a source of each input for the utility function performed by each of the computerized processing nodes and a weight assigned to the source;
(ii) determine edge relevance for each input by comparing a value of each input to an adjustable edge relevance threshold value;
(iii) store the value of each input that is greater than the adjustable edge relevance threshold value; and
(iv) evaluate each computerized processing node containing a utility function having a value of an input that is less than the adjustable edge relevance threshold value to modify the utility function performed by the computerized processing node.
17 . The computerized decision engine of claim 16 wherein the one or more server processors are configured to execute instructions that when executed cause the one or more server processors to repeat operations (ii), (iii) and (iv) a plurality of times to iteratively modify the utility function performed by the computerized processing node.
18 . The computerized decision engine of claim 5 wherein the one or more server processors are configured to execute instructions that when executed cause the one or more server processors to:
(i) determine if an input number value corresponding to the number of the inputs is less than an adjustable variable threshold and if the input number value is less than the adjustable variable threshold then calculating a weight for each input in accordance with square optimization;
(ii) if the input number value is greater than the adjustable variable threshold then determining an input/constraint ratio of the input number value to a constraint value corresponding to a number of constraints imposed on the inputs and if the input-constraint ratio is below a lower adjustable input/constraint ratio then increasing the input/constraint ratio; and
(iii) repeat operations (i) and (ii) until the input/constraint ratio is between the lower adjustable input/constraint ratio and an upper adjustable input/constraint ratio.