# Roadmap for learning Topological Data Analysis?

I'm a math major who has recently graduated and I will be starting full time work in 'data analysis'.

Having finished with decent marks and still being incredibly interested in mathematics, I was thinking of pursuing graduate study/research at some point in the future. I was reading up about possible areas of study for this when I came across topological data analysis, which (as I understand it) is an application of algebraic topology to data analysis.

Given my situation, I was intrigued by the concept and I would like to do some self study so I can have a working understanding of the subject. I have only done basic undergraduate abstract algebra, analysis and point set topology, and I am currently reading Munkres' Topology (Chapter 9 onwards). How do I get from where I am now to understanding the theory behind TDA and being able to apply it?

My knowledge on further mathematics is far from extensive and I would appreciate any advice on links/texts which I could use to learn the relevant material.

Before answering you question I would like to discuss some points:

1. Topological data analysis is roughly, as you write, (algebraic) topology applied to the study of data. While you certainly will need to learn some topology, the type of topology that you should learn really depends on the type of applications you are interested in. For this reason I will not give you a roadmap, but a suggestion on how to draw your own roadmap.
2. You should also not forget the second part in the definition of topological data analysis, namely that you are studying data. For this it would be good to learn some general facts about data analysis, and in particular statistics (more about this below). For a statistician’s viewpoint on topological data analysis, there is a nice series of columns by Robert Adler on what he calls TOPOS, available here.
3. You have to know your data. This might go without saying, but too often I have seen people throwing some method at data to see what comes out of it, without even asking themselves why they are using that specific method. While depending on your job conditions you might be given more or less time to work on a specific project, I think that you should really try to make sure that you understand the data and the context as best as possible before even starting to think about which method you want to use. While topology gives a wealth of different methods that can be applied to the study of data, these might not always be the best tools to use, and there might be other techniques which are better suited. The bottom line is: there is no method or set of methods that fits all problems.

And here comes my suggestion for how to draw your own roadmap:

• Statistics. A book that analogously to Ghrist’s book could help you in designing your own roadmap is Larry Wasserman’s All of Statistics. Also, note that the application of statistical methods to techniques from topological data analysis is an active area of research, and while there are some tools and libraries that can be used for applications, this area is still in its infancy. I list here the libraries and relevant references for statistical tools for topological data analysis that I know off the top of my head (these are all related to persistent homology):

• Data science. Finally, as for data science more broadly, I don’t know any good text, but you might get an idea of some of the general themes from the book Mathematical Problems in Data Science.

Aside: to finish off, I give some additional references to books/papers and software packages.

1. References for topological data analysis, and computational topology:

• Topology and data, Carlsson

• Computational Topology, Edelsbrunner and Harer

• Topology for Computing, Zomorodian
• Persistence Theory, Oudot (this might be too specific, but this would be useful if you want to learn more about the theory behind persistent homology)
• Computational homology, Kaczynski, Mischaikow, Mrozek
2. Open source libraries that implement some of the methods from topological data analysis:

• Mapper: Python Mapper
• Persistent homology: a few of the most recent (and best performing) libraries are Ripser , GUDHI, and DIPHA. Note that there is also an overview of the different libraries for persistent homology available here. (Disclaimer: I am one of the authors of this paper. Also, the version on the ArXiv is outdated, and will be replaced by an up-to-date version in the next weeks, so it might be better to look at this once it is updated.)
• +1 Detailed thoughtful useful well written answer. I'd upvote more than once if I could. – Ethan Bolker Dec 20 '16 at 14:03

Geometric and Topological Inference is an excellent book for introducing persistent homology. If you didn't do algebraic topology course it should be easier than Edelsbrunner and Harer's book. I also found it more approachable since it has more exercises, and gives more details on construction of complexes.