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 categorizing at least one of a device and a software application instance, the method comprising the steps of: selecting by a server, from a database, a set of records corresponding to a base fingerprint based on software application instance data, each record in the set comprising a plurality of predictor attributes; obtaining a predictor function derived via adaptive analysis of other software application instance data; and for each record in the set of records: computing by the server a set of difference values by comparing each one of a plurality of predictor attributes based on the software application instance data with a corresponding predictor attribute from a plurality of predictor attributes in the record; and determining a match indicator by applying the predictor function to the set of difference values. 2. The method of claim 1, wherein the obtained predictor function is derived via adaptive analysis that is iterative. 3. The method of claim 1, wherein each one of the plurality of predictor attributes based on the software application instance data has a half life less than a selected threshold. 4. The method of claim 1, further comprising: receiving at the server, the software application instance data from a device, the software application instance data corresponding to an invocation of the software application on the device; generating by the server from the software application instance data the plurality of predictor attributes based on the software application instance data. 5. The method of claim 4, further comprising: generating from the software application instance data a set of base-fingerprint attributes; and computing the base fingerprint using the set of base-fingerprint attributes. 6. The method of claim 5, wherein: each one of the plurality of predictor attributes based on the software application instance data has a half life less than a selected threshold; and each one of the set of base-fingerprint attributes has a half life at least equal to the selected threshold. 7. The method of claim 1, further comprising: if each match indicator corresponding to the set of records indicates a failed match: designating a software application instance associated with the software application instance data as a new software application instance; generating a new software application instance identifier; and adding to the database a new record comprising the new software application instance identifier, a set of base-fingerprint attributes based on the software application instance data and the plurality of predictor attributes based on the software application instance data; and otherwise: selecting a first record for which the corresponding match indicator indicates a match; and designating a software application instance associated with the software application instance data as a returning software application instance that is associated with the first record. 8. The method of claim 7, further comprising replacing at least one predictor attribute in the first record with a corresponding predictor attribute based on the software application instance data. 9. The method of claim 7, wherein the new software instance identifier is computed using a pseudo-random number generator or a random number generator. 10. The method of claim 7, wherein the new software instance identifier has at least 256 bits of entropy. 11. The method of claim 7, wherein the new software instance identifier is mathematically unrelated to attributes derived from the software application instance data. 12. The method of claim 7, wherein entropy of the new software instance identifier exceeds entropy of all attributes derived from the software application instance data. 13. The method of claim 1, wherein the software application instance comprises a browser instance. 14. The method of claim 1, further comprising: receiving at the server, the software application instance data from a device; filtering the software application instance data to retain device-related data; generating by the server from the device-related data the plurality of predictor attributes based on device-related data; and if each match indicator corresponding to the set of records indicates a failed match: designating the device as a new device; generating a new device identifier; and adding to the database a new record comprising the new device identifier, a set of base-fingerprint attributes based on the device-related data and the plurality of predictor attributes based on the device-related data; and otherwise: selecting a first record for which the corresponding match indicator indicates a match; and designating the device as a returning device that is associated with the first record. 15. The method of claim 1, wherein obtaining the predictor function comprises: generating based on at least in part the other software application instance data, 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 from the other software application instance data, 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; modify a function by modifying a function parameter to decrease the aggregate error; and designating the modified function as the predictor function. 16. A system 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: select, from a database, a set of records corresponding to a base fingerprint based on software application instance data, each record in the set comprising a plurality of predictor attributes; obtain a predictor function derived via adaptive analysis of other software application instance data; and for each record in the set of records: compute a set of difference values by comparing each one of a plurality of predictor attributes based on the software application instance data with a corresponding predictor attribute from a plurality of predictor attributes in the record; and determine a match indicator by applying the predictor function to the set of difference values. 17. The system of claim 16, wherein the obtained predictor function is derived via adaptive analysis that is iterative. 18. The system of claim 16, wherein each one of the plurality of predictor attributes based on the software application instance data has a half life less than a selected threshold. 19. The system of claim 16, wherein the instructions further program the processing unit to: receive the software application instance data from a device, the software application instance data corresponding to an invocation of the software application on the device; generate from the software application instance data the plurality of predictor attributes based on the software application instance data. 20. The system of claim 19, wherein the instructions further program the processing unit to: generate from the software application instance data a set of base-fingerprint attributes; and compute the base fingerprint using the set of base-fingerprint attributes. 21. The system of claim 20, wherein: each one of the plurality of predictor attributes based on the software application instance data has a half life less than a selected threshold; and each one of the set of base-fingerprint attributes has a half life at least equal to the selected threshold. 22. The system of claim 16, wherein the instructions further program the processing unit to: if each match indicator corresponding to the set of records indicates a failed match: designate a software application instance associated with the software application instance data as a new software application instance; generate a new software application instance identifier; and add to the database a new record comprising the new software application instance identifier, a set of base-fingerprint attributes based on the software application instance data and the plurality of predictor attributes based on the software application instance data; and otherwise: select a first record for which the corresponding match indicator indicates a match; and designate a software application instance associated with the software application instance data as a returning software application instance that is associated with the first record. 23. The system of claim 22, wherein the instructions further program the processing unit to replace at least one predictor attribute in the first record with a corresponding predictor attribute based on the software application instance data. 24. The system of claim 22, wherein the instructions further program the processing unit to compute the new software instance identifier using a pseudo-random number generator or a random number generator. 25. The system of claim 22, wherein the new software instance identifier has at least 256 bits of entropy. 26. The system of claim 22, wherein the new software instance identifier is mathematically unrelated to attributes derived from the software application instance data. 27. The system of claim 22, wherein entropy of the new software instance identifier exceeds entropy of all attributes derived from the software application instance data. 28. The system of claim 16, wherein the software application instance comprises at least one of a browser instance and an app instance. 29. The system of claim 16, wherein the instructions further program the processing unit to: receive the software application instance data from a device; filter the software application instance data to retain device-related data; generate from the device-related data the plurality of predictor attributes based on device-related data; and if each match indicator corresponding to the set of records indicates a failed match: designate the device as a new device; generate a new device identifier; and add to the database a new record comprising the new device identifier, a set of base-fingerprint attributes based on the device-related data and the plurality of predictor attributes based on the device-related data; and otherwise: select a first record for which the corresponding match indicator indicates a match; and designate the device as a returning device that is associated with the first record. 30. The system of claim 16, wherein to obtain the predictor function the instructions program the processing unit or another processing unit to: generate based on at least in part the other software application instance data, 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 from the other software application instance data, 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 a function by modifying a function parameter to decrease the aggregate error; and designate the modified function as the predictor function.