We have hundreds of thousands of customers records, and we need to take the benefits of our data to train a model that will recognize fake entries or unrealistic ones for our platform, where customers are asked to enter their names, phone number and zip code.

So, our attributes are name, phone number, zip code and IP address to train the model with. We have only data associated with real users. Can we train a model provided with only positive labels (as we do not have a negative dataset to train the model with)?

  • 1
    $\begingroup$ Regardless of the practicality of using an AI system to solve this problem, I would doubt that this is something that should be done. Human names are 'weird', and different cultures have different conventions. By excluding anything that doesn't conform to the majority, you are discriminating against those that are different. You cannot guarantee that names are 'true' anyway, as you can easily make up a name that looks like a real one. $\endgroup$ Jan 30, 2020 at 9:58
  • $\begingroup$ Thanks, even if we already have customers names for the past 4 years? $\endgroup$
    – simo
    Jan 30, 2020 at 10:02
  • $\begingroup$ How do you define 'bad' or 'unrealistic' names? Do you not expect any new customers? You could simply check the first names against all your existing first names to flag those up which look peculiar if that's what you want. But I would strongly advise against doing this fully automated. $\endgroup$ Jan 30, 2020 at 10:41
  • $\begingroup$ Hi simo, it may be possible to answer this question in a theoretical sense, and show you how you might create a system that allowed 99.9% of your customers to use the system plus block 90%+ of attempts to naively trick the system. That is interesting from the AI stand point, and would be fine and on topic question here. Whether you should try and implement such a thing on a commercial system is another matter. My web development background would agree with Oliver's summary here - although it may depend on your purpose for making names conform. $\endgroup$ Jan 30, 2020 at 10:41
  • $\begingroup$ So, could you be clear, are you asking for AI theory on detecting "realistic" names? We can answer that with suitable theory from NLP/ML. Or are you asking for advice for implementing/integrating this witha real-world system? The answer there will look more like Oliver's comment, unless we dig more into why you want such a detector $\endgroup$ Jan 30, 2020 at 10:44

2 Answers 2


The problem which you have is a classification problem. You assume a class "good users" and a distinct class "bad users". You want to train an AI to tell the two apart, but all your examples are "good users". Any reasonable AI will draw the logical conclusion from those examples: all users are good users. That's a 100% match for the training data.

  • $\begingroup$ This isn't necessarily classification, could also be anomaly detection. Of course, having an outlier is not always bad. If you're a small bank with relatively poor customers, a billionaire is an outlier you don't want to throw out. $\endgroup$
    – Nyos
    Jan 31, 2020 at 1:40

Pragmatically you could use the discriminatory from a GAN for outlier detection.

Ideally you'd start collecting fakes now and do a normal model on both good and bad cases.

In the absence of that you can create a GAN to create realistic looking fakes on only real cases and then take the discriminator from that GAN to flag real-life cases for manual checks.

Please for a real life case always include these real life checks which also helps collecting cases for improving the model.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .