A method of generating on-device classification models to improve security, privacy, and network resource utilization, comprising: maintaining, by one or more processors and a memory, in a database, a plurality of data records associated with a respective plurality of client devices, each of the data records including an identifier of a request and a known classification value, wherein the request includes client device context information and client device metadata; training, by the one or more processors, using each of the plurality of requests and known classification values, a context obfuscation model, the context obfuscation model configured to receive, as input, client device context information, and provide, as output, an output classification vector; training, by the one or more processors, using each of the plurality of requests and known classification values, a classification model configured to receive, as input, a classification vector and a metadata input, and provide, as output, a device classification value; transmitting, by the one or more processors, the context obfuscation model to a plurality of second client devices to obfuscate the context information of each of the plurality of client devices; receiving, by the one or more processors, a request for classification, the request including a classification vector created as an output of the context obfuscation model executed by the client device and request metadata; determining, by the one or more processors, using the classification vector received in the request for classification and the request metadata as inputs to the classification model, a device classification; and transmitting, by the one or more processors, the device classification to the device responsible for the request for classification. maintaining, by one or more processors and a memory, in a database, a plurality of data records associated with a respective plurality of client devices, each of the data records including an identifier of a request and a known classification value, wherein the request includes client device context information and client device metadata; training, by the one or more processors, using each of the plurality of requests and known classification values, a context obfuscation model, the context obfuscation model configured to receive, as input, client device context information, and provide, as output, an output classification vector; training, by the one or more processors, using each of the plurality of requests and known classification values, a classification model configured to receive, as input, a classification vector and a metadata input, and provide, as output, a device classification value; transmitting, by the one or more processors, the context obfuscation model to a plurality of second client devices to obfuscate the context information of each of the plurality of client devices; receiving, by the one or more processors, a request for classification, the request including a classification vector created as an output of the context obfuscation model executed by the client device and request metadata; determining, by the one or more processors, using the classification vector received in the request for classification and the request metadata as inputs to the classification model, a device classification; and transmitting, by the one or more processors, the device classification to the device responsible for the request for classification.