I have the following task at hand: Suppose, that there is a data on clients actions from the base stations of the mobile operator.

While being in the reach of the base station, client can make the following actions: Turn off the phone, change location, turn out of range, and etc. Hence, there are several data points for each phone number in the dataset, with attributes like coordinates of base station, type of the base station, type of device, client action, and so on. Also, there could be several base stations in one location, but pointing in different directions.

Also, there is a training set of phone numbers that belong to the same client. The task is to find all phone numbers that belong to one client (Each client can have 2 or 1 sim-cards).

As of now, my main idea is to somehow embed data points of each phone number into vector, and use some distance threshold small enough, to group these vectors into the pairs. But in this scenario i'm not using the training data at all.

Any suggestions would be appreciated.

P.S. After digging into the data a little bit, i found out that the data on each phone number is hugely varied in length. For instance, there could be 8 data points for one number, and 1000 for another. On this evidence, i'm not considering the idea with embedding viable anymore.

  • $\begingroup$ I think your question needs some clarification in order to get the most help - where is the data science need in this? Isn't this something that you can solve analytically by just grouping the SIMs together according to account-holder? Please clarify your posting to highlight where exactly you need an algorithm $\endgroup$ Jan 9, 2019 at 19:31
  • $\begingroup$ The point is, that i don't know account-holder, obviously. Hence, i need to infer wether two arbitrary phone numbers belong to the same client. $\endgroup$
    – Slyfest
    Jan 11, 2019 at 4:54

1 Answer 1


So, finally i managed to come up with a plausible solution.

First of all, i built a dataset by combining each phone number pair, and calculated some mutual features, like proportion of same location per day, wether it is the same device type or not, the group of base station, and etc.

Having done that, i realised that i only have a positive class, hence, can't employ binary classification straight away. To solve this problem i used what's called a p-u (positive-unlabeled) classification, in which i trained 1000 decision trees with my labeled data points as positive class, and random sample from unlabeled data as negative class. Then, i averaged predictions for each entry. This approach has resulted in decent F-score.

Here is a resource where you can learn more about pu classification: pu-classification


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.