Essentially I want to pass a program some variables, all gathered from a user on my site, and have the program give a "score" of how authentic the user is meant to be.

I already have a large set of data with already set "scores" and want to start creating the scores myself ( currently done through a third party)

After reading about machine learning and asking some friends I've chosen (still open to ideas) python, but I'm unsure which type of algorithm I'm going for, Supervised, unsupervised, reinforcement, semi-supervised etc.

My question is, which type am I looking for. Any example program ideas, or help is much appreciated.

Info I'll be passing on: Browser name, version Os name, version ISP Referrer Estimate of Longitude and Latitude OS System time ( and system time of area)

  • $\begingroup$ The third party likely has a clause in their agreement with you that you cannot attempt to reverse engineer their scores, and that likely includes fitting a supervised model with their scores as targets. You're more likely going to want an unsupervised "outlier detection" model, unless you have some other hard labels for "authentic user". $\endgroup$
    – Ben Reiniger
    Jun 3, 2022 at 17:54
  • $\begingroup$ @BenReiniger is there anything wrong with independently developing a model and then baselining your independent score against vendors score? i.e without using the vendor score in the model? $\endgroup$ Jun 3, 2022 at 18:40
  • $\begingroup$ probably not (it seems very similar to what you'd do in an evaluation/trial), but that's a question for the contract / lawyers $\endgroup$
    – Ben Reiniger
    Jun 3, 2022 at 23:33
  • $\begingroup$ I have a few things, list of known VPN's, proxy providers, OS versions, blacklisted user agents etc $\endgroup$
    – seal
    Jun 4, 2022 at 10:16

1 Answer 1


This is supervised learning, more specifically a regression task (as opposed to classification, because the target is a numerical value).

The principle is this:

  • The model is trained with a training set made of instances with both the features (input variables used as indicators) and the target (the score which will be the output of the model). This way the model learns the patterns in the features which contribute to determining the target, assuming the features contain enough information to estimate the target.
  • Once the model is trained, it can be applied to any new set of instances containing only the features, and it predicts the target.
    • It is strongly recommended to first evaluate the model with a test set for which the target is known. This way we know how reliably the model can estimate the target. It's possible that the model doesn't work. The test set must be made of different instances than the training set, usually this is done by randomly splitting the full dataset with target between training and test set.
    • If the model performs decently, it can be applied "in production" to any new set of instances.

This is very common, there are many tutorials and many libraries available, the most standard with Python is scikit-learn.

You could try various methods, for example SVR or decision trees.

  • $\begingroup$ Thank you very much, it seemed slightly daunting knowing I just want "machine learning" this has helped $\endgroup$
    – seal
    Jun 3, 2022 at 18:12

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.