1. A method for use in analyzing device similarity, the method comprising: receiving data describing a set of mobile devices, wherein the set of mobile devices includes an unknown mobile device and a previously known mobile device, wherein the data includes a plurality of components associated with the set of mobile devices, wherein the components include device hardware element data and application data, wherein each component of the plurality of components is measured by weight of popularity and frequency, and wherein the weight of each component of the plurality of components changes dynamically based on changing of the popularity and the frequency of use of the plurality of components; constructing, using the data, a first data vector for each of the plurality of components for the unknown mobile device and a second data vector for each of the plurality of components for the previously known mobile device, wherein a comparison between the first data vector and the second data vector represent components that are selected from the group consisting of matching components, mismatching components, and missing components, and wherein the first and second data vectors are unlabeled; applying a probabilistic classifier model to the first and second unlabeled data vectors, wherein an expectation-maximization method iteratively and jointly trains the probabilistic classifier model and estimates labels for each of the first and second unlabeled data vectors at the same time, wherein the expectation-maximization method calculates a similarity score for each of the unknown mobile device and the previously known mobile device; and based on the similarity scores, determining a measure of similarity between the unknown mobile device and the previously known mobile device by comparing the similarity scores against a threshold.