Using synthetic data for machine learning

By the Ground team

Synthetic data can support machine-learning development by adding examples, exploring rare labels and testing training pipelines. In Ground, upload a labeled table, generate additional rows or change the class mix, then measure usefulness on real data the synthesizer never saw.

Start with a measurable task

Define the model target and the gap you want synthetic data to address. A rare positive class, a thin customer segment and an incomplete feature pipeline require different generation requests. Establish a real-data baseline before adding synthetic rows.

Use a plain-English design when you want a controlled simulation. Use source-based synthesis when your goal is to reflect relationships in observed training data. A plausible-looking simulation is not evidence that a model will generalize to the population you care about.

Extend a dataset or rebalance a label

Ground profiles an uploaded table, suggests a label and learns relationships conditioned on that label. You can generate more of the existing mix, increase a rare class or focus on a segment. Check the selected target and label values before accepting a suggested analysis.

For example, a fraud team might generate additional positive examples while preserving variation in transaction amount, merchant category and channel. Changing the class balance does not discover fraud patterns absent from the source. Keep evaluation data at a representative class prevalence and examine precision and recall at the threshold you would actually use.

  1. Reserve a real holdout before synthesizing your training data.
  2. Upload the training portion and confirm the target column.
  3. Review the preview, label mix and quality report.
  4. Compare real-only, synthetic-only and mixed training runs on the same real holdout.
  5. Inspect performance by class and relevant subgroup before choosing a training mix.

Use train-on-synthetic, test-on-real evaluation

Ground's source-based report compares a model trained on synthetic rows with one trained on real rows, evaluated on a real holdout. This is train-on-synthetic, test-on-real, or TSTR. The report uses AUC for classification and R² for regression, alongside distribution and relationship checks.

TSTR is a useful starting point, not a substitute for your own model evaluation. A score from a report's model may not predict the performance of your architecture or feature engineering. Keep a separate final test set outside the synthesis and tuning workflow.

Check privacy, bias and leakage

Synthetic data can reproduce source biases or be too similar to source records. Review membership-inference, attribute-inference and distance-to-closest-record metrics alongside usefulness. Ground offers optional differential privacy when an explicit privacy budget is required.

Avoid splitting related records in a way that leaks the same person or entity across training and test sets. Choose the holdout strategy that matches deployment, such as time-based or entity-based splitting. Ground's built-in row holdout does not replace those task-specific controls.

Common questions

Does adding synthetic training data always improve accuracy?

No. Gains depend on source quality, task, synthesis method and training mix. Compare against a real-only baseline on a representative real holdout, including per-class and subgroup performance.

Can Ground generate text alongside structured features?

Yes. AI-text columns can generate text conditioned on other values in a row. Inspect the text, evaluate it for your task and account for the lower row limits and additional credits for AI-written columns.

Try it with your own dataset

Start building for free, estimate your usage or use the API and Python SDK.

Review the public benchmarks and security and privacy controls when evaluating Ground for your team.

Related guides