Dissecting stellar populations with manifold learning

The question
The Milky Way grew from stars it formed itself and from smaller galaxies it swallowed. Stars from each episode differ in age, chemistry and motion, but the groups overlap and are hard to separate (Sect. 1). The paper tests whether manifold learning, an unsupervised machine-learning approach that assumes little about how many groups exist or what they look like, can find them.
What we did
The test bed was a simulated galaxy with a known history: m12f, from the FIRE-2 simulations, which went through two major mergers, 6.5 and 1.4 billion years ago (Sect. 2.1). A mock Gaia survey of it gave four samples (Sect. 2.2): 75,000 stars at all stages of evolution (A), and 76,168 red giants like those in the TESS catalogue of oscillating giants, with no errors (B), realistic errors (C) or optimistic errors (D).
UMAP turned five numbers per star (age, two chemical abundances, two measures of velocity) into a position on a two-dimensional map, and HDBSCAN found the groups on that map (Sect. 3).
What came out
The method separated disc from halo in every sample. The first pass scored an informedness of 0.966 to 0.989, where 1 is a perfect match, and put 97.6 to 98.7 per cent of the stars born in other galaxies into the halo group, although no input said where a star was born (Sect. 4.1, Table 2).
A second pass on each group found more structure. Samples A and B gave five groups: two discs with slightly different chemistry, the halo that formed in place, and one group per merger (Table 3, Fig. 11). With measurement errors added (C and D), the discs could no longer be told apart, and the halo split into two groups instead of three (Sect. 4.3).
My part
I am the first and corresponding author; the co-authors are my PhD supervisors. The paper reports the first project of my PhD: I built the pipeline, compared UMAP with PCA and t-SNE (Appendix D, on Zenodo) and ran the tests. Starfold, a Python package I develop, extends the method.