Generating Realistic Synthetic Customer Datasets


Being able to create and use synthetic data in projects has become a must-have skill for data scientists.

I have written in the past about using the Python library Faker for creating your own synthetic datasets. Instead of repeating anything in that article, let’s treat this as the second in a series of generating synthetic data for your own data science projects. This time around, let’s generate some fake customer order data.

If you don’t know anything about Faker, how it is used, or what you can do with it, I suggest that you check out the previous article first.

The plan is to synthesize a scaled-down version of a set of tables that would be used in the real-world business case of a customer order system.

Aside from items for purchase, let’s think about what is called for in such a scenario.

  • Customers – in what is not much of a surprise, if you are going to build a system to track customer orders, you are going to need customers
  • Credit cards – customers need to pay for things, and in our simplified scenario they can only do so with credit cards
  • Orders – an order will consist of a customer, a cost, and a credit card for payment

That’s the data we need, so that’s the data we will make. After you go through this, you will probably find ways to make it more robust, more detailed, and more like the real world, which you should be able to go ahead and do on your own.

Read more