A system of classifying devices and/or app instances a new or returning divides attributes generated from observations received from an uncharacterized device/software app into base-fingerprint attributes and predictor attributes, where the two kinds of attributes have different longevities. Predictor attribute tuples from attribute tuples having the same base fingerprint as the base fingerprint corresponding to the uncharacterized device/app, and the predictor attribute tuple corresponding to the uncharacterized device/app are analyzed using a machine learned predictor function to obtain a final fingerprint. Machine learning techniques such as logistic regression, support vector machine, and artificial neural network can provide a predictor function that can decrease the conflict rate of the final fingerprint and, hence, the utility thereof, without significantly affecting the accuracy of classification.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method for providing a predictor function for categorizing at least one of a device a software application instance, the method comprising the steps of: generating a set of difference vectors and a target vector, wherein: each difference vector comprises a plurality of difference elements, each difference element corresponding to a respective attribute of software application instances, and each difference vector corresponds to a respective element of the target vector, and to a pair of software application instance observations; applying a function to the set of difference vectors to obtain a prediction vector; computing an aggregate error based on difference between the prediction vector and the target vector; modifying the function by modifying a function parameter to decrease the aggregate error; and designating the modified function as the predictor function. 2. The method of claim 1, wherein: the function parameter comprises a weight vector comprising a plurality of weight elements, each weight element corresponding to a respective attribute of the software application instances; and modifying the function parameter comprises selecting a value of at least one of the weight elements that minimizes the aggregate error. 3. The method of claim 1, wherein the function comprises an activation function of an artificial neural network, the activation function being selected from the group consisting of a linear function, a sigmoid function, a hyperbolic tangent function, and an even step-wise function. 4. The method of claim 1, wherein: a support vector set comprises the set of difference vectors; the function comprises a separator function; and modifying the function parameter to decrease the aggregate error comprises maximizing a distance between the modified separator function and the support vector. 5. The method of claim 1, wherein: a first group of attribute values is associated with a first software application instance; a second group of corresponding attribute values is associated with a second software application instance; and generating the set of difference vectors and the target vector comprises generating a difference vector by comparing, for each attribute in the first group of attribute values, a value from the first group with a value from the second group. 6. The method of claim 5, further comprising: receiving a first group of observations associated with the first software application instance; generating the first group of attribute values from at least one observation from the first group of observations; receiving a second group of observations associated with the second software application instance; and generating the second group of attribute values from at least one observation from the second group of observations. 7. The method of claim 5, wherein each attribute in the first group of attribute values as a half life less than a selected threshold. 8. The method of claim 5, further comprising: determining that the second software application instance and the first software application instance correspond to two invocations of a single software application, by comparing respective values of an instance identifier associated with the first and second software application instances; and designating an element of the target vector corresponding to the difference vector as RETURNING. 9. The method of claim 8, wherein the instance identifier comprises at least one of an activation index, a timestamp, and an identifier transmitted by a software application instance. 10. The method of claim 8, wherein the instance identifier comprises a cookie associated with a software application instance. 11. The method of claim 5, further comprising: determining that the second software application instance and the first software application instance are at least one of: (i) instances of different software applications, and (ii) instances invoked on different devices, by comparing respective values of an instance identifier associated with the first and second software application instances; and designating an element of the target vector corresponding to the difference vector as NEW. 12. The method of claim 11, wherein the instance identifier comprises at least one of an activation index, a timestamp, and an identifier transmitted by a software application instance. 13. The method of claim 11, wherein: the instance identifier comprises an operating system (OS) version associated with a software application instance; and comparison of the respective values of the OS version is performed during a preset time window. 14. A system for providing a predictor function for categorizing at least one of a device and a software application instance, the system comprising: a first processor; and a first memory in communication with the first processor, the first memory comprising instructions which, when executed by a processing unit comprising at least one of the first processor and a second processor, the processing unit being in communication with a memory module comprising at least one of the first memory and a second memory, program the processing unit to: generate a set of difference vectors and a target vector, wherein: each difference vector comprises a plurality of difference elements, each difference element corresponding to a respective attribute of software application instances, and each difference vector corresponds to a respective element of the target vector, and to a pair of software application instance observations; apply a function to the set of difference vectors to obtain a prediction vector; compute an aggregate error based on difference between the prediction vector and the target vector; modify the function by modifying a function parameter to decrease the aggregate error; and designate the modified function as the predictor function. 15. The system of claim 14, wherein: the function parameter comprises a weight vector comprising a plurality of weight elements, each weight element corresponding to a respective attribute of the software application instances; and to modifying the function parameter the instructions program the processing unit to select a value of at least one of the weight elements that minimizes the aggregate error. 16. The system of claim 14, wherein the function comprises an activation function of an artificial neural network, the activation function being selected from the group consisting of a linear function, a sigmoid function, a hyperbolic tangent function, and an even step-wise function. 17. The system of claim 14, wherein: a support vector set comprises the set of difference vectors; the function comprises a separator function; and to modify the function parameter to decrease the aggregate error, the instructions program the processing unit to maximizing a distance between the modified separator function and the support vector. 18. The system of claim 14, wherein: a first group of attribute values is associated with a first software application instance; a second group of corresponding attribute values is associated with a second software application instance; and to generate the set of difference vectors and the target vector, the instructions program the processing unit to generate a difference vector by comparing, for each attribute in the first group of attribute values, a value from the first group with a value from the second group. 19. The system of claim 18, wherein the instructions further program the processing unit to: receive a first group of observations associated with the first software application instance; generate the first group of attribute values from at least one observation from the first group of observations; receive a second group of observations associated with the second software application instance; and generate the second group of attribute values from at least one observation from the second group of observations. 20. The system of claim 18, wherein each attribute in the first group of attribute values as a half life less than a selected threshold. 21. The system of claim 18, wherein the instructions further program the processing unit to: determine that the second software application instance and the first software application instance correspond to two invocations of a single software application, by comparing respective values of an instance identifier associated with the first and second software application instances; and designate an element of the target vector corresponding to the difference vector as RETURNING. 22. The system of claim 21, wherein the instance identifier comprises at least one of an activation index, a timestamp, and an identifier transmitted by a software application instance. 23. The system of claim 21, wherein the instance identifier comprises a cookie associated with a software application instance. 24. The system of claim 18, wherein the instructions further program the processing unit to: determine that the second software application instance and the first software application instance are at least one of: (i) instances of different software applications, and (ii) instances invoked on different devices, by comparing respective values of an instance identifier associated with the first and second software application instances; and designate an element of the target vector corresponding to the difference vector as NEW. 25. The system of claim 24, wherein the instance identifier comprises at least one of an activation index, a timestamp, and an identifier transmitted by a software application instance. 26. The system of claim 24, wherein: the instance identifier comprises an operating system (OS) version associated with a software application instance; and comparison of the respective values of the OS version is performed during a preset time window.