  We provide new algorithms for two tasks relating to heterogeneous tabular
datasets: clustering, and synthetic data generation. Tabular datasets typically
consist of heterogeneous data types (numerical, ordinal, categorical) in
columns, but may also have hidden cluster structure in their rows: for example,
they may be drawn from heterogeneous (geographical, socioeconomic,
methodological) sources, such that the outcome variable they describe (such as
the presence of a disease) may depend not only on the other variables but on
the cluster context. Moreover, sharing of biomedical data is often hindered by
patient confidentiality laws, and there is current interest in algorithms to
generate synthetic tabular data from real data, for example via deep learning.
  We demonstrate a novel EM-based clustering algorithm, MMM (``Madras Mixture
Model''), that outperforms standard algorithms in determining clusters in
synthetic heterogeneous data, and recovers structure in real data. Based on
this, we demonstrate a synthetic tabular data generation algorithm, MMMsynth,
that pre-clusters the input data, and generates cluster-wise synthetic data
assuming cluster-specific data distributions for the input columns. We
benchmark this algorithm by testing the performance of standard ML algorithms
when they are trained on synthetic data and tested on real published datasets.
Our synthetic data generation algorithm outperforms other literature
tabular-data generators, and approaches the performance of training purely with
real data.
